Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python块try/except-显示一行文本_Python_Loops_For Loop_Exception_Try Catch - Fatal编程技术网

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]
除索引器外:
打印(“此行不存在”)
其他:
打印(“此行存在,是”)
#做它存在时你会做的事
...