当前位置: 首页 > 知识库问答 >
问题:

如何在打印前检查输入是否有效?[副本]

黄跃
2023-03-14

假设我希望用户输入一个介于1和50之间的数字,那么我会:

num = input("Choose a number between 1 and 50: ")

但如果用户输入的数字不介于1和50之间,我希望它打印:

选择1到50之间的数字:无效数字

我该怎么做?

共有3个答案

晏晨朗
2023-03-14

这是我可能会做的:

validResponse = False
while(not validResponse):
    try:
        num = int(input("Choose a number between 1 and 50: "))
        if(1 <= num <= 50):
            validResponse = True
        else:
            print("Invalid number.")
    except ValueError:
        print("Invalid number.")

如果您想提示他们,直到输入了正确的号码。否则,您可以丢弃而循环变量和validSolutions变量。

try将运行该语句,直到遇到错误为止。如果错误特别是数字不能解释为整数,则会引发ValueError异常,except语句会告诉程序在这种情况下该怎么做。在本例中,任何其他形式的错误仍然会结束程序,正如您所希望的,因为这里唯一可接受的错误类型是ValueError。但是,在try语句之后可以有多个except语句来处理不同的错误。

东弘扬
2023-03-14

您需要将输入设置为整数,否则它将是一个字符串

num = int(input("Choose a number between 1 and 50: "))

检查num已设置为:

if 1 < num < 50:
    print(1)
else:
    print("invalid number")
水昊阳
2023-03-14
num = input("Choose a number between 1 and 50: ")

try:
    num = int(num) #Check if user input can be translated to integer. Otherwise this line will raise ValueError
    if not 1 <= num <= 50:
        print('Choose a number between 1 and 50: invalid number')
except ValueError:
    print('Choose a number between 1 and 50: invalid number')
 类似资料:
  • 问题内容: 如果我在关闭的管道中写一条消息,则程序崩溃 在写之前如何检查它是否仍然打开? 问题答案: 正确的方法是测试的返回码,然后还要检查: 但是请稍等:写入封闭的管道不仅会返回-1 ,而且还会发送一个终止进程的信号: EPIPE fd连接到读数端关闭的管道或插座。发生这种情况时,写入过程还将收到SIGPIPE信号。 因此,在进行测试之前,您还需要 忽略:

  • 我目前正在尝试为一个我为好玩而开发的网站创建一个登录/创建帐户页面。在创建帐户表单中,我有一个用户名、姓名、电子邮件、密码和验证密码的输入字段。我在输入字段中也有模式,以便用户生成有效的帐户信息。以下为表格: 澄清:用户名模式要求您的用户名只有大写和小写字母和数字,并且必须至少包含5个字符,最多包含40个字符。电子邮件要求您输入有效的电子邮件地址模式。密码要求至少包含8个字符,并且必须包含大小写字

  • 如何检查名称为“session”的表是否存在?我如何知道我的查询是否有效? 编辑:这不是上述问题的重复,因为我的问题与Node.js javascript代码有关。不是SQL!我只想知道在res对象中查找什么,因为它似乎是未定义的...

  • 问题内容: 我的webapp允许用户上传jar文件。但是,将jar文件上传后,它已损坏。我已经通过比较md5校验和(winmd5free)对此进行了验证。 上传的jar文件看起来“正常”和“正确” 与原始文件相比,文件大小看起来不错(在KB级别) 我可以使用7z打开上载的jar文件并查看其内容(资源和类文件),并且与原始文件相比,一切都相同 当我打开上载的jar文件(使用Notepad ++)时,

  • 这里的Python新手非常抱歉,我确信这是一个愚蠢的问题,但在一个教程中,我似乎无法解决以下挑战,该教程要求我使用while循环来检查有效的用户输入。 (使用Python2.7) 这是我的代码,但它工作不正常: 上述内容打印到控制台: 这显然是不对的- 注意:挑战要求我同时使用运算符和

  • 问题内容: 我正在构建一种日历Web应用程序 我已经在HTML中设置了以下表格 然后,来自用户的输入将被提交到小服务器中 我想知道,有没有办法检查用户输入的日期是否是有效日期? 显然,我可以编写很多if语句,但是是否有任何内置函数可以检查这一点? 谢谢 问题答案: 你可以尝试做 这将消除诸如> 12,小时> 23,不存在的leap日等问题(在不month年,month = 2的最大值为28,否则为