问题恰恰是回溯日志所说的:
Could not convert string to float
- 如果您的字符串只有数字,那么python足够聪明,可以执行您要尝试的操作,并将字符串转换为浮点数。
- 如果您的字符串中包含非数字字符,则转换将失败并显示错误信息。
大多数人解决此问题的方法是使用
try/except(参见此处)或使用
isdigit()函数(参见此处)。
尝试/除外
try: miles = float(input("How many miles can you walk?: "))except: print("Please type in a number!")Isdigit()
miles = input("How many miles can you walk?: ")if not miles.isdigit(): print("Please type a number!")请注意,如果字符串中有小数点,则后者仍将返回false
编辑
好的,我暂时将无法与您联系,因此我将发布答案以防万一。
while True: try: miles = float(input("How many miles can you walk?: ")) break except: print("Please type in a number!")#All of the ifs and stuff该代码非常简单:
- 它将继续尝试将输入转换为浮点数,如果失败,则循环回到开头。
- 如果最终成功,它将从循环中断开,然后转到您放下的代码。



