我可以循环 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 回答
![?](http://img1.sycdn.imooc.com/54586431000103bb02200220-100-100.jpg)
温温酱
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 关注
- 109 浏览
添加回答
举报
0/150
提交
取消