流程控制-while和循环退出

一、循环退出
循环退出有以下几种:
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))



  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值