我参加了一个简介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!')
答案 0 :(得分:0)
注意:如果您正在寻找熟食代码,请不要阅读答案。
我可以告诉你逻辑,我猜你做错了。
您可以通过检查条件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的函数中,我建议你调整这段代码来实现这一点