Python学习07:while循环语句的用法

笔者:风起怨江南 出处:https://blog.csdn.net/JackMengJin 笔者原创,文章欢迎转载,如果喜欢请点赞+关注,感谢支持!


说在前面:最近工作和学习原因,《Python学习系列》更新及其缓慢,还请亲爱的读者们多多海涵!

 

目录

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

2. while循环的结构

3. 中断循环

4. while循环实战


while循环语句的用法

上一讲中主要研究了for循环语句的介绍和实战训练,这一讲主要是对while循环语句的讲解。

1. 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
当前变量值: 

2. while循环的结构

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.执行循环结束的打印。

3. 中断循环

通常循环会不断的执行代码块,直到条件为假或使用完序列中的所有元素。那么我们如何中断循环并开始新迭代(进入‘下一轮’代码块执行流程)或直接结束循环?

这里我们会用到:

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跳出整个循环。

4. while循环实战

说再多的理论,不如实际操作来的爽,下面讲解几个循环实战。

  • 企业发放的奖金根据利润提成,利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元低于20万元时,低于10万元的部分按10%提成,高于10万元的部分可提成7.5%;20万元到40万元之间时,高于20万元的部分可提成5%;40万元到60万元之间时,高于40万元的部分可提成3%;60万元到100万元之间时,高于60万元的部分可提成1.5%;高于100万元时,超过100万元的部分按1%提成。计算给定的利润I,应发奖金总数。
#利用数组和循环
#定义利润列表
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学习请继续关注我的博客——风起怨江南(传送门,不定期更新,原创不易,如果喜欢请点赞和关注,谢谢大家的支持!

获得更多免费的学习资料请添加微信公众号——风起怨江南,谢谢大家的关注和支持!

发布了10 篇原创文章 · 获赞 14 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/JackMengJin/article/details/105550860