如何在使用raw_input时限制可能的输入? (也使用拆分)

时间:2013-12-28 04:28:51

标签: python string split int

我想在两种情况下限制用户输入:

1.用字符串和分割,当要求用户输入两个2位数字时,我写道:

x=raw_input("words").split()

我想只允许他写一个两个2位数的输入,如果他做了其他的事情,我想弹出一个错误,然后再次提示他,直到做完为止。

2.这次是询问用户随机4位数时的INT:

y=int(raw_input("words"))

我只想允许(例如)4位数字,如果他输入53934例如我希望能够写错误解释他必须只输入4位数字,然后循环它回到他做对了。

谢谢,希望我能正确解释自己。

更新 所以 - 试图开始简单我决定,起初只是试图要求用户输入8个字母。例如,qwertyui输入是可以接受的,但sadiuso(7个字符)不是。

所以我尝试使用你给我的语法并写道:

y=raw_input("words") if not (len(y) == 8):
    pop an error

但是我在:

上遇到语法错误

1 个答案:

答案 0 :(得分:2)

使用str.isdigitlen

>>> '12345'.isdigit()
True
>>> 'ab12'.isdigit()
False
>>> len('12')
2

while True:
    x = raw_input('Input 2 digits: ')
    if x.isdigit() and len(x) == 2:
        x = int(x)
        break
    print('input should be 2 digits.')

print('x = {}'.format(x))