停止没有B的Python代码

2024-09-22 16:38:04 发布

您现在位置:Python中文网/ 问答频道 /正文

在没有break函数的循环过程中,有没有一种方法可以停止Python中的代码?例如,如果给我的文本文件如下所示:

5 *
7 *
5 *
Limerick
8 A
8 A
5 B
5 B
8 A
Quintain (English)
0 A
0 B
0 A
0 B
0 B

当循环到达包含所有字母的行(在本例中是Limerick)时,如何在不使用break函数的情况下停止循环?在

^{pr2}$

基本上,我想将前3行添加到一个列表中,然后停止循环而不使用break函数。在


Tags: 方法函数代码列表english过程字母情况
3条回答

也可以在函数中执行此操作,然后从函数返回而不是使用break。在

您可以使用变量来控制循环中的操作。在

my_list = []
with open('test.txt', 'r') as f_i:
    flag = 1
    for line in f_i:
        if flag:
            if line.strip() != 'Limerick':
                my_list.append(line)
            else:
                flag = 0

print(my_list)

试试这个:

f = open('your_file')
my_list= []
for x in f:
    if x.strip() == 'Limerick':
        f.seek(0,2)
    else:my_list.append(x.strip())
print my_list

输出:

^{pr2}$

在上面的代码中,它将追加到找到Limerick,f.seek(0,2)将让文件到达末尾。在

您还可以使用返回:

>>> my_list = []
>>> def limeric(f):
...     for x in f:
...         if x.strip() == 'Limerick':
...             return
...         my_list.append(x.strip())
... 
>>> f= open('your_file')
>>> limeric(f)
>>> my_list
['5 *', '7 *', '5 *']

相关问题 更多 >