您的位置:首页 > 其它

流程控制-while和循环退出

2017-12-27 19:51 387 查看
一、循环退出

循环退出有以下几种:

1.continue

2.break

3.pass

4.sys.exit()

查看几个小例子来了解他们的作用

1.contiune例子:

for i in range(1,11):

if i == 5:

continue

print i,



当变量5 等于5时,就跳出了这次循环,然后继续下一次循环。

2.break例子。

for i in range(1,11):

if i == 5:

break

print i,



当变量等于5时,就退出了循环。不会循环下面的次数。

3.pass

for i in range(1,11):

if i == 5:

pass

print i,



pass 的作用是占位,加入还没想好这段代码怎么写,可以用pass 做个占位。

4.sys.exit()

import sys

for i in range(1,11):

if i == 5:

break

print i,

print "hhhhh"



sys.exit()他的作用是,结果当前脚本后面的内容。

前面几个循环退出都是针对循环来做的,而exit()则是对整个脚本来做退出的

可以看到上面代码,最后一行print 输入就没输出。因为退出了当前脚本。而其他几个可以输出。

for i in range(1,11):

if i == 5:

break

print i,

print 'hhhh'



结合起来看看

import sys

import time

for i in xrange(10):

if i == 3:

continue

elif i == 5:

pass

elif i == 6:

sys.exit()

elif i == 9:

break

print i

time.sleep(1)

else:

print "main end"

print "OK"



可以看到执行到5就结束了

这里用了个time 模块 time.sleep()这个方法类似,shell中的sleep 。

二、模块初解

1.模块有Python自带的标准模块和第三方模块。

像time,sys这种就是自带的标准模块,像pip list 里的模块都是第三方模块

模块是什么?模块就是一个函数,类、或者是一个包,所谓包就是一个目录。

random模块中的randint()方法可以随机生成一个数。

比如random.randint(1,20) 在1到20随机生成一个数。

三、while循环

1。for循环和while循环的区别

for循环用在有次数的循环上,而while循环是用在有条件的控制上。

while语法

while语句,可以让一个代码块一遍又一遍的运行,只要条件为True,子句就会执行。

while语句总是包含以下几部分

关键字while;

条件(求值为True或False的表达式。);

冒号:

从新行的开始,缩进的代码块(称为while子句。)

对比一下if和while语句

if语句

spam=0

if spam < 5:

print('hello world')

spam = spam + 1

while语句

spam = 0

while spam < 5 :

print('hello world')

spam = spam + 1

运行后if语句只会打印一次hello world,但是while会打印5次hello world。

while循环直到条件变成了假,false才退出, while循环,表达式是一个逻辑表达式,必须返回一个true或false

2.退出while循环

第一种方式:

n = 0

while 1:

if n == 10:

break

print 'hello',

n +=1



执行了10次后退出。如果不退出就是一个死循环了。

第二种方式,等待键盘输入来退出循环。

while True:

print 'hello'

input = raw_input("please input q for quit: ")

if input == 'q':

break



还有一种方式用当条件为假退出循环。

x = ''

while x != 'q':

print 'hello'

x = raw_input("please input q for quit: ")

if not x:

break

当x 不为q 条件为真, 会一直执行,当xt为q时 条件为假 结束循环。空字符串也是 也会结束。

3.else用法

x = ''

while x != 'q':

print 'hello'

x = raw_input("please input q for quit: ")

if not x:

break

else:

print 'OK quit successfull'

当结束循环的时候就会输出else里的字句。



习题

1. 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

程序分析:对n进行分解质因数,应先找到一个最小的质数i,然后按下述步骤完成:

(1)如果分解后商为1,则说明分解质因数的过程已经结束,打印出即可。

(2)如果商不为1,则应打印出i的值,并用n除以i的商,作为新的正整数进行分解,

 重复执行第一步。

(3)如果n不能被i整除,则i的值加1,重复执行第一步。

num = int(input('请输入一个数字:'))

if num <= 2:

print("please input number >= 2")

else:

i = 2

while i>=2:

if (num % i) != 0:

i = i + 1

continue

elif (num % i) == 0:

print(i)

num = num / i

if num != 1:

continue

if num == 1:

break

2. 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

程序分析:采取逆向思维的方法,从后往前推断。

day = 10

peachNumber = 1

while day >1:

day -= 1

peachNumber = (peachNumber +1)*2

print("day {0} peach :{1}".format(day,peachNumber))

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: