在python中如何将变量除以数字?
我正在构建一个python脚本,用于在上传到internet时查找文件的ETA。我在python上做了一个粗略的工作。 基本上,程序要求您输入文件大小和上传速度。 但是我被卡住了 剧本是这样的:。。进行中在python中如何将变量除以数字?,python,function,python-2.7,math,Python,Function,Python 2.7,Math,我正在构建一个python脚本,用于在上传到internet时查找文件的ETA。我在python上做了一个粗略的工作。 基本上,程序要求您输入文件大小和上传速度。 但是我被卡住了 剧本是这样的:。。进行中 print "UPLOADING TIME COVERTER" print print " Please enter the file size in mb" size = raw_input() # for e.g 237mb print print "Please enter the cu
print "UPLOADING TIME COVERTER"
print
print " Please enter the file size in mb"
size = raw_input()
# for e.g 237mb
print
print "Please enter the current uploading speed in kb /sec"
speed = raw_input()
# for e.g 60kb/sec
print
A = speed * 60
# speed is changed into minutes
B = (A / 1024)
#KB is changed in MB
C = (B / size)
print "your eta is %r hours" %(C)`
我收到的错误是:
Traceback (most recent call last):
File "uploadingeta.py", line 14, in <module>
B = (A - 1024)
TypeError: unsupported operand type(s) for -: 'str' and 'int'.
我搜索了谷歌和任何地方,但找不到解决方案 以下是一些代码,用于解析和阅读。修改以适应
import re
mb_match = re.compile(r'^([0-9])+[Mm][Bb]?$').match
kb_match = re.compile(r'^([0-9])+[Kk][Bb]?$').match
b_match = re.compile(r'^([0-9])+[Bb]?$').match
def parse_size(text):
text = text.strip()
match = mb_match(text)
if match:
return int(match.group(1)) * 1024 * 1024
match = kb_match(text)
if match:
return int(match.group(1)) * 1024
match = b_match(text)
if match:
return int(match.group(1))
raise ValueError('Invalid input')
while True:
text = raw_input('Enter file size...')
try:
file_size_bytes = parse_input(raw_input('Enter file size: '))
break
except ValueError as e:
print(e)
while True:
text = raw_input('Enter upload speed size...')
try:
upload_speed = parse_input(raw_input('Enter file size: '))
break
except ValueError as e:
print(e)
#file_size_bytes
#upload_speed
不能将str和int分开。必须将其转换为int,例如 英特斯比 您还可以向文件中添加代码以进行调试,例如 打印速度 这将告诉您变量的数据类型,它对解决各种问题都很有用。使用 速度=内部W_输入 代码给出错误的原因是,当您使用原始输入时,它将输入记录为字符串,因此在本例中,您必须使用int强制转换它
您可能已经看到了其他答案,但希望我的答案能够解释一下这个问题。raw\u input返回一个字符串。在对该值进行数学运算之前,需要将其转换为int或float。我该怎么做?我是这方面的初学者size=intraw\u input-请注意,如果无法将输入转换为第27行NameError中的interror,则会引发异常:未定义名称“parse\u input”。我如何定义它?