笔者:风起怨江南 出处:https://blog.csdn.net/JackMengJin 笔者原创,文章欢迎转载,如果喜欢请点赞+关注,感谢支持!
说在前面:最近工作和学习原因,《Python学习系列》更新及其缓慢,还请亲爱的读者们多多海涵!
目录
1. for循环和while循环的区别
2. while循环的结构
3. 中断循环
4. while循环实战
上一讲中主要研究了for循环语句的介绍和实战训练,这一讲主要是对while循环语句的讲解。
先通过for循环和while循环的简单的例子,直观的感受下两个循环的区别:
#for循环
for number in range(0,7):
print('Number is:',number)
Number is: 0
Number is: 1
Number is: 2
Number is: 3
Number is: 4
Number is: 5
Number is: 6
#while循环
count = 0
while (count < 7):
print("The count is:",count)
count = count + 1
print('over')
The count is: 0
The count is: 1
The count is: 2
The count is: 3
The count is: 4
The count is: 5
The count is: 6
over
同样是循环数字0~6,但明显看到两个循环的不一样:
例子1中for循环是将1~6范围内遍历后循环打印出来,全部执行(打印)完,再结束。
而例子2的while循环中,count值每次循环都会加1,直到不满足while循环条件时,也就是当count等于7时,count < 7的结果为false,此时跳出while循环,结束。
总结:for循环是在序列穷尽时停止,而while循环是在循环条件不成立时停止。
while循环,表达式是一个逻辑表达式,必须返回一个True或False,直到表达式变为假,才退出。
说白了,while循环条件如果一直成立,那么就一直执行循环!
死循环:
#while循环
number = 10
while number > 0:
print('当前变量值:', number)
print("循环结束")
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值: 10
当前变量值:
while 判断条件:
执行语句
while循环执行语句可以是单个语句或语句块。
判断条件可以是任何表达式,任何非零、或非空(null)的值均为True。
当判断条件为 False 时,循环结束。
#while循环的结构
number = 0
while number < 7:
number += 1
print(number)
print('循环结束')
从上面这个简单的例子可以明显看到while循环的结构:
1.先声明一个变量,赋值为0;
2.while + 判断条件,这里的判断条件我是用的逻辑运算符<;
3.判断条件后要加冒号:作为结束;
4.执行语句中number累计递增+1;
5.打印变量number的值;
6.如果结果为True,再重复执行while循环,先判断number是否小于7,小于7的话继续执行循环;
7.直到number累计增加到7的时候,此时不满足<7的条件,跳出循环;
8.执行循环结束的打印。
通常循环会不断的执行代码块,直到条件为假或使用完序列中的所有元素。那么我们如何中断循环并开始新迭代(进入‘下一轮’代码块执行流程)或直接结束循环?
这里我们会用到:
break
break的中文就是打断、间断、休息等意思。如果要结束(跳出)循环,使用break。
#while循环break用法
count = 0
while (count < 7):
print("The count is:",count)
count = count + 1
# 当count循环到3时,跳出循环
if count > 3:
break
print('over')
The count is: 0
The count is: 1
The count is: 2
The count is: 3
over
可以看到当count循环到3的时候,if从句中执行了break,跳出了while循环。
#for循环break用法
for number in range(0,7):
print('Number is:',number)
#当nuemeber等于3的时候跳出循环
if number == 3:
break
Number is: 0
Number is: 1
Number is: 2
Number is: 3
continue
中文意思是继续,用于跳过该次循环。
举例:打印字符串'Python',如果字符为h的时候,跳过该次循环:
#while循环continue用法
for letter in 'Python':
if letter == 'h':
continue
print('当前字母 :', letter)
当前字母 : P
当前字母 : y
当前字母 : t
当前字母 : o
当前字母 : n
通过上面的例子可以明显看到continue的用法,再举个例子更清晰看到用法:
#while循环
number = 10
while number > 0:
number = number - 1
if number == 5:
continue
print('当前变量值 :', number)
print("循环结束")
当前变量值 : 9
当前变量值 : 8
当前变量值 : 7
当前变量值 : 6
当前变量值 : 4
当前变量值 : 3
当前变量值 : 2
当前变量值 : 1
当前变量值 : 0
循环结束
总结:continue 语句跳出本次循环,而break跳出整个循环。
说再多的理论,不如实际操作来的爽,下面讲解几个循环实战。
#利用数组和循环
#定义利润列表
money = [1000000,600000,400000,200000,100000,0]
#定义提成比例列表,与利润列表一一对应
percent = [0.01,0.015,0.03,0.05,0.075,0.1]
while True:
#获取用户输入
i = input('请输入利润(退出请按q):')
if i == 'q':
#退出程序
exit(0)
#如果不是数字,重新开始循环,重新输入数据
if not i.isdigit():
continue
#定义一个空的奖金列表,存放每一取间计算的奖金
reward = []
print('奖金为:',end='')
I = int(i)
for x in range(0,6):
if I > money[x]:
#将每一个区间的奖金存放在奖金列表中,
reward.append((I - money[x]) * percent[x])
I = money[x]
#逆序奖金列表,目的为方便输出
reward.reverse()
#如果只有一个,直接输出
if (len(reward)) == 1:
print(reward[0])
else:
#输出每个取间的奖金,并求和
print('+ '.join([str(num) for num in reward]),'=',sum(reward))
运行结果:
请输入利润(退出请按q):10000000
奖金为:10000.0+ 10000.0+ 6000.0+ 90000.0+ 6000.0+ 7500.0 = 129500.0
请输入利润(退出请按q):90000
奖金为:9000.0
请输入利润(退出请按q):1234546
奖金为:10000.0+ 10000.0+ 6000.0+ 2345.46+ 6000.0+ 7500.0 = 41845.46
请输入利润(退出请按q):43
奖金为:4.3
请输入利润(退出请按q):1
奖金为:0.1
请输入利润(退出请按q):2134557
奖金为:10000.0+ 10000.0+ 6000.0+ 11345.57+ 6000.0+ 7500.0 = 50845.57
请输入利润(退出请按q):q
Process finished with exit code 0
更多while、for循环的组合用法会在后续学习实例中详细讲解,还请持续关注《Python学习》系列的更新,点赞关注走一波~
以上便是《Python学习07讲》的所有内容,更多python学习请继续关注我的博客——风起怨江南(传送门),不定期更新,原创不易,如果喜欢请点赞和关注,谢谢大家的支持!
获得更多免费的学习资料请添加微信公众号——风起怨江南,谢谢大家的关注和支持!