大佬教程收集整理的这篇文章主要介绍了除了ValueError 之外的While 循环,无法按预期工作,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
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()
如果您多次输入 -1 和 ValueError,例如“x”,然后您输入正确的数字,如 5,则需要多次尝试,直到代码将其输入正确为止。
首先,如果用户输入 1
作为他们的输入,while 循环将继续,因为在 python 中 1 == True
是一个真实的语句。
如果出现错误,您再次调用 get_number
是不必要的,因为您已经处于 while 循环中 - 您应该决定在这里使用递归还是循环。
在我的代码中,我将用户输入存储在不同的变量中,以消除 1 == True 的问题
def get_number():
x = True
while x == True:
try :
i = int(input("Enter number: "))
if i<1:
raise ValueError("number must be higher than 1")
else:
# User has inputted valid number
x = false
return i
except ValueError:
print("Your input must be greater than 1 and an Integer")
因为我不再使用 x 作为用户输入,我们需要在某个时候跳出循环。我将 x 设置为 false 并且 从不需要的函数返回,您可以直接返回,但是您没有在代码中包含该部分,所以我将它留给您在成功案例。
,您不需要声明第一个 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()
以上是大佬教程为你收集整理的除了ValueError 之外的While 循环,无法按预期工作全部内容,希望文章能够帮你解决除了ValueError 之外的While 循环,无法按预期工作所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。