10-6 加法運算:提示用戶輸入提供數值輸入,常出現的一個問題是,用戶提供的是文本而不是數字。這種情況下,當你嘗試將輸入轉換為整數時,將 引發TypeError異常。編寫一個程式,提示用戶輸入兩個數字,再將它們相加並列印結果。在用戶輸入的任何一個值不是數字時都捕獲TypeError異常,並列印一條友 ...
10-6 加法運算:提示用戶輸入提供數值輸入,常出現的一個問題是,用戶提供的是文本而不是數字。這種情況下,當你嘗試將輸入轉換為整數時,將 引發TypeError異常。編寫一個程式,提示用戶輸入兩個數字,再將它們相加並列印結果。在用戶輸入的任何一個值不是數字時都捕獲TypeError異常,並列印一條友好的錯誤消息。對編寫的程式測試:先輸入兩個數字,在輸入一些文本而不是數字。
print("Enter two numbers, and I'll add them.") first_number = input("\nFirst number: ") second_number = input("Second number: ") try: nums_sum = int(first_number) + int(second_number) print(first_number + '+' + second_number + '=' + str(nums_sum)) except ValueError: print("Sorry! Only accept numbers input.")
10-7 加法計算器:將10-6的代碼放在一個while迴圈中,讓用戶犯錯(輸入是文本而不是數字之)後能夠繼續輸入數字。
print("Enter two numbers, and I'll add them.") print("Enter 'q' to quit.") while True: first_number = input("\nFirst number: ") if first_number == 'q': break second_number = input("Second number: ") if second_number == 'q': break try: nums_sum = int(first_number) + int(second_number) print(first_number + '+' + second_number + '=' + str(nums_sum)) except ValueError: print("Sorry! Only accept numbers input.")
10-8 貓和狗:創建兩個文件cats.txt和dogs.txt,在第一個文件中至少存儲三隻貓的名字,而在第二個文件中至少存儲三條狗的名字。編寫一個程式,嘗試讀取這些文件,並將其內容列印到屏幕上。將這些代碼放在一個try-except代碼塊中,以便文件不存在時捕獲FileNotFound錯誤,並列印一條友好消息。將其中一個文件轉移到另一個地方,並確認except代碼塊中代碼正確執行。
file_names = ['cats.txt', 'dogs.txt'] for filename in file_names: try: with open(filename) as f_obj: names = f_obj.read() print(filename + " include:\n" + names.rstrip()) except FileNotFoundError: print("Sorry, the file " + filename + " can not fond.")
10-9 沉默的貓和狗:修改10-8的代碼塊,讓程式文件不存在時一言不發。
file_names = ['cats.txt', 'dogs.txt'] for filename in file_names: try: with open(filename) as f_obj: names = f_obj.read() print(filename + " include:\n" + names.rstrip()) except FileNotFoundError: pass