Python二维数组输入异常:带提示input正常,无提示input报错
为何修改input()参数后出现ValueError异常?
问题场景
原本可正常运行的Python二维数组输入代码:
N = int(input("Input the N: ")) MATRIX = [0] * N for i in range(N): MATRIX[i] = [0] * N print(MATRIX) print(" ") for i in range(N): for j in range(N): z = int(input(" ")) MATRIX[i][j] = z print(MATRIX)
将第11行的z = int(input(" "))改为z = int(input())后,程序抛出异常:
Traceback (most recent call last): File "C:\Users\Сырым\PycharmProjects\pythonProject\main.py", line 11, in <module> z = int(input()) ValueError: invalid literal for int() with base 10: ''
异常原因
- 使用
input(" ")时,括号内的空格会作为提示文本输出在控制台,明确提示输入位置,你输入数字时不会误输入空内容。 - 改成
input()后,控制台没有任何提示信息,容易出现误操作:比如还没输入数字就按了回车,或者复制输入内容时带了空行,导致input()返回空字符串''。而Python的int()函数无法将空字符串转换为整数,因此触发ValueError异常。
内容的提问来源于stack exchange,提问作者Сырым
相关产品推荐
相关产品推荐

