Python猜数字程序字符串转int时触发ValueError错误求助
猜数字程序字符串转int报错的解决办法
错误根源
你碰到的ValueError: invalid literal for int() with base 10: '',是因为用户直接按回车输入了空字符串,空串没法转成整数。另外你试的ans=ans(int)是语法错误,正确转int的写法是int(变量名)。
修复后的完整代码
import random def guess(x): num = random.randint(1, x) ans = 0 while ans != num: ans_input = input("enter the guessing number: ") # 先检查输入是否为空或全是空格 if not ans_input.strip(): print("别空着啊,输入个有效数字!") continue # 尝试转换整数,捕获非法输入的异常 try: ans = int(ans_input) except ValueError: print("得输入整数才行!别输字母或其他乱七八糟的") continue # 数字比较逻辑 if ans < num: print("猜小了,数字更大") elif ans > num: print("猜大了,数字更小") else: print("猜对了!")
核心改动点
- 加了输入空值的判断:用
strip()过滤空格后,若为空则提示重新输入 - 用
try-except捕获非整数输入的异常,避免程序直接崩溃 - 修正了错误的类型转换写法,确保转换逻辑正确
内容的提问来源于stack exchange,提问作者aaqila munawer
相关产品推荐
相关产品推荐

