import re
user_miles = input()
def miles_to_laps(user_miles):
miles = float(user_miles) * 4
print('%0.2f'% miles)
return
miles_to_laps(user_miles)
def parse_function_text(s):
try:
return re.search("miles_to_laps\((.+)\)", s)[1]
except TypeError:
return None
def accept_input(user_input):
desugar = parse_function_text(user_input)
if desugar is not None:
user_input = desugar
try:
return float(user_input)
except ValueError:
raise ValueError("Cannot process input %s" % user_input)
assert accept_input("miles_to_laps(3.5)") == 3.5
因此,执行此操作将显示用于创建程序的新代码,该代码允许输入为“ miles_to_laps(20)” 我目前的错误代码是
Traceback (most recent call last):
File "main.py", line 9, in <module>
miles_to_laps(user_miles)
File "main.py", line 6, in miles_to_laps
miles = float(user_miles) * 4
ValueError: could not convert string to float: 'miles_to_laps(20)'
答案 0 :(得分:0)
此行代码接受一个输入,但始终返回一个字符串,因此,如果键入20
作为对此输入的响应,则它将作为'20'
存储在内存中(字符串OR str
类型)
user_miles = input()
您的函数用于执行数学运算,因此需要数字(即整数类型(int
)或浮点类型(float
)。
解决此问题的最简单方法是使用int()
函数包装input()
函数立即将字符串转换为整数。
user_miles = int(input())