小甲魚零基礎學python第25講課後習題動手練習---通信錄python
**************************通信錄要求*******************************學習
輸入指令:spa
|---1:查詢聯繫人資料---| \
|---2:插入新的聯繫人---| \
|---3:刪除已有聯繫人---| \
|---4:退出通信錄程序---| 調試
*******************************題目分析*********************************code
代碼邏輯: 輸入指令1: 若是有: 輸出查詢到的信息 若是沒有: 提示沒有該用戶的信息 輸入指令2: 提示輸入用戶名 若是存在該用戶名: 提示是否須要修改用戶信息 若是是: 修改用戶信息 若是否: 打印用戶信息 若是不存在用戶信息: 添加用戶信息 輸入指令3: 輸入用戶名: 用戶是否存在於字典中: 若是存在該用戶: 提示是否肯定要刪除用戶信息: 若是是: 刪除用戶信息 若是否: 打印用戶信息 若是不存在該用戶: 提示該用戶不存在 輸入指令4: 打印感謝信息 從新給Q賦值,是程序跳出
*****************************出現的問題*********************************blog
一、print()語句使用換行符的時候最後一個括號前不須要加上換行符\遞歸
print('xxxxxxxx \input
xxxxxxxxxxxxxxxxx\io
xxxxxxxxxxxxxxx ')編譯
二、這段程序早就寫好了就是編譯無法經過,最後在其餘編輯軟件裏面調試才慢慢的將BUG找出來,最致命的就是之前最不覺得然的一點-----講TAB與SPACE混用的問題。
python中縮進使用4個空格表示的,notepad++中設置的TAB按鍵是4個空格,可是將TAB於空格混用就很麻煩了,程序一直報錯,從新寫仍是沒用,這樣用起來已經變成習慣了,真的是可怕,之後必定要改正這個習慣!!
三、對指令碼的判斷,輸入的是字符型變量,因此對程序進行判斷的時候應該將指令碼轉換成整型數據進行判斷。
*************************編譯經過後的代碼以下*******************************
print('|---歡迎進入通信錄程序---| \ |---1:查詢聯繫人資料---| \ |---2:插入新的聯繫人---| \ |---3:刪除已有聯繫人---| \ |---4:退出通信錄程序---| ') connect_dict = {} Q = True while Q : num = int(input('請輸入相關的指令碼:')) if num == 1: name1 = input('請輸入聯繫人姓名:') if name1 in connect_dict.keys(): # if connect_dict.has_key(name1): print(name1,':',connect_dict[name1]) else: print('沒有用戶信息能夠輸入指令2添加用戶信息') if num == 2: name2 = input('請輸入聯繫人姓名:') if name2 in connect_dict.keys(): print('您輸入的姓名在通信錄中已存在-->>',name2,':',connect_dict[name2],'\n') question = input('是否修改用戶資料:') if question == 'YES': answer = input('請輸入用戶聯繫電話:') connect_dict[name2] = answer if question == 'NO': print(name2,':',connect_dict[name2]) else: phone2 = input('請輸入聯繫人電話:') connect_dict[name2]=phone2 if num == 3: name3 = input('請輸入聯繫人姓名:') if name3 in connect_dict.keys(): question3 = input('是否肯定要刪除該用戶信息(YES/NO):') if question3 == 'YES': del connect_dict[name3] print('已刪除',name3,'的我的信息') else : print(name3,':',connect_dict[name3]) else : print(name3,'不在通信錄中') if num == 4: print('|---感謝使用通信錄程序---|') Q = False
*************************************思考**********************************************************
一、跳出程序的方法有多種,C語言的思路是在循環中直接用break跳出循環,之前學習過的方法中給相關變量賦值就能夠跳出循環。小甲魚給出的是直接break跳出循環結束程序。
二、看了小甲魚給出的參考答案以後以爲本身寫程序真的很囉嗦。。。。。因此顯得程序很冗長。
三、前幾天作課後習題的時候,特別是作遞歸的時候一點思路都沒有,都不知道該如何動手,不過此次還好,此次是先寫的代碼邏輯,將程序結構給列舉出來了,後面針對每個步驟給出對應的代碼實現仍是比較好實現的。
@自學的路道阻且長,還有不少須要學習的地方,歡迎你們指正,一塊兒學習,一塊兒進步呀~~~