程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了除了ValueError 之外的While 循环,无法按预期工作大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决除了ValueError 之外的While 循环,无法按预期工作?

开发过程中遇到除了ValueError 之外的While 循环,无法按预期工作的问题如何解决?下面主要结合日常开发的经验,给出你关于除了ValueError 之外的While 循环,无法按预期工作的解决方法建议,希望对你解决除了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,请注明来意。