在Python中检查多个输入的有效性

问题描述

我编写了一个程序,在乌龟中绘制凸的正多边形(给定边数和长度)。我还希望它检查无效的输入,以便它立即询问用户是否要尝试其他输入。有没有办法用更少的代码检查两个输入的有效性,同时还要考虑ValueError?

此外,每次成功运行后,都会发生Terminator错误。可能是什么原因导致的,使用此导入命令时甚至可以解决该问题?

from turtle import *
def inp():
    while True:
        try:
            n = int(input("Enter the number of sides of the polygon: "))
        except ValueError:
            y_n = input("Invalid input,type \"y\" if you'd like to try again: ")
            if y_n == "y":
                continue
            else:
                print("Goodbye!")
                break
        if n >= 3:
            pass
        else:
            y_n = input("Invalid input,type \"y\" if you'd like to try again: ")
            if y_n == "y":
                inp()
            else:
                print("Goodbye!")
                break
        
        try: 
            l = float(input("Enter the length of the side in pixels: "))
        except ValueError:
            y_n = input("Invalid input,type \"y\" if you'd like to try again: ")
            if y_n == "y":
                continue
            else:
                print("Goodbye!")
                break
        if l > 0:
            for i in range(1,n + 1):
                forward(l)
                left(360/n)
            exitonclick()
            break
        else:
            y_n = input("Invalid input,type \"y\" if you'd like to try again: ")
            if y_n == "y":
                inp()
            else:
                print("Goodbye!")
                break
     
inp()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)