Python中的循环语句有2种,分别是while循环和for循环。
while语句也称条件判断语句,它的循环方式是利用一个条件来控制是否要继续反复执行这个语句,使用while循环语句可以解决程序中需要重复执行的操作。先判断循环条件,再执行循环操作,有时还需要循环变量。
除了while循环,C语言中还有 for 循环,它的使用更加灵活,完全可以取代 while 循环;for循环的语法为:for (变量 = 开始值;变量 <= 结束值;变量 = 变量 + 步进值) {需执行的代码 }。for会结合range()函数一起使用。
特点:
while循环语句的执行取决于是否满足循环条件,当循环条件一直满足或循环条件一直不变时,循环将一直持续下去,这种循环称为“死循环”或者“无限循环”。
for循环执行末尾循环体后将再次进行条件判断,若条件还成立,则继续重复上述循环,当条件不成立时则跳出当下for循环。
while循环当满足条件时进入循环,进入循环后,当条件不满足时,执行完循环体内全部语句后再跳出,而不是立即跳出循环。
1.计算生日是星期几当你女朋友要过生日了,你肯定要定找家饭店订个餐庆祝一下,餐馆工作日会空一些,周末位置不好定,要是能知道她的生日是星期几就好了,下面这个程序就能搞定~~
比如girl friend 的生日假设是 gf_birthday='2017-3-3'
1).我们先把变量格式化成一个datetime对象
birthday=datetime.datetime.strptime(gf_birthday,'%Y-%m-%d')
2).然后利用datetime里面的函数weekday来得到一个下标
birthday.weekday()
3).构造一个weekdays的列表,根据下标从列表里面取出是周几
weekdays=['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']
weekdays[birthday.weekday()]
当然你要计算比如情人节,圣诞节什么的都可以用上面的程序,或者整个列表把10年的节日都罗列计算一下都是可以了,是不是很简单,对日期的理解有木有加深了一下下
2.定时任务
在Python里面,比如你想定期去爬一个网页,或者做运维的同学想每天12点去定时download一个文件,或者定时去扫描一些服务器,甚至老板的需求不停的变可能是,每隔5分钟,或者每小时的整点10分,每周每月都有一些定时任务
用Python怎么破很简单,下面这个程序轻松搞定
我们先从一个最简单的例子说,假设我们是每分种的第10秒,去执行一个任务去打印一下当前的目录
1).window下是dir命令,linux是ls
我们用platform这个模块来判断一下操作系统
import platform
os_platfrom=platform.platform()
if os_platfrom.startswith('Darwin'):
print'this is mac os system'
os.system('ls')
elif os_platfrom.startswith('Window'):
print'this is win system'
os.system('dir')
2).如何定时执行
a.我们先获取当前的时间
now=datetime.datetime.now()
假设当前时间是2017-02-09 20:19:47.555000
b.然后我们输入一个你要定时执行的target时间
比如你是x分10秒的时候执行sched_Timer=datetime.datetime(x,x,x,x,x,10)
前面的x是并不重要(只要最后是10秒就行了),我们就把目标时间设的比当前晚一点即可:
sched_Timer=datetime.datetime(2017,2,9,20,20,10)
c.好当时间到了20:20:10的时候要运行我们的程序
如何定时到了呢,很简单用
if now==sched_Timer:
'run Task'
d.那么如何让时间在下一分钟10秒继续执行呢,也很简单用timedelta()
datetime.timedelta(minutes=1)把target时间往后增加一分钟
sched_Timer=sched_Timer+datetime.timedelta(minutes=1)
然后外边用个while 死循环hold住就可以了
同样的这个代码也可以扩展,把minutes=1改成hours=1就变成了每个小时定时任务,改成days=1就变成每天的定时任务
可以。1、首先获取一下pythonwhile循环运行的时间。
2、然后设定一个时间长度,设定调整当时时间如大于这个时间。3、最后会自动退出pythonwhile循环,退出后查看调整完的间隔时间即可。