前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >python的循环

python的循环

作者头像
py3study
发布于 2020-01-08 07:17:33
发布于 2020-01-08 07:17:33
1.5K00
代码可运行
举报
文章被收录于专栏:python3python3
运行总次数:0
代码可运行

python的循环

编写程序时经常有代码需要重复运行,python提供了while和for进行循环操作。

一、while循环

1、while循环可以根据条件进行判断,决定是否要循环执行语句块,语法如下:

循环条件后面也是要使用冒号,然后缩进写循环操作语句,先判断条件是否成立,如果为true,则执行循环操作语句,如果为false,则跳出循环。示例代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
count = 0
while (count <5):
    count = count+1
print (count)
               #结果
>>> 
5

变量count初始值为0,当count < 5时,循环执行count=count+1语句。如第1遍执行时,条件是0 < 5,结果true,则执行count=count+1语句,count值变为1,此时已经没有其他语句同级,则值变为2。以此类推,当count等于4的时候,4 < 5成立,执行count=count+1语句,count变为5,此时再进行条件判断5 < 5为false,退出while循环,最后的输出结果为5.

2、字符串的格式化是将若干值插入带有“%”替代符的字符串中,从而可以动态地输出字符串,字符串中的“%d”表示插入的是一个整形数据,字符串后面的“%i”表示取的是变量i的值。 字符串格式化中可以使用的替代符除了“%d”,还有其他的替代符,如下表:

下面示例演示这几种替代符的使用情况:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
num = 5
numStr = "5"
numF = 5.55
print("第%d名"%num)
print("第%s名"%numStr)
print("分数是:%f"%numF)
              #结果
>>>5名
第5分数是:5.550000

字符串中使用对应的替代符,把相应的变量插入到了相应的位置。

字符串中还可以使用多个替代符,对应的变量使用元组即可,示例代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
first = 1
second = 2
print("第%d名和第%d名"%(first,second))
      #结果
>>>1名和第2

使用时要注意顺序,位置不能放错,否则可能会出现类型不匹配的问题。

还可以使用字典格式化多个值,示例代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
num={"first":1,"second":2}
print("第%(first)d名和第%(second)d名"%num)
      #结果
>>>1名和第2

因为字典是无序的,所以使用字典时需要把键指定出来,明确哪个位置要用哪个键值。

3、对于编写好的代码,经过一段时间之后,有可能会忘记代码的具体作用,所以代码中要写一些注释文字,以便于日后阅读和修改代码。python中使用“#”+空格开头表示注释,可以对前面代码加上注释如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#输入5门课程的考试成绩,计算平均成绩
#初始化循环计算器i
i=1
#初始化总成绩变量sum
sum=0
#重复执行5次接收考试成绩,求和的操作
while i<=5:
    print("请输入第%d门课程的考试成绩"%i)
#每门课程计入总成绩
sum=sum+inpunt()
i=i+1        #计数器i增加1
#计算平均成绩
avg=sum/(i-1)
#输出平均成绩
print("5门课程的平均成绩是%d"%avg)

使用“#”+空格开头的文字python解释器不会做任何处理,可以提高代码的可读性。在行开头就使用“#”+空格的成为单行注释,紧随同行以“#”+空格开头的成为行内注释,注释并不是在每行都需要,只需要把不易读的代码做注释即可。

二、for循环

for循环是另一种用于控制循环的方式,while是使用条件判断执行循环,而for是使用遍历元素的方式进行循环。

1、for循环的几种方式

for循环的语法结构如下:

常用的有以下几种方式。

1)for循环可以对字符串进行遍历,逐个获得字符串的每个字符,示例代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for letter in ("python"):
    print ("Current letter:%s"%letter)
         #结果
>>>
Current letter:p
Current letter:y
Current letter:t
Current letter:h
Current letter:o
Current letter:n

语句“for letter in python”:的作用是对“python”字符串的字符逐个遍历,把字符赋值给变量letter,然后执行for对应的语句块。例如,第一遍执行时,letter的值是“p”,执行输出语句,然后返回再执行for语句,letter的值是“y”;依此类推,当执行完最后一个字符“n”的语句块后,for循环已经没有字符再可以获得,循环退出。

