我试图打破一个检查读取另一个模块中的行的for循环。我注意到这个函数遍历模块中的每一行代码,但它只返回最后一行的布尔值...如何在看到false时立即停止循环而不使用break函数?你不必担心打开文件,我有能力做到这一点
read_lines = file_handle.readlines()
for next_line in all_lines:
check = next_line[0]
if (check == ' '):
result = False
else:
result = True
return result
答案 0 :(得分:1)
了解您想要返回的内容以及 条件下的内容非常重要,因为这会极大地影响您的函数返回的内容和时间。例如,您是否想检查check == ' '
是否只有一个案例?在这种情况下,一次回报就足够了。
for next_line in all_lines:
if next_line[0] == ' ':
return False
return True
或者,您可以使用any
:
return not any(x[0] == ' ' for x in all_lines)
或者,它的对应物all
具有倒置条件:
return all(x[0] != ' ' for x in all_lines)
请注意str.isspace()
是检查字符串是否为空白字符的更加pythonic方式,尽管这会检查所有空白字符(包括制表符和换行符,而不仅仅是空格字符)。
答案 1 :(得分:0)
您可以在代码中添加一个return语句,一旦找到匹配项就会退出函数
read_lines = file_handle.readlines()
for next_line in all_lines:
check = next_line[0]
if (check == ' '):
result = False
#add a return here
return result
else:
result = True
return result