如何解决Python - 在 jupyter notebook 中测试代码时收到“ValueError: invalid literal for int() with base 10: 'a'”
我正在尝试为我的公寓大楼构建一个疫苗跟踪器。当我尝试在 jupyter-notebook 中测试以下代码时,当我使用非整数输入时收到以下错误。
问:解决此错误的最佳解决方案是什么?我是一个完整的 Python 初学者,正在努力学习和实践。
错误:
ValueError Traceback(最近一次调用最后一次) 在 2 打印(“2.Covaxin”) 3 ----> 4vaccine_type = int(input("选择一个数字-")) 5 如果疫苗类型 ==1: 6 covishieldData
ValueError: 以 10 为基数的 int() 的无效文字:'a'
代码:
print("1.Covishield")
print("2.Covaxin")
vaccine_type = int(input("Select a number - "))
if vaccine_type ==1:
covishieldData
elif vaccine_type ==2:
covaxinData
else:
print("Invalid Input - Please enter either 1 or 2 to proceed further")
解决方法
在将输入传递到后续步骤之前,您需要对输入进行错误检查。
一种常见的做法是使用带有 try-except 的循环来包装提示,直到输入有效。
while True:
try:
vaccine_type = int(input("Select a number - "))
if vaccine_type != 1 and vaccine_type != 2:
raise ValueError
break
except ValueError:
print("Invalid Input - Please enter either 1 or 2 to proceed further")
...
,
在使用任何函数之前,请先阅读一些文档。如果您不知道什么是函数,请阅读 here。
您收到的错误或异常(非正常行为)是因为在将输入传递给内置 input 函数时,您正在传递字符 a,然后内置函数 int 尝试将此字符串 a 转换为以 10 为底的整数。由于 a 是不是一个有效的整数,因此 python 解释器抛出这个异常/错误。
请按照其他答案中推荐的 burringalc 使用检查,并确保它可以转换为有效的整数或确保您只将输入作为 1 或 传递2,因为您只想检查 1 或 2 作为输入。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。