数据和时间转换

2024-06-26 11:23:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我是个下载狂。我下载的大部分内容都是以千兆字节为单位的,但都是以兆字节为单位显示的。你知道吗

我想构建一个小python程序,根据连接速度的快慢来检测下载需要多长时间。你知道吗

我数学很差,我不知道从哪里开始学习算法。你知道吗

它将有浮点数。。我也知道连接速度有时会很慢,有时会上下波动。。但这将是一个近似值。我喜欢数学,但浮点数是一个很大的弱点。你知道吗

应该是这样的:

fileSize: raw_input("How big is the file you are downloading? ")
conSpeed: raw_input("How fast is your current connection speed? ")

## Make sure fileSize and conSpeed are floats

print("Your download will finish in "+str(ALGORITHM_VAL)+" .")

# prints no more than 4 digits, not like 1 hour 23423432423424 seconds

谢谢你们的帮助,非常感谢!你知道吗


Tags: 程序内容inputraw字节is单位数学
2条回答

使用的基本公式是:估计时间=文件大小/控制速度

请确保玩具在计算时有一致的单位。例如:如果您的连接速度以每秒兆字节(Mbps)为单位,那么文件大小也应以兆字节为单位。你知道吗

通常1 Gb是1024 Mb或1000 Mb(大约)

有关其他转换率,请参阅此图表: http://www.wu.ece.ufl.edu/links/dataRate/DataMeasurementChart.html

请记住,internet服务提供商通常使用1000作为近似单位,而不是1024。你知道吗

如果两个输入使用相同的计量单位,则应为标准除法运算:

size = raw_input("File size in KB: ")
speed = raw_input("Speed in KB/sec: ")
est = float(size) / float(speed)
print "It will take %f seconds." % est

实际上,任何时候你看到单词时,例如英里小时或千字节秒,你都可以想到除以:英里除以小时,或千字节除以秒。你知道吗

现在,如果文件大小输入的度量单位不同,例如兆字节,则需要首先将其转换为公共度量单位:

sizeInKb = float(size) * 1024
est = float(sizeInKb) / float(speed)

最后,您可以通过导入datetime,轻松地用Python显示持续时间:

print "Estimated Time: %s" % datetime.timedelta(seconds = est)

希望这有帮助!你知道吗

相关问题 更多 >