2)for循环可以对列表和元组进行遍历,示例代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fruits = ["西瓜","苹果","香蕉"]
for fruit in fruits:
    print (fruit)
        #结果
>>> 
西瓜
苹果
香蕉

语句“for fruit in fruits:”的作用是遍历列表fruits中的元素,把元素赋值给fruit,输出语句每次输出一个水果。

3)需要循环操作相同的内容时,可以用for循环和range()函数结合使用,先看看range()函数的作用,示例代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for i in range(0,5):
    print(i)
         #结果

0
1
2
3
4

for i in range(0,5,2):
    print(i)
        #结果
>>> 
0
2
4

range(0,5)输出的是一个列表,由第一个参数0开始,默认每次加1,当大于等于第二个参数时结束,所以列表中不包括第二个参数值。range(0,5,2)多了第三个参数2,作用是每次加2,最后的列表值是“[0,2,4]”。所以range()函数的作用是创建一个数字列表,取值范围是从起始数字开始到结束数字之前的内容。for循环可以对列表进行遍历,所以可以对range()函数的结果进行遍历。示例代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for i in range(0,5):
    print("哈哈哈")
        #结果
>>> 
哈哈哈
哈哈哈
哈哈哈
哈哈哈
哈哈哈

range(0,5)是由0~4组成的列表,循环共执行了5遍,输出语句执行了5遍,变量i的值就是每次遍历列表的元素值。

2、for循环综合示例代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
subjects = ('python','MySQL','Linux')
sum = 0
for i in subjects:
    print("请输入111的%s的考试成绩:"%i)
    score=int (input())
    sum+=score
a v g=sum/len(subjects)
print("111的平均成绩是%d"%a v g)
        #结果
>>> 
请输入111的python的考试成绩:
52
请输入111的MySQL的考试成绩:
68
请输入111的Linux的考试成绩:
84
111的平均成绩是68

这段代码的作用是接收2门课程的成绩,计算输出平均成绩。使用for循环遍历课程列表subjects,接收成绩后使用sum累加,最后输出平均成绩。

3、逻辑运算符

任何语言中都有逻辑表达式,它是用逻辑运算符和变量连接起来的表达式,逻辑运算符下图所示:

简单演示逻辑运算符的使用方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> print (not True)
False
>>> print(True and False)
False
>>> print(True or False)
True

not是求反运算,所以not True的结果是false;and是与运算,只要有一个值是False,结果就是False,所以(True and False)的结果是False;or是或运算,只要有一个值是True,结果就是True,所以(True or False)的结果是True。

4、for循环嵌套

同while循环一样,for循环也可以使用嵌套的方式,示例代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
students =["111","222"]
subjects = ('Python','MySQL','Linux')
for student in students:
    sum = 0
    for subject in subjects:
        print("请输入%s的%s考试成绩:"%(student,subject))
        score = int(input())
        sum+=score
    avg=sum/len(subjects)
    print("%s的平均成绩是%d"%(student,avg))
       #结果
>>>
请输入111的Python考试成绩:
56
请输入111的MySQL考试成绩:
75
请输入111的Linux考试成绩:
93
111的平均成绩是74
请输入222的Python考试成绩:
63
请输入222的MySQL考试成绩:
42
请输入222的Linux考试成绩:
69
222的平均成绩是58

第1层循环用于控制对学生进行遍历,第2层循环控制对课程遍历,与while的方式基本相同。 此处需要注意的是,for循环的变量名没有使用i、j这样没有意义的变量,而是使用了student、subject这种名称明确的变量名,使程序的可读性更强,避免了引用变量时出现引用错误的情况。

三、循环控制

当使用while和for做循环操作时,有可能需要改变循环的正常执行顺序,这时就需要用循环控制语句实现,循环控制语句有break和continue。

1、break

在循环的语句块中使用break语句,可以跳出整个 循环。下面对输出平均成绩的代码进行修改,当成绩无效时,使用break退出循环,示例代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
students =["111","222"]
subjects = ('Python','MySQL','Linux')
for student in students:
    sum = 0
    for subject in subjects:
        print("请输入%s的%s考试成绩:"%(student,subject))
        score = int(input())
        if(score<0 or score>100):
            print("输入的成绩需要大于0或小100,循环退出")
            break;
        sum+=score
    avg=sum/len(subjects)
    print("%s的平均成绩是%d"%(student,avg))
        #结果
