[Python]小甲魚Python視頻第34課(with else)課後題及參考解答
阿新 • • 發佈:2019-02-24
bre 不同 兩個 如果 刪除 eat 統計 解答 小甲魚
# -*- coding: utf-8 -*- """ Created on Sun Feb 24 13:36:33 2019 @author: fengs """ """ 0. 在 Python 中,else 語句能跟哪些語句進行搭配? if while with except """ """ 1. 請問以下例子中,循環中的 break 語句會跳過 else 語句嗎? def showMaxFactor(num): count = num // 2 while count > 1: if num % count == 0: print(‘%d最大的約數是%d‘ % (num, count)) break count -= 1 else: print(‘%d是素數!‘ % num) num = int(input(‘請輸入一個數:‘)) showMaxFactor(num) 會跳過 """ """ 2. 請目測以下代碼會打印什麽內容? try: print(‘ABC‘) except: print(‘DEF‘) else: print(‘GHI‘) finally: print(‘JKL‘) ABC GHI JKL """ """ 3. 使用什麽語句可以使你不比再擔心文件打開後卻忘了關閉的尷尬? with open as f: .... #f.close(); #不要寫,with調用完成時會清理當前對象 """ """ 4. 使用 with 語句固然方便,但如果出現異常的話,文件還會自動正常關閉嗎? 可以,無論如何都會清理當前對象,文件還是會自動關閉 """ """ 5. 你可以換一種形式寫出下邊的偽代碼嗎? with A() as a: with B() as b: suite 方法1: a = A() if ‘a‘ in locals(): b = B() if ‘b‘ in locals(): suite 方法2:with 語句處理多個項目的時候,可以用逗號隔開寫成一條語句 with A() as , B() as b: suite """ """ 動動手: 0. 使用 with 語句改寫以下代碼,讓 Python 去關心文件的打開與關閉吧。 def file_compare(file1, file2): f1 = open(file1) f2 = open(file2) count = 0 # 統計行數 differ = [] # 統計不一樣的數量 for line1 in f1: line2 = f2.readline() count += 1 if line1 != line2: differ.append(count) f1.close() f2.close() return differ file1 = input(‘請輸入需要比較的頭一個文件名:‘) file2 = input(‘請輸入需要比較的另一個文件名:‘) differ = file_compare(file1, file2) if len(differ) == 0: print(‘兩個文件完全一樣!‘) else: print(‘兩個文件共有【%d】處不同:‘ % len(differ)) for each in differ: print(‘第 %d 行不一樣‘ % each) """ """ def file_compare(file1, file2): count = 0 # 統計行數 differ = [] # 統計不一樣的數量 with open(file1) as f1, open(file2) as f2: for line1 in f1: line2 = f2.readline() count += 1 if line1 != line2: differ.append(count) return differ file1 = input(‘請輸入需要比較的頭一個文件名:‘) file2 = input(‘請輸入需要比較的另一個文件名:‘) differ = file_compare(file1, file2) if len(differ) == 0: print(‘兩個文件完全一樣!‘) else: print(‘兩個文件共有【%d】處不同:‘ % len(differ)) for each in differ: print(‘第 %d 行不一樣‘ % each) """ """ 1. 你可以利用異常的原理,修改下面的代碼使得更高效率的實現嗎? print(‘|--- 歡迎進入通訊錄程序 ---|‘) print(‘|--- 1:查詢聯系人資料 ---|‘) print(‘|--- 2:插入新的聯系人 ---|‘) print(‘|--- 3:刪除已有聯系人 ---|‘) print(‘|--- 4:退出通訊錄程序 ---|‘) contacts = dict() while 1: instr = int(input(‘\n請輸入相關的指令代碼:‘)) if instr == 1: name = input(‘請輸入聯系人姓名:‘) if name in contacts: print(name + ‘ : ‘ + contacts[name]) else: print(‘您輸入的姓名不再通訊錄中!‘) if instr == 2: name = input(‘請輸入聯系人姓名:‘) if name in contacts: print(‘您輸入的姓名在通訊錄中已存在 -->> ‘, end=‘‘) print(name + ‘ : ‘ + contacts[name]) if input(‘是否修改用戶資料(YES/NO):‘) == ‘YES‘: contacts[name] = input(‘請輸入用戶聯系電話:‘) else: contacts[name] = input(‘請輸入用戶聯系電話:‘) if instr == 3: name = input(‘請輸入聯系人姓名:‘) if name in contacts: del(contacts[name]) # 也可以使用dict.pop() else: print(‘您輸入的聯系人不存在。‘) if instr == 4: break print(‘|--- 感謝使用通訊錄程序 ---|‘) """ print(‘|--- 歡迎進入通訊錄程序 ---|‘) print(‘|--- 1:查詢聯系人資料 ---|‘) print(‘|--- 2:插入新的聯系人 ---|‘) print(‘|--- 3:刪除已有聯系人 ---|‘) print(‘|--- 4:退出通訊錄程序 ---|‘) contacts = dict() while True: instr = int(input(‘\n請輸入相關的指令代碼:‘)) if instr == 1: name = input(‘請輸入聯系人姓名:‘) #if name in contacts: try: print(name + ‘ : ‘ + contacts[name]) except(KeyError): #else: print(‘您輸入的姓名不再通訊錄中!‘) if instr == 2: name = input(‘請輸入聯系人姓名:‘) #if name in contacts: try: print(‘您輸入的姓名在通訊錄中已存在 -->> ‘, end=‘‘) print(name + ‘ : ‘ + contacts[name]) if input(‘是否修改用戶資料(YES/NO):‘) == ‘YES‘: contacts[name] = input(‘請輸入用戶聯系電話:‘) except(KeyError): #else: contacts[name] = input(‘請輸入用戶聯系電話:‘) if instr == 3: name = input(‘請輸入聯系人姓名:‘) #if name in contacts: try: del(contacts[name]) # 也可以使用dict.pop() #else: except(KeyError): print(‘您輸入的聯系人不存在。‘) if instr == 4: break print(‘|--- 感謝使用通訊錄程序 ---|‘)
[Python]小甲魚Python視頻第34課(with else)課後題及參考解答