該代碼應該採用5位數的郵政編碼輸入並將其轉換爲條碼作爲輸出。每個數字條形碼是:Python - 郵編到條碼
{1:'...!!',2:'..!.!',3:'..!!.',4:'.!..!',5:'.!.!.',6:'.!!..',7:'!...!',8:'!..!.',9:'!.!..',0:'!!...'}
例如,郵政編碼95014應該產生:
!!.!.. .!.!. !!... ...!! .!..! ...!!!
有一個在開始和結束一個額外!
,其用於確定條碼開始和停止的地方。請注意,在條形碼的到底是一個額外的...!!
這是1.這是校驗位,你通過得到的校驗位:
- 在郵編添加了所有的數字,使之ž
- 選擇校驗位ç使得Z + C是10
例如一個倍數,郵編95014
具有Z的總和 = 9 + 5 + 0 + 1 + 4 = 19,所以檢查di的git Ç是1,使總和Ž + Ç等於20,這是10
def printDigit(digit):
digit_dict = {1:'...!!',2:'..!.!',3:'..!!.',4:'.!..!',5:'.!.!.',6:'.!!..',7:'!...!',8:'!..!.',9:'!.!..',0:'!!...'}
return digit_dict[digit]
def printBarCode(zip_code):
sum_digits=0
num=zip_code
while num!=0:
sum_digits+=(num%10)
num/=10
rem = 20-(sum_digits%20)
answer=[]
for i in str(zip_code):
answer.append(printDigit(int(i)))
final='!'+' '.join(answer)+'!'
return final
print printBarCode(95014)
多我現在有的代碼產生的
!!.!.. .!.!. !!... ...!! .!..!!
輸出
爲郵政編碼95014
缺少校驗位。我的代碼中是否缺少導致代碼不輸出校驗位的內容?另外,在我的代碼中包含哪些內容以要求用戶輸入郵政編碼?
你字面上有校驗位算法。你在編碼時有什麼問題?另外,你是否搜索過「python請求用戶輸入」? –
我知道我有它,但它不工作... – akse232
你正在計算'rem'並從不使用它。 –