所以我正在研究一个项目,用输入的5位数邮政编码创建一个邮政条形码 这就是我到目前为止所做的事情,我不确定为什么我会收到此错误或如何解决此问题,感谢您的帮助!
zipcode=input("What is your 5 digit zipcode?")
s=zipcode.split(",")
def correctiondigit(zipcode): #LAST BLOCK OF 6 BLOCK BARCODE
zipcode.split()
total=int(zipcode[0])+int(zipcode[1])+int(zipcode[2])+int(zipcode[3])+int(zipcode[4])
if total % 10!=0:
total=total+(10-total%10)
print(correctiondigit(zipcode)) #not working on this yet
def barcode(a):
if a==0:
print("||:::")
elif a==1:
print(":::||")
elif a==2:
print("::|:|")
elif a==3:
print("::||:")
elif a==4:
print(":|::|")
elif a==5:
print(":|:|:")
elif a==6:
print(":||::")
elif a==7:
print("|:::|")
elif a==8:
print("|::|:")
elif a==9:
print("|:|::")
for the_zipcode in s:
print(barcode(the_zipcode))
答案 0 :(得分:2)
您的错误在这里:
for barcode(a) in s:
它的语法无效,因为for循环中绑定的名称必须是python标识符。
你可能正在尝试这样的事情:
for the_zipcode in s:
print(barcode(the_zipcode))
答案 1 :(得分:0)
我相当确定您的问题是您使用s=zipcode.split(",")
。这样做是将用户输入的字符串(如果您使用的是python 3)拆分为字符串数组,其中每个元素都用逗号分隔。例如:
'11111'.split(',') # ['11111']
'11111,12345'.split(',') # ['11111', '12345']
这几乎肯定不是你想要的,因为你要求用户输入一个5位数的邮政编码。如果你只是直接使用输入,我想你会得到你想要的。
那是:
zipcode=input("What is your 5 digit zipcode?")
# . . .
for digit in zipcode:
print(barcode(digit))