限制用户整数输入为8位数字
我有一个小程序,用来验证信用卡,用户需要输入一个8位的整数。这个程序运行得很好,但我遇到的唯一问题是怎么限制用户只能输入8位数字。
prompt = "Please, enter the 8 digit number of your card: "
while True:
try:
userinput = int(raw_input(prompt))
except ValueError:
print('The gematric value must be an 8 digit integer. Try again')
else:
break
userinput = str(userinput)
a = int(userinput[7])+int(userinput[5])+int(userinput[3])+int(userinput[1])
b1 = str(int(userinput[6])*20)
b2 = str(int(userinput[4])*20)
b3 = str(int(userinput[2])*20)
b4 = str(int(userinput[0])*20)
y = int(b1[0])+int(b1[1])+int(b2[0])+int(b2[1])+int(b3[0])+int(b3[1])+int(b4[0])+int(b4[1])
x = (a+y)
if x % 10 == 0:
print('The card number you entered is valid!')
else:
print('The card number you entered is invalid!')
我知道len()这个函数不能用在整数上。那么我该如何在我的循环中加入这个8位的限制呢?
任何帮助都非常感谢。
1 个回答
3
试试下面这个。
try:
userinput = raw_input(prompt)
if len(userinput ) > 8:
raise ValueError()
userinput = int(userinput)
except ValueError:
...