Python - 在 jupyter notebook 中测试代码时收到“ValueError: invalid literal for int() with base 10: 'a'”

时间:2021-06-20 18:36:27

标签: python jupyter-notebook

我正在尝试为我的公寓大楼构建一个疫苗跟踪器。当我尝试在 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")

2 个答案:

答案 0 :(得分:1)

在将输入传递到后续步骤之前,您需要对输入进行错误检查。

一种常见的做法是使用带有 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")
...

答案 1 :(得分:0)

在使用任何函数之前,请先阅读一些文档。如果您不知道什么是函数,请阅读 here

您收到的错误或异常(非正常行为)是因为在将输入传递给内置 input 函数时,您正在传递字符 a,然后内置函数 int 尝试将此字符串 a 转换为以 10 为底的整数。由于 a 是不是一个有效的整数,因此 python 解释器抛出这个异常/错误。

请按照其他答案中推荐的 burringalc 使用检查,并确保它可以转换为有效的整数或确保您只将输入作为 1 传递2,因为您只想检查 1 或 2 作为输入。