在python中逐步将微秒转换为各自的转换的最佳方法?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在python中逐步将微秒转换为各自的转换的最佳方法?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1719字,纯文字阅读大概需要3分钟。
内容图文
![在python中逐步将微秒转换为各自的转换的最佳方法?](/upload/InfoBanner/zyjiaocheng/819/4bb7562171da477e88b588eb6b51e6d2.jpg)
我目前有一个预定义的字典(忽略字母).不过,我希望转换更加强大.说输入33000000微秒并知道转换为33秒.然后在一分钟内任何微秒输入,但在一小时内显示为分钟等.是否可以在不需要这个预定义字典的情况下进行编码?优选地,该函数接收微秒输入然后输出适当的转换.
'A100.txt' :'100 us',
'B500.txt' :'500 us',
'C1000.txt' :'1 ms',
'D4000.txt' :'4 ms',
'E5000.txt' :'10 ms',
'F30000.txt' :'30 ms',
'G100000.txt' :'100 ms',
'H300000.txt' :'300 ms',
'I1000000.txt' :'1 sec',
'J3000000.txt' :'3 secs',
'K10000000.txt' :'10 secs',
'L30000000.txt' :'30 secs',
'M60000000.txt' :'1 min',
'N180000000.txt' :'3 mins',
'O600000000.txt' :'10 mins',
'P1800000000.txt' :'30 mins',
'Q3600000000.txt' :'1 hr',
'R7200000000.txt' :'2 hrs',
'S14400000000.txt' :'4 hrs'}
解决方法:
这可以通过一长串if语句来完成.由于Python中没有switch语句,因此字典不能用于>和<,这是最好的解决方案. 你可能会做的事情是:
def convert(text):
t = int(text)
if t<1000: #millisecond
return str(t)+' us'
elif t<1000000: #second
return str(int(t/1000))+' ms'
elif t==1000000: #is a second
return '1 sec'
#etc.
替代解决方案:
units = [("us", 1), ("ms", 1000), ("sec", 1000000)...]
for string, divisor in units:
if t==divisor:
return "1 "+string
elif t>divisor:
if round(float(t)/divisor)==1:
return "1 "+string
else:
return str(int(round(float(t)/divisor)))+string+"s"
希望这将是紧凑性,可伸缩性和可读性之间更好的折衷.
内容总结
以上是互联网集市为您收集整理的在python中逐步将微秒转换为各自的转换的最佳方法?全部内容,希望文章能够帮你解决在python中逐步将微秒转换为各自的转换的最佳方法?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。