Python While循环for except ValueError,未按预期工作 def get_number(): x=真 当x==True时: 尝试: x=int(输入(“输入一个数字:”) 如果x
如果多次键入-1,然后键入ValueError,例如“x”,然后键入正确的数字,如5,则需要多次尝试,直到代码将其输入正确。首先,如果用户输入Python While循环for except ValueError,未按预期工作 def get_number(): x=真 当x==True时: 尝试: x=int(输入(“输入一个数字:”) 如果x,python,python-3.x,Python,Python 3.x,如果多次键入-1,然后键入ValueError,例如“x”,然后键入正确的数字,如5,则需要多次尝试,直到代码将其输入正确。首先,如果用户输入1,while循环将继续,因为在python中1==True是一条True语句 如果出现错误,请再次调用get_number,这是不必要的,因为您已经处于while循环中-您应该决定在此处使用递归或循环 在我的代码中,我将用户输入存储在另一个变量中,以消除1==True的问题 def get_number(): x=真 当x==True时: 尝试: i=i
1
,while循环将继续,因为在python中1==True
是一条True语句
如果出现错误,请再次调用get_number
,这是不必要的,因为您已经处于while循环中-您应该决定在此处使用递归或循环
在我的代码中,我将用户输入存储在另一个变量中,以消除1==True的问题
def get_number():
x=真
当x==True时:
尝试:
i=int(输入(“输入编号”))
如果i您不需要声明第一个x。相反,你可以这样做。并删除该函数的递归调用
def get_number():
x = True
while x == True:
try:
x = int(input("Enter a number: "))
if x < 1 :
raise ValueError('Invalid input, please enter a number above 0: ') # go to except block
except ValueError:
print ("Invalid input, please enter an integer: ")
get_number()
get_number()
def get_number():
尽管如此:
尝试:
x=int(输入(“输入一个数字:”)
如果x<1:
raise VALUE ERROR('输入无效,请输入0以上的数字:')#转到除块
除值错误外:
打印(“输入无效,请输入整数:”)
获取_编号()
将“否”输入到其他变量,然后输入x,因为您已经在使用它,也不要再调用get_号码。对不起,我更喜欢视觉学习,你能改为键入代码吗?你能解释一下你的程序有什么问题吗?把x==True
改为y==True
和所有的密码,如果你输入一个小于0的数字,比如-1,或者输入一个整数以外的字符,比如a、B或C等,也可以删除get_number
@KaziSohan,多次,然后输入一个正确的数字,如5,您需要多次键入它,直到程序停止。代码还有更多内容(因此,我必须声明第一个x,但我将其更改为y,因为我意识到我使用了x作为用户输入,但其余的都是正确的)。
def get_number():
while True:
try:
x = int(input("Enter a number: "))
if x < 1 :
raise ValueError('Invalid input, please enter a number above 0: ') # go to except block
except ValueError:
print ("Invalid input, please enter an integer: ")
get_number()