為了記錄我的Python課,將我的作業發上來,歡迎各位大佬評鑒。如果你有什么更好的想法,請在下方評論或聯系我。謝謝!
作業一:蘋果、李子、橙
描述
1只蘋果4元,1只橙子3元,4只李子1元,給你n元(n由用戶輸入的正整數),買n個果子,一共可以買多少只蘋果、多少只橙子、多少只李子?
提示:輸入使用 input() ,不要添加任何額外提示信息,輸出嚴格按照輸出示例輸出,注意標點符號,以及輸出不要增加任何空格類空白字符。
輸入輸出示例
輸入示例1:
80
輸出示例1:
蘋果5只,橙子15只,李子60只。
蘋果16只,橙子0只,李子64只。
輸入示例2:
110
輸出示例2:
蘋果0只,橙子30只,李子80只。
蘋果11只,橙子15只,李子84只。
蘋果22只,橙子0只,李子88只。
代碼:

n=int(input()) for x in range(0,n): for y in range(0,n): for z in range(0,n): if x*4+y*3+z/4==n and x+y+z==n: print("蘋果{}只,橙子{}只,李子{}只。".format(x,y,z))
經驗:
這道題我犯了兩個錯誤,一個是比較低級的,忘記加句號了,這是一個小白錯誤,不該犯;
第二個是蘋果、李子、橙的數量取值范圍一開始定在了一百。這是因為我局限在了上一篇小組作業(百雞百錢)中,以固有的思維模式看待問題,這是不可取的。后來我突然想到它們取值再大也比n小,所以把范圍定在了(0,n)。
此外,需要考慮有種水果不買的情況,所以取值從0開始。
作業二:EAN13條形碼的驗證
描述
編寫程序實現如下功能:
超市購買的商品包裝上都會有一個條形二維碼,一般是一種稱為EAN13碼的條碼,一共由13個數字組成。前12位數字包含了國家代碼、廠商代碼和產品代碼,最后一位數字是校驗碼,結構如下表所示(N1到N12為前12位數字,C為校驗位數字):
N1 |
N2 |
N3 |
N4 |
N5 |
N6 |
N7 |
N8 |
N9 |
N10 |
N11 |
N12 |
C |
校驗位C和前12位數字的運算關系如下:
設:
C1為前12位數字中的奇數位數字之和,即:C1=N1+N3+N5+N7+N9+N11
C2為前12位數字中的偶數位數字之和乘以3的結果,即:C2=(N2+N4+N6+N8+N10+N12)*3
CC 為 (C1 + C2)的個位數字
則:校驗位數字C為10-CC的個位數字。
請編寫程序用來檢測用戶輸入的一個13位數字能否通過EAN13碼的校驗,能通過請輸出:校驗已通過;否則輸出:校驗未通過。
輸入格式
輸入使用 input(),不要增加額外的提示信息。
輸出格式
輸出結果應為“校驗已通過”或“校驗未通過”的一種,除此外不要輸出任何其他內容。
輸入輸出示例
輸入 | 輸出 | |
示例 1 | |
|
示例 2 | |
|
代碼:

n=eval(input()) a=str(n) C1=eval(a[0])+eval(a[2])+eval(a[4])+eval(a[6])+eval(a[8])+eval(a[10]) C2=(eval(a[1])+eval(a[3])+eval(a[5])+eval(a[7])+eval(a[9])+eval(a[11]))*3 b=C1+C2 c=str(b) CC=eval(c[-1]) C=eval(a[-1]) if C ==10-CC: print("校驗已通過") else: print("校驗未通過")
老師提供的代碼:

#EAN13檢驗 ean13=input() C1=0 C2=0 for i in range(0,12,2): C1=C1+int(ean13[i]) for i in range(1,12,2): C1=C1+int(ean13[i])*3 CC=int(str((C1+C2))[-1]) C=str((10-CC))[-1] if C=ean13[-1]: print('校驗已通過') else: print('校驗未通過')
經驗:
1.審題要清晰,之前程序出錯,是因為CC是(C1+C2)的個位數字,而不是這兩個數的個位數相加。
2.校驗位數字C為10-CC的個位數字,即C等於10-CC,而不是C在(10,CC)的取值范圍中。
總結:
Python課上了七八周,總算在今天覺得敲代碼順利了些,大概是勤能補拙吧!也非常感謝我的任課老師@xhsg,他以風趣幽默的方式讓我不再害怕編程,並逐漸開始喜歡上了編程,這是我收獲最大的地方。