微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?