-3

因此,正如标题所示,我试图将输入中的整数限制为 11,有没有人对此有一个简单的解决方案?

编辑。抱歉应该更精确一点,我不是想将实际输入限制为 11。我试图将输入的位数限制为 11,例如,

输入 123 = 正常 输入 123456789123 = 无效

4

4 回答 4

2
def f(x):
  if x >= 1E+11:
     raise SomeError

  "Do something"

像这样的东西你的意思?

于 2019-11-25T15:38:33.883 回答
2

尝试:

while True:
    a = input ("Input: ")
    if len(a) < 11: #excepted as string
        a = int(a)          
        break
于 2019-11-25T15:36:09.890 回答
1

假设您的意思是只接受范围内的整数0 <= x <= 11,您可以使用:

while True:
    try:
        inpt = int(input('Enter number less than 12: '))
        if inpt in range(12):
            break
    except:
       pass 
    print('Invalid input.')
于 2019-11-25T15:34:15.877 回答
1

如果您只想接受最多 11 位数字,只需将其与 12 位数字进行比较:

def up_to_digits(n):
    while True:
       try:
           r = int(input('Enter number: '))
           if r >= 10 ** n or r <= -(10 ** n):
               print('Maximum {} digits'.format(n))
               raise ValueError
           return r 
       except ValueError:
           pass
于 2019-11-25T15:38:15.607 回答