>>>
请输入111的Python考试成绩:
52
请输入111的MySQL考试成绩:
111
输入的成绩需要大于0或小100,循环退出
111的平均成绩是17
请输入222的Python考试成绩:
0
请输入222的MySQL考试成绩:
0
请输入222的Linux考试成绩:
5
222的平均成绩是1

大部分是前面的代码,只是在第8~10行加入了成绩有效性的判断,不符合条件,退出循环。当输入111时,这是不符合条件的数值,程序执行8~10行,break退出for循环,break只和一个for循环对应,虽然有两层循环,但它只会结束离它最近的循环,这里就是第2层for循环。第二层循环结束后,接着执行后面的第12行和13行代码,第1层的循环照常遍历执行,开始输入第2个学生“王五”的成绩。

2、continue

continue的作用和break不同,它不是结束整个循环,而是跳过当前一轮循环体的剩余语句,重新测试循环状态,准备进入下一轮循环,示例代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
students =["111","222"]
subjects = ('Python','MySQL','Linux')
for student in students:
    sum = 0
    i = 0
    while (i<len(subjects)):
        print("请输入%s的%s考试成绩:"%(student,subjects[i]))
        score=int(input())
        if(score<0 or score>100):
            print("输入的成绩需要大于0或小100,重新输入")
            continue;
        sum+=score
        i=i+1
    avg=sum/len(subjects)
    print("%s的平均成绩是%d"%(student,avg))
     #结果
>>>
52
请输入111的MySQL考试成绩:
120
输入的成绩需要大于0或小100,重新输入
请输入111的MySQL考试成绩:
82
请输入111的Linux考试成绩:
100
111的平均成绩是78
请输入222的Python考试成绩:
69
请输入222的MySQL考试成绩:
150
输入的成绩需要大于0或小100,重新输入
请输入222的MySQL考试成绩:
63
请输入222的Linux考试成绩:
50
222的平均成绩是60

第1层使用的是for循环遍历名字,第2层使用while循环遍历成绩,使用continue是跳到离它最近的循环的下一轮,也就是第2层的while循环的下一轮。因为执行continue后,第13行的i=i+1没有执行,而是重新有执行第6行的while循环,所以就是对当前课程的成绩重新输入。当输入MySQL的成绩为120时,提示数据有误,然后又提示需要重新输入MySQL成绩,代码更加健壮。

