我可以循環 ValueError,但只有 ValueError 會打印語句IndexError 將停止代碼,我想繼續向用戶詢問“行號”。def file_content(file_name): user_file = open(file_name, 'r') content = user_file.readlines() user_file.close() return contentdef main(): file_name = input('Enter the name of the file: ') try: content = file_content(file_name) except IOError: print ('File can not be fount. Program will exit.') exit() while True: try: line_number = input('Enter a line number: ') line_number = int(line_number) break except IndexError: print ('That is not a valid line number. Try again.') except ValueError: print ('You need to enter an integer for the line number. Try again.') print ('The line you requested:') print (content[line_number-1]) main()這是我運行代碼時發生的情況Enter the name of the file: datas.txtEnter a line number: wYou need to enter an integer for the line number. Try again.Enter a line number: 99The line you requested:Traceback (most recent call last):File "/Users/yenvivian/Desktop/Python HW/hw04.py", line 40, in <module>main()File "/Users/yenvivian/Desktop/Python HW/hw04.py", line 37, in mainprint (content[line_number-1])IndexError: list index out of range謝謝
1 回答

溫溫醬
TA貢獻1752條經驗 獲得超4個贊
要捕獲異常,引發異常的代碼必須在try:
try:
line_number = input('Enter a line number: ')
line_number = int(line_number)
print ('The line you requested:')
print (content[line_number-1]) # Inside the try
break
except IndexError:
print ('That is not a valid line number. Try again.')
except ValueError:
print ('You need to enter an integer for the line number. Try again.')
- 1 回答
- 0 關注
- 137 瀏覽
添加回答
舉報
0/150
提交
取消