2016-06-24 102 views
-1

我需要允许用户输入1111到9999中的数字作为python中的raw_input。如何为这种情况创建一个约束? 谢谢特定范围的Python Raw_Input

+1

while循环? – Benjamin

+0

类似的问题:http://stackoverflow.com/questions/8761778/limiting-python-input-strings-to-certain-characters-and-lengths – Shubham

+1

你知道如何检查一个数字是否在两个其他数字之间? –

回答

2

获取输入,然后检查输入是否对您的约束有效(例如,通过if条件)。如果无效重复输入(可能在用户通知之前输入错误)(例如使用while循环)。

0

你不能强迫用户使用raw_input()来输入任何特定的东西。您必须验证用户输入,最好使用while循环,直到用户正确输入。

这将工作(假设用户不愚蠢输入非数字)。

i = int(raw_input('Please, enter a number between 1110 and 10000')) 
while not(1110<i<10000): 
    i = int(raw_input('Dude, come on, read the instruction')) 
0

使用while循环直到用户输入一个有效的数字。检查ValueError以消除无效输入。

user_input = -1 
_continue = True 
while _continue: 
    try: 
     user_input = int(raw_input("Value: ")) 
     if 1111 <= user_input <= 9999: 
      _continue = False 
    except ValueError: 
     pass 
0
is_input_valid = False 
while is_input_valid == False: 
    inp = int(raw_input("Input your number: ")) 
    if inp >= 1111 and inp <= 9999: 
     is_input_valid = True 
    else: 
     print "Please input only numbers from 1111 to 9999" 

print "Thanks, your input is valid"