Python 数据和时间转换-PyMathematics

Python 数据和时间转换-PyMathematics,python,math,Python,Math,我是个下载狂。我下载的大部分内容都是以千兆字节为单位的,但都是以兆字节为单位显示的 我想构建一个小型python程序,根据连接速度的快慢来检测下载完成所需的时间 我的数学很差,我不知道从哪里开始学习算法 它将有浮点数。。我也知道连接速度有时会非常快,有时会上下波动。。但这将是一个近似值。我喜欢数学,但浮点数是一个很大的弱点 应该是这样的: fileSize: raw_input("How big is the file you are downloading? ") conSpeed: raw_

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

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

谢谢大家的帮助,非常感谢

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

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

通常1 Gb是1024 Mb或1000 Mb左右

有关其他转换率,请参见此图表:


请记住,互联网服务提供商通常使用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
实际上,任何时候你看到单词per,比如英里/小时或千字节/秒,你都可以想到除以:英里除以小时,或千字节除以秒

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

sizeInKb = float(size) * 1024
est = float(sizeInKb) / float(speed)
最后,您可以通过导入datetime轻松地使用Python显示持续时间:


希望这有帮助

您可能首先需要标准化度量单位。例如,文件大小应以KB为单位,连接速度应以每秒KB为单位。否则,你将不得不解析用户输入的内容,并将其转换为通用度量值。我同意,我只是尝试了谷歌的秒到分钟转换器,而这正是我不想要的。我可以在这个程序中看到一大堆if语句。。嗯。
print "Estimated Time: %s" % datetime.timedelta(seconds = est)