Python-在if语句的for循环中中断if语句

Python-在if语句的for循环中中断if语句,python,Python,这是一个有点混乱的问题,但这里是我的简化代码 if (r.status_code == 410): s_list = ['String A', 'String B', 'String C'] for x in in s_list: if (some condition): print(x) break print('Not Found') 问题是,如果满足某些条件,即打印x,我不希望打印“未找

这是一个有点混乱的问题,但这里是我的简化代码

if (r.status_code == 410):
     s_list = ['String A', 'String B', 'String C']
     for x in in s_list:
         if (some condition):
             print(x)
             break

     print('Not Found')

问题是,如果满足某些条件,即打印x,我不希望打印“未找到”。如何突破最外层的if语句?

为什么不使用变量呢

if (r.status_code == 410):
     s_list = ['String A', 'String B', 'String C']
     found = None
     for x in in s_list:
         if (some condition):
             found = x
             print(x)
             break

     if not found:
         print('Not Found')

为什么不直接使用变量呢

if (r.status_code == 410):
     s_list = ['String A', 'String B', 'String C']
     found = None
     for x in in s_list:
         if (some condition):
             found = x
             print(x)
             break

     if not found:
         print('Not Found')
你不能突破if语句;但是,您可以使用for循环的else子句有条件地执行print调用

只有当for循环在s_列表上迭代时被StopIteration异常终止时,才会调用print,而不是当for循环被break语句终止时。

您不能中断if语句;但是,您可以使用for循环的else子句有条件地执行print调用


只有当for循环在s_列表上迭代时被StopIteration异常终止时,才会调用print,而不是当for循环被break语句终止时。

事实上,语言中有一种常见的机制可以打破任何块,您抛出一个hissy fit a.k.a异常;只要确保你抓住它,恢复你的流动。 这完全取决于您在编码标准、性能等方面所处的环境

在某些语言中,它不像标签那样干净&跳转/跳转,但我不介意

从内置导入异常 类JumpingAroundException: def _uinit _; self,message=None,data=None,*args,**kwargs: 超级异常,self.\u初始化\u消息,*args,**kwargs self.data=数据 尝试:围绕要跳出的IF/块 如果r.status_code==410: s_列表=['String A'、'String B'、'String C'] 对于s_列表中的x: 如果出现以下情况: printx 打破 提升JumpingAround在捕获其他函数时,更复杂的用例可能会提升JumpingArounddata=x 打印“未找到” 除了跳转外: 通过
事实上,语言中有一种通用的机制可以打破任何障碍,你抛出一个hissy-fit,也就是异常;只要确保你抓住它,恢复你的流动。 这完全取决于您在编码标准、性能等方面所处的环境

在某些语言中,它不像标签那样干净&跳转/跳转,但我不介意

从内置导入异常 类JumpingAroundException: def _uinit _; self,message=None,data=None,*args,**kwargs: 超级异常,self.\u初始化\u消息,*args,**kwargs self.data=数据 尝试:围绕要跳出的IF/块 如果r.status_code==410: s_列表=['String A'、'String B'、'String C'] 对于s_列表中的x: 如果出现以下情况: printx 打破 提升JumpingAround在捕获其他函数时,更复杂的用例可能会提升JumpingArounddata=x 打印“未找到” 除了跳转外: 通过
你不能中断if语句,只能中断循环。我会重新构造你的代码,以便你可以返回。一旦退出循环,你将始终打印“未找到”,你应该考虑何时打印并调整逻辑/你不能中断if语句,仅循环。我会重新构造代码,以便您可以返回。一旦退出循环,您将始终打印“未找到”,您应该考虑何时打印并调整逻辑/有关For和else的混淆,请参阅。有关For和else的混淆,请参阅。