数据和时间转换 - PyMathematics

时间:2013-03-22 16:22:20

标签: python math

我是一名下载狂热者。我下载的大部分内容都是千兆字节,但以兆字节显示。

我想构建一个小的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

感谢帮助人(和女孩),非常感谢!

2 个答案:

答案 0 :(得分:0)

使用的基本公式为:estimated_time = file_size / con_speed

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

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

如需其他转换率,请查看此图表: http://www.wu.ece.ufl.edu/links/dataRate/DataMeasurementChart.html

请注意,互联网服务提供商通常使用1000作为近似单位而不是1024.

答案 1 :(得分:0)

如果两个输入使用相同的测量单位,则应该是标准的除法操作:

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

真的,每当你看到 per 这个词时,例如里程小时或千字节秒,你就可以想到除以:里程除以小时,或千字节除以秒。

现在,如果您的文件大小输入采用不同的度量单位(例如兆字节),则需要先将其转换为通用计量单位:

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

最后,您可以通过导入datetime

轻松地使用Python显示持续时间
print "Estimated Time: %s" % datetime.timedelta(seconds = est)

希望这有帮助!