将用户整数输入限制为8位数 [英] Limit user integer input to 8 digits

查看:221
本文介绍了将用户整数输入限制为8位数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这个小小的信用卡验证程序,用户必须输入一个8位整数。该程序工作正常,我唯一的问题似乎是限制用户输入只有8位数。

I have this little credit card validation program where the user has to input an 8 digit integer. The program works fine, my only problem seems to be limiting user input to 8 digits only.

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位数限制纳入我的真正循环?

I know len() does not work with integers. So how would i incorporate that 8 digit limit into my while true loop?

任何帮助都将受到赞赏。

Any help would be appreciated.

推荐答案

请尝试以下操作。

try:
    userinput = raw_input(prompt)
    if len(userinput ) > 8:
        raise ValueError()
    userinput = int(userinput)
except ValueError:
...

这篇关于将用户整数输入限制为8位数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