Getting Error : 'int' object has no attribute 'isnumeric'
Getting Error : 'int' object has no attribute 'isnumeric'
我正在编写代码来获取学生的平均成绩,但出现错误。
这是我的代码出错的部分:
scoreinput=input("Score lesson: ")
while True:
if scoreinput.isnumeric():
scoreinput=int(scoreinput)
if scoreinput > 20:
scoreinput = int(input("This number is too big. Try again: "))
elif scoreinput < 0:
scoreinput = int(input("This number is too low. Try again: "))
else:
print("please write number correctly...")
这是错误代码的输出:
Score lesson: 5
Traceback (most recent call last):
File "e:\TEST PYTHON\test3.py", line 3, in <module>
if scoreinput.isnumeric():
AttributeError: 'int' object has no attribute 'isnumeric
请帮帮我。谢谢
如果您在顶部写上:scoreinput = int(input('Score lesson: '))
,则无需验证 scoreinput
是数字还是字母。
如果输入的是20以下的正数,就是你想要的,在scoreinput=int(scoreinput)
之后
你有数字,但你没有做任何事情,而是继续 while 循环的下一次迭代。在下一次迭代中,scoreinput
是 int
而不是 str
这就是您收到错误的原因。如果 scoreinput
在正确的范围内,你应该使用 break
来停止循环。
另外一个输入错误的问题。如果输入不是数字,则您不会获得新的输入,并且会陷入无限循环。如果输入是一个数字,但不在 0 到 20 之间,您将获得新的输入并立即将其转换为 int
。如果输入不是数字,您将获得异常。如果它是一个数字,它会在你到达下一次迭代时立即失败,因为 scoreinput
在迭代开始时应该是 str
,但它将是 int
.
我建议您使用以下代码:
while True:
scoreinput=input("Score lesson: ") # using input only one time at the beggining of the loop instead of input command for each case of bad input
if scoreinput.isnumeric():
scoreinput=int(scoreinput)
if scoreinput > 20:
print("This number is too big. Try again.")
elif scoreinput < 0:
print("This number is too low. Try again.")
else:
break # input is valid
else:
print("please write number correctly...")
我正在编写代码来获取学生的平均成绩,但出现错误。 这是我的代码出错的部分:
scoreinput=input("Score lesson: ")
while True:
if scoreinput.isnumeric():
scoreinput=int(scoreinput)
if scoreinput > 20:
scoreinput = int(input("This number is too big. Try again: "))
elif scoreinput < 0:
scoreinput = int(input("This number is too low. Try again: "))
else:
print("please write number correctly...")
这是错误代码的输出:
Score lesson: 5
Traceback (most recent call last):
File "e:\TEST PYTHON\test3.py", line 3, in <module>
if scoreinput.isnumeric():
AttributeError: 'int' object has no attribute 'isnumeric
请帮帮我。谢谢
如果您在顶部写上:scoreinput = int(input('Score lesson: '))
,则无需验证 scoreinput
是数字还是字母。
如果输入的是20以下的正数,就是你想要的,在scoreinput=int(scoreinput)
之后
你有数字,但你没有做任何事情,而是继续 while 循环的下一次迭代。在下一次迭代中,scoreinput
是 int
而不是 str
这就是您收到错误的原因。如果 scoreinput
在正确的范围内,你应该使用 break
来停止循环。
另外一个输入错误的问题。如果输入不是数字,则您不会获得新的输入,并且会陷入无限循环。如果输入是一个数字,但不在 0 到 20 之间,您将获得新的输入并立即将其转换为 int
。如果输入不是数字,您将获得异常。如果它是一个数字,它会在你到达下一次迭代时立即失败,因为 scoreinput
在迭代开始时应该是 str
,但它将是 int
.
我建议您使用以下代码:
while True:
scoreinput=input("Score lesson: ") # using input only one time at the beggining of the loop instead of input command for each case of bad input
if scoreinput.isnumeric():
scoreinput=int(scoreinput)
if scoreinput > 20:
print("This number is too big. Try again.")
elif scoreinput < 0:
print("This number is too low. Try again.")
else:
break # input is valid
else:
print("please write number correctly...")