首页 > 解决方案 > 如何只接受 3 位数字的输入?

问题描述

UserNumber = 0

UserNumber = int(raw_input("Enter a 3 digit number: "))

if UserNumber >= 100 and UserNumber <= 999:

    print "My name is: xxxxx xxxxx"
    print "My UBIT name is: xxxxxxx"
    print "The number you entered was", UserNumber, "."

如何使程序仅在输入 3 位数字时运行(即数字 > 99 和数字 < 1000?我知道它必须是某种 while 循环,但我不知道如何实现它。

标签: python-2.7while-loop

解决方案


您可以使用正则表达式检查数字是否为 3 位数字,然后再次询问用户是否与正则表达式不匹配

import re

UserNumber = int(raw_input("Enter a 3 digit number: "))

while not(re.search("^\d{3}$", str(UserNumber))):
    UserNumber = int(raw_input("that  was not a 3 digit number, Enter a 3 digit number: "))

if UserNumber >= 100 and UserNumber <= 999:

    print "My name is: xxxxx xxxxx"
    print "My UBIT name is: xxxxxxx"
    print "The number you entered was", UserNumber, "."


推荐阅读