Python的if语句来更改数字

Python的if语句来更改数字,python,Python,我正在学习Python,我编写了一个脚本,搜索包含“关键字”的几行,然后在新文件中写入/打印(以前)选择的列表行(我使用第二个参数从列表中选择该行) 一切都进行得很顺利,直到我尝试添加一条语句,以防我选择的列表行>实际的len(列表),然后选择的列表行=len(列表);不管出于什么原因,它都不起作用 任何人都可以指出为什么它不工作,这是我的脚本。非常感谢你的帮助。(以下是我用作输入的文件示例) energies列表的最后一个元素实际上是energies[len_list-1],因为Python索

我正在学习Python,我编写了一个脚本,搜索包含“关键字”的几行,然后在新文件中写入/打印(以前)选择的列表行(我使用第二个参数从列表中选择该行)

一切都进行得很顺利,直到我尝试添加一条语句,以防我选择的列表行>实际的len(列表),然后选择的列表行=len(列表);不管出于什么原因,它都不起作用

任何人都可以指出为什么它不工作,这是我的脚本。非常感谢你的帮助。(以下是我用作输入的文件示例)


energies
列表的最后一个元素实际上是
energies[len_list-1]
,因为Python索引从0开始

因此,如果要打印“能量的最后一个元素”,则需要将
行\u选择
初始化为小于列表长度的一个:

if line_select >= len_list:
    line_select = len_list-1

energies
列表的最后一个元素实际上是
energies[len_list-1]
,因为Python索引从0开始

因此,如果要打印“能量的最后一个元素”,则需要将
行\u选择
初始化为小于列表长度的一个:

if line_select >= len_list:
    line_select = len_list-1

你说不工作是什么意思?基本上如果我尝试一个比len_列表>的行,我会得到:文件“search10.py”,第32行,在print>>opennew,energies[line_select]Indexer:列表索引超出范围,你说不工作是什么意思?基本上如果我尝试一个比len_列表>的行,我会得到:文件“search10.py”,第32行,在print>>opennew中,energies[line_select]Indexer错误:列表索引超出范围我不想只打印最后一个元素,我想选择要打印的元素,并使用第二个参数控制它。但是,当我的line_select(第二个参数)if>大于len_列表时,我会得到一个错误。然后我想做一个if语句,如果我的line\u select>than len\u list,那么line\u select=len(list),我在代码中尝试了这一点,但我一直得到一个错误。文件“search10.py”,第32行,in print>>opennew,energies[line_select]indexer错误:列表索引超出范围我刚做了您建议的更改,它可以工作,感谢一百万只需单击答案文本左侧答案投票计数器下方的勾号。请参阅常见问题解答:(如果您有更多问题,它将派上用场!)我不想只打印最后一个元素,我想选择要打印的元素,并使用第二个参数控制它。但是,当我的line_select(第二个参数)if>大于len_列表时,我会得到一个错误。然后我想做一个if语句,如果我的line\u select>than len\u list,那么line\u select=len(list),我在代码中尝试了这一点,但我一直得到一个错误。文件“search10.py”,第32行,in print>>opennew,energies[line_select]indexer错误:列表索引超出范围我刚做了您建议的更改,它可以工作,感谢一百万只需单击答案文本左侧答案投票计数器下方的勾号。请参阅常见问题解答:(如果您有更多问题,它将派上用场!)