扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
一般来说,上面这种情况更多是跳出循环。
创新互联主要从事网页设计、PC网站建设(电脑版网站建设)、wap网站建设(手机版网站建设)、响应式网站、程序开发、网站优化、微网站、成都小程序开发等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了丰富的网站设计制作、成都做网站、网站设计、网络营销经验,集策划、开发、设计、营销、管理等多方位专业化运作于一体。
break 跳出循环
continue 跳出本次循环,继续执行下次循环
至于退出进程
import sys
sys.exit()
import time
import os
import schedule
import pyautogui
def Rec():
record = os.startfile("C:\Program Files (x86)\EVCapture\EVCapture.exe")
schedule.every().day.at("16:40").do(Rec)
while True:
if pyautogui.hotkey('ctrl', 'f2'):
break
schedule.run_pending()
time.sleep(1)
def Star_t():
St = pyautogui.hotkey('ctrl', 'f1')
Star_t()
事实上,Python的标准语法是不支持跳出多重循环的,所以只能利用一些技巧,大概的思路有:写成函数、利用笛卡尔积、利用调试。
写成函数
在Python中,函数运行到return这一句就会停止,因此可以利用这一特性,将功能写成函数,终止多重循环,例如
def work(): for i in range(10): for j in range(10): if i+j 5: return i,jprint work()
利用笛卡尔积
这种方法的思路就是,既然可以跳出单循环,我就将多重循环改写为单循环,这可以利用itertools中的笛卡尔积函数product,例如
from itertools import productfor i,j in product(range(10), range(10)): if i+j 5: print i,j break
利用调试模式
笛卡尔积的方式很巧妙,也很简洁,但它只能用于每次循环的集合都是独立的情形,假如每层循环都与前一层紧密相关,就不能用这种技巧了。这时候可以用第一种方法,将它写成函数,另外,还可以利用调试模式。这个利用了调试模式中,只要出现报错就退出的原理,它伪装了一个错误出来。
class Found(Exception): passtry: for i in range(10): for j in range(i): #第二重循环跟第一重有关 if i + j 5: raise Foundexcept Found: print i, j
return:直接返回函数,所有该函数体内的代码(包括循环体)都不会再执行
循环:英语[circulate;circle]以环形、回路或轨道运行;沿曲折的路线运行;特指运行一周而回到原处,再转。或说反复地连续做某事。
指事物周而复始的运动或变化,时间循环了等等。
喜欢在循环、函数里使用多个单行的if判断,如果true直接跳出。
类似常用的传值类型判断。
类似以下:
这种句式的好处是逻辑非常清晰。
但是有时要在if里嵌套if,因为它不是函数也不是循环,就无法正常退出。
例如:
当然可以用if...else解决,但是结构就不那么清晰
为了达到我的逐行判断、逻辑清晰的目的,我决定这么使用:
整体结构很简单。
相当于在备份a前加了两个判断。
我讨厌大规模的for循环、嵌套for循环,但却喜欢1的for循环。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流