Python中用于提示用户输入帐号的程序由7位数组成?

时间:2017-07-21 05:04:53

标签: python python-3.x function

我参加了一个简介Python课程并且稍微坚持了一项任务。任何建议或资源将不胜感激!

问题在于: 用Python编写一个程序,提示用户输入一个由7位数组成的帐号。

从用户获取该帐号后,请验证该帐户是否有效。您应该有一个名为current_accts的列表,其中包含所有有效帐户。

当前有效帐户如下所示,您必须在程序中使用它们。

5679034 8232322 2134988 6541234 3984591 1298345 7849123 8723217

验证输入的帐号应在名为check_account()的函数中完成,该函数将接受用户输入的帐户以及列表current_accts。如果帐户有效,此函数应返回1,否则如果帐户无效则返回0。

这是我到目前为止所写的内容,但我在第6-15行中遇到了缩进的语法错误。我还收到错误消息,说明变量' current_accts'没有定义。

prompt = "Please, enter the 8 digit account  number: "
current_accts = current_accts[1:]
current_accts [-1] = "valid"


while True: 
    try:
      userinput = current_accts(prompt)
      if len(userinput ) > 8:
        raise ValueError()
      userinput = int(userinput)
    except ValueError:
     print('The 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 account number you entered is valid!')
else:
   print('The account number you entered is invalid!')

2 个答案:

答案 0 :(得分:0)

  

注意:如果您正在寻找熟食代码,请不要阅读答案。

我可以告诉你逻辑,我猜你做错了。

  • 逻辑:
    1. 检查帐号是否为7位。
    2. 如果条件1为真,则检查它是否在给定帐户列表中。

您可以通过检查条件1000000<= user_input <10000000来检查条件1.

您可以循环浏览列表来检查条件2.

答案 1 :(得分:0)

你真的必须回过头来学习一些python的基本语法,因为你的代码有很多问题。只需google获取python教程或google特定问题,例如如何在python中获取用户的输入。

无论如何,我不是故意侮辱,只是为了教导,所以这里是我解决问题的方法(通常我不会解决所有问题,但显然你做了一些努力) :

current_accts = ['5679034', '8232322', '2134988', '6541234', '3984591', '1298345', '7849123', '8723217']
user_input = input("Please, enter the 7 digit account  number: ")
if user_input in current_accts:
    print('The account number you entered is valid!')
else: 
    print('The account number you entered is invalid!')

我没有把它放在一个像你要求的问题那样返回0或1的函数中,我建议你调整这段代码来实现这一点