因此,正如标题所示,我试图将输入中的整数限制为 11,有没有人对此有一个简单的解决方案?
编辑。抱歉应该更精确一点,我不是想将实际输入限制为 11。我试图将输入的位数限制为 11,例如,
输入 123 = 正常 输入 123456789123 = 无效
def f(x):
if x >= 1E+11:
raise SomeError
"Do something"
像这样的东西你的意思?
尝试:
while True:
a = input ("Input: ")
if len(a) < 11: #excepted as string
a = int(a)
break
假设您的意思是只接受范围内的整数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.')
如果您只想接受最多 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