不能分配给函数调用Error-Python

时间:2016-10-19 23:05:34

标签: python syntax-error barcode

所以我正在研究一个项目,用输入的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))  

2 个答案:

答案 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))