python块try/except-显示一行文本
我的代码:python块try/except-显示一行文本,python,loops,for-loop,exception,try-catch,Python,Loops,For Loop,Exception,Try Catch,我的代码: fname = "text.txt" text_file = open(fname, "r") lines = text_file.readlines() while True: linenumber = int(input("Please enter a line number or press 0 to quit: ")) if linenumber == 0: print(&quo
fname = "text.txt"
text_file = open(fname, "r")
lines = text_file.readlines()
while True:
linenumber = int(input("Please enter a line number or press 0 to quit: "))
if linenumber == 0:
print("Thanks for using the program")
break
text_file.close()
如何添加异常(try/except)处理,以便在输入例如第30行中不存在的数字后,出现异常,例如“此行不存在”,我遇到了一个大问题,有人能帮忙吗
提前感谢 您可以执行以下操作:
try:
print(lines[linenumber])
except IndexError:
print("Line not found")
但您也可以检查它是否有效:
if len(lines) < linenumber:
print("line not found")
如果len(行)
(注意,与其他响应一样,您使用的是1索引而不是0索引)
就个人而言,我不认为输入“0”是一个好的退出条件。你真的不需要
尝试/除了;if
语句将执行以下操作:
。。。
尽管如此:
linenumber=int(输入(“请输入行号或按0退出:”)
如果linenumber==0:
打印(“感谢您使用该程序”)
打破
elif linenumber<0或linenumber>len(行):
打印(“此行不存在!)
...
(我猜您正在制作程序,以便用户输入基于1的索引,因此elif
条件具有
而不是=
)
但是如果您确实需要尝试/except
,以下是一种方法:
。。。
尽管如此:
linenumber=int(输入(“请输入行号或按0退出:”)
如果linenumber==0:
打印(“感谢您使用该程序”)
打破
尝试:
行[行号-1]
除索引器外:
打印(“此行不存在”)
其他:
打印(“此行存在,是”)
#做它存在时你会做的事
...