此博文到此结束,感谢阅读!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/09/03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
python循环
用户9184480
2024/12/19
860
大数据之脚踏实地学13--Scala控制流
在Scala中经常会涉及到变量值的输入和输出,输入是指通过键盘将数据信息传送到Scala环境的内存中,输出则是指将内存中的数据返回到指定的地方(如电脑屏幕、本地文件或数据库等)。 两种输入方法
1480
2019/05/21
5700
【Python】从基础到进阶(四):深入了解Python中的控制流
在前几篇文章中,我们已经学习了Python编程的基础知识,包括变量、数据类型、输入输出操作以及运算符和表达式。这些知识为编写简单的程序打下了坚实的基础。然而,在编写实际应用程序时,通常需要根据不同的条件执行不同的代码块,或重复执行某些操作。这就需要使用到控制流语句。
空白诗
2024/07/20
1610
【Python】从基础到进阶(四):深入了解Python中的控制流
Python入门教程笔记(二)控制语句
计算机之所以能做很多自动化的任务,因为它可以自己做条件判断,通过条件判断,选择做什么样的逻辑(当然,逻辑是需要我们提前写好的),我们称之为条件分支判断。
Lemon黄
2020/10/10
4460
值得收藏!16段代码入门Python循环语句
导读:本文重点讲述for语句和while语句。for语句属于遍历循环,while语句属于当型循环。除了两个循环语句外,还介绍了break、continue与pass三个用于控制循环结构中的程序流向的语句。在此基础之上,还介绍了列表推导式,这是一种特殊的循环语句。
IT阅读排行榜
2019/09/17
2.8K0
值得收藏!16段代码入门Python循环语句
Python入门之循环控制
如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。
孙小北
2024/01/30
1110
Java基础---学生成绩操作系统
1. 要求使用HashMap<String,Integer>存储每次考试的成绩(key键为姓名,value为成绩)。
李志伟
2019/12/17
1.1K0
手撕Python之条件语句和循环语句
逻辑运算过程中,如果已经能够得到最后的值,则不会再进行后面的判断,这个称为逻辑短路
凯子坚持C
2024/09/23
1000
手撕Python之条件语句和循环语句
Python爬虫基础——04-流程控制语句
题目:在控制台输入一个年龄 如果您的年龄大于18了 那么打印你就可以去网吧了否则回家写作业。
冷影玺
2023/10/11
1930
测试面试题集-Python编程题(1)
使用while循环实现输出2 - 3 + 4 - 5 + 6 ... + 100 的和。
可可的测试小栈
2020/03/06
1.3K0
测试面试题集-Python编程题(1)
python分支结构
程序结构 程序三种结构 顺序 循环 分支 分支结构 分支结构基本语法 if 条件表达式 语句一 语句二 语句三 ...... 条件表达式就是计算结果必须为布尔值的表达式 表达式后面的冒号不能少 注意if后面出现的语句,如果属于if语句块,则必须同一缩进等级 条件表达式结果为True执行if后面的缩进的语句块 # if 语句联系 # 如果你们都给我钱,我就发财了 a = " " # 字符串的真假: # 只有空字符串为Fa
ruochen
2021/03/06
1.6K0
python分支结构
python部分基础
1,变量的命名应当符合什么规则? 由字母、下划线 和数字 组成不能以数字开头不能与关键字重名建议不要与内置函数或者类重名,不然会覆盖原始内置函 数的功能区分大小写如果 变量名 需要由 二个 或 多个单词 组成时每个单词都使用小写字母单词与单词之间使用 _下划线 连接 2,变量的类型有哪些? 整型 (int)浮点型(float)布尔型(bool) 真 True假 False复数型 (complex)字符串列表元组字典 3,Python中关键字有哪些?请至少写出10个 if、elif、else、while、
测试小能手
2022/11/07
8400
Python条件选择与循环
条件选择与循环是Python中非常基础也是非常重要的语句结构,本节重点介绍这两个部分:
小雨coding
2020/06/30
1.4K0
从零开始学习Python基础语法:打开编程大门的钥匙
https://cloud.tencent.com/developer/article/2465647?shareByChannel=link
忆愿
2024/11/26
1640
从零开始学习Python基础语法:打开编程大门的钥匙
PYTHON知识点学习-循环语句
在Python编程语言中,while循环是一种基本的循环结构,它允许重复执行一段代码块,直到指定的条件不再为真为止。
ImAileen
2024/01/18
1480
PYTHON知识点学习-循环语句
SQLServer 学习笔记之超详细基础SQL语句 Part 11
-----------------------接Part 10-------------------
授客
2019/09/11
6450
C语言学生成绩管理系统(设计报告和全部源码)「建议收藏」
实现如下功能: 1)能够实现学生成绩信息的插入、删除和修改; 2)能够实现各种查询(分别根据学生学号、姓名、课程名称等); 3)能够实现按照考试成绩、总评成绩进行排序; 4)能够查询某门课程的最高分、最低分并输出相应学生信息; 5)能够查询某门课程的优秀率(90 分及以上)、不及格率;
全栈程序员站长
2022/09/06
3.8K0
C语言学生成绩管理系统(设计报告和全部源码)「建议收藏」
python流程控制
Python的条件和循环语句,决定了程序的控制流程,体现结构的多样性。须重要理解,if、while、for以及与它们相搭配的 else、 elif、break、continue和pass语句
全栈程序员站长
2022/07/21
1.9K0
python流程控制
Python基础之(七)函数
在Python中,规定了一种定义函数的格式,下面的举例就是一个函数,以这个函数为例来说明定义函数的格式和调用函数的方法。
py3study
2020/01/03
4780
Python从0到100(五):Python分支结构和循环结构
Python中的分支结构和循环结构是编写程序时常用的控制结构。在Python中,分支结构通过if、elif和else关键字来实现条件判断。在使用if语句时,程序会根据条件表达式的真假执行相应的代码块。
是Dream呀
2024/03/18
3540
相关推荐
python循环
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验