Python学习之While循环
while循环
while循环是在高中学习过的知识,也就是高中所称的当型循环。意思就是当条件满足的时候,就执行循环体内的语句,如果不满足条件,则退出。
需求,如果年龄大于60,那么输出 hi,you shoudn’t work !,否则,输出,”please continue work !
方法一:使用if条件实现
#!/usr/bin/env python #coding:utf-8 print "please input your age: ", age = int(raw_input()) if age >= 60: print "hi, you shouldn\'t work !" else: print "sorry,please continue work !"
执行结果:
[root@python ~]# python iftest1.py please input your age: 60 hi, you shouldn't work ! [root@python ~]# python iftest1.py please input your age: 40 sorry,please continue work !
方法二:使用while循环
在使用while循环之前,有必要学习一下while循环的语法
while 循环语法
while condition:
statement
这是一个简单的while循环的语句,我们现在来看上面的需求该怎么实现。
#!/usr/bin/env python #coding:utf-8 print "please input your age: " age = int(raw_input()) while age >= 60: print "hi, you shoudn\'t work !" break else: print "sorry,please continue work !"
执行结果:
[root@python ~]# python whitest.py please input your age: 60 hi, you shoudn't work ! [root@python ~]# python whitest.py please input your age: 40 sorry,please continue work !
上面就是一个while循环,但是,我们再里面增加了关键字break和else才能实现需求,但是我们也可以这么干。
在while当中使用if条件
#!/usr/bin/env python #coding:utf-8 print "please input your age: ", age = int(raw_input()) while true: if age >= 60: print "hi,you shoudn't work !" break else: print "sorry,please continue work !" break
执行结果:
[root@python ~]# python whitest1.py please input your age: 60 hi,you shoudn't work ! [root@python ~]# python whitest1.py please input your age: 40 sorry,please continue work !
但是,上面的方法并不怎么好,因为可读性不怎好!
关于while循环我也不知道该说些什么,反正就是提需求上代码 !
玩一个小游戏:
需求,随机产生一个数和自己输入一个数做比较,如果输入的数字和随机的数字相等,那么提示“congratulations !the number is equal !”,如果输入的数字比随机产生的数字大 ,那么输出:”sorry, you age wrong,the number is more than random number !”,如果输入的数字比随机产生的数字小,那么输出:“sorry,you are wrong,the number is less than random number !”
话不多说,上代码 :
#!/usr/bin/env python #coding:utf-8 import random print "please input number: ", num = int(raw_input()) i = 0 while i <= 10: print "************random games****************" randnum = random.randint(1,100) x = 9 - i if num == randnum: print "congratulations ! the number %s is equal random %s" %(num,randnum) break elif num >= randnum: print "sorry ,you are wrong ,the number: %s is more than random: %s" %(num,randnum) break elif num <= randnum: print "sorry,you are wrong ,the number: %s is less than random: %s" %(num,randnum) break print "***********end games********************" i += 1
执行结果:
[root@python ~]# python game.py please input number: 10 ************random games**************** sorry,you are wrong ,the number: 10 is less than random: 47 [root@python ~]# python game.py please input number: 53 ************random games**************** sorry ,you are wrong ,the number: 53 is more than random: 6 [root@python ~]# python game.py please input number: 76 ************random games**************** sorry ,you are wrong ,the number: 76 is more than random: 62 [root@python ~]#
发现这个游戏难度太大了,因为随机数是只有在条件为真的时候才产生的,所以,输入不知道多少次才能够成功,所以,现在来改一下代码,让随机数在在条件判断钱就产生,这样玩游戏就很明了。
#!/usr/bin/env python #coding:utf-8 import random randnum = random.randint(1,100) print "the random number is: %d " % randnum print "please input number: ", num = int(raw_input()) i = 0 while i <= 10: print "************random games****************" x = 10 - i if num == randnum: print "congratulations ! the number %s is equal random %s" %(num,randnum) break elif num >= randnum: print "sorry ,you are wrong ,the number: %s is more than random: %s" %(num,randnum) break elif num <= randnum: print "sorry,you are wrong ,the number: %s is less than random: %s" %(num,randnum) break print "***********end games********************" i += 1
执行结果:
[root@python ~]# python game.py the random number is: 13 please input number: 13 ************random games**************** congratulations ! the number 13 is equal random 13 [root@python ~]# python game.py the random number is: 74 please input number: 89 ************random games**************** sorry ,you are wrong ,the number: 89 is more than random: 74 [root@python ~]# python game.py the random number is: 19 please input number: 10 ************random games**************** sorry,you are wrong ,the number: 10 is less than random: 19 [root@python ~]#
这时候又有一个新的需求了,用户在任何时候输入数字的时候是不可靠的,那么就需要检测用户输入数字的有效性,如果用户输入的数字有效,那么用户输入的数字是否是在1–100之间呢?
我们需要对上述代码进行一个小小的修改。
#!/usr/bin/env python #coding:utf-8 import random randnum = random.randint(1,100) print "the random number is: %d " % randnum while true: print "************random games****************" num_input = raw_input("please input a interger number in 1 to 100: ") if not num_input.isdigit(): print "please input a interger number: " elif int(num_input) < 0 or int(num_input) >= 100: print "the input number should be in 1 to 100" else: if randnum == int(num_input): print "congratulations ! the number %s is equal random %s" %(randnum,num_input) break elif randnum >= int(num_input): print "sorry ,you are wrong ,the number: %s is more than random: %s" %(randnum,num_input) break elif randnum <= int(num_input): print "sorry,you are wrong ,the number: %s is less than random: %s" %(randnum,num_input) break else: print "you should be a machine ! bye bye ." ~ ~
说明:代码中对于判断是否为数字,使用num.isdigit( ) 函数
执行结果说明:
[root@python ~]# python game.py the random number is: 78 ************random games**************** please input a interger number in 1 to 100: 78 congratulations ! the number 78 is equal random 78 [root@python ~]# python game.py the random number is: 73 ************random games**************** please input a interger number in 1 to 100: 43 sorry ,you are wrong ,the number: 73 is more than random: 4 [root@python ~]# python game.py the random number is: 38 ************random games**************** please input a interger number in 1 to 100: 96 sorry,you are wrong ,the number: 38 is less than random: 96 [root@python ~]# python game.py the random number is: 95 ************random games**************** please input a interger number in 1 to 100: string #输入一个字符串 please input a interger number: ************random games**************** please input a interger number in 1 to 100: . #输入一个半角句号 please input a interger number: ************random games**************** please input a interger number in 1 to 100: / #输入一个斜杠 please input a interger number: ************random games**************** please input a interger number in 1 to 100: 343 #数字不在1到100之间 the input number should be in 1 to 100 ************random games**************** please input a interger number in 1 to 100: 543 the input number should be in 1 to 100 ************random games**************** please input a interger number in 1 to 100: 12 sorry ,you are wrong ,the number: 95 is more than random: 1 [root@python ~]# vi game.py [root@python ~]#
while中的break和continue关键字
break和continue关键字经常出现杂循环当中,
break使用来当循环条件满足,执行语句块后马上跳出循环体,执行循环体外的语句。
continue则是从当前位置跳到循环体的最后一行的后面,但是不执行循环体内的最后一行,对于一个循环体来讲,最后一行的后面就是开始,继续执行一个循环体。
break
#!/usr/bin/env python #coding:utf-8 num = 4 while num: if num % 4 == 0: break print "no exec !" else: print "%d is jishu" %num num = 0 print "the number is %d " %num
执行结果:
[root@python ~]# python bretest.py
the number is 4
[root@python ~]#
说明break后面的print 语句并没有执行
continue
#!/usr/bin/env python #coding:utf-8 num = 9 while num: if num % 4 == 0: num -= 1 continue #如果是偶数,就重新循环,直到条件为假 else: print "the later number is %d " %num #如果是奇数,那么输出奇数 num -= 1
执行结果:
[root@python ~]# python contest.py
the later number is 9
the later number is 7
the later number is 6
the later number is 5
the later number is 3
the later number is 2
the later number is 1
while循环到这就结束了,接下来的学习就是要进行文件的学习了,文件的学习是非常重要的,尤其是那些喜欢学习网络爬虫的同学,文件的学习是必不可少的,因此,这一部分需要认真学习。明天更新,补昨晚没有更新的东西。
上一篇: 蚝油莴苣叶,味道很不错
下一篇: Python 小案例 随机点名