尧图精选

Python基础学习笔记(三)条件选择与循环

🕒 发布时间:2026/10/2 13:55:32 📁 来源:尧图网络
在上一节我们已经讲过中缀运算符相关的知识点, 然后在这一个部分我们会接着来讲解关于条件选择语句以及循环语句, 这些属于非常关键的语句结构范畴, 正因为它们的存在, 所以说才能够让我们的程序代码具有更多的灵活性, 在这一节当中主要的重点是要介绍这两个方面内容:本节知识大纲知识大纲一、条件选择语句, 1. if语句。if 判断条件要执行的代码要注意, 语句的结尾处有一个冒号存在, 后面的一行还存在缩进的情况。如果满足相关的条件, 那么就会执行代码, 如果不满足相关的条件, 将会直接跳过。案例1在控制台应用程序里面, 先输入一下小雨的这个情况, 也就是包含语文、数学以及英语的成绩单, 然后要知道的是每门功课的满分都是100分, 接下来再进行一个判断操作。如果是在某门课程的成绩能够达到一百分, 并且存在另外两门学科的成绩大于九十分或者三门学科的成绩都大于八十分这样的情况的话, 那么只要上述这些情况里面有任意一种状况得到了满足, 就会对你奖励一朵小红花。chinese int(input(请输入语文成绩))math int(input(请输入数学成绩))english int(input(请输入英语成绩))get_course if (chinese100 or math 100 or english 100):if(chinese 100):get_course语文if(math 100):get_course数学if(english 100):get_course英语print(你的%s得了100分奖励一朵小红花 % get_course)elif((chinese90 and math90)or(chinese90 and english90)or(math90 and english90)):if (chinese 90): get_course 语文if (math 90): get_course 数学if (english 90): get_course 英语print(你的%s得了90分以上奖励一朵小红花 % get_course)elif(chinese80 and math80 and english80):if (chinese 80): get_course 语文if (math 80): get_course 数学if (english 80): get_course 英语print(你的%s得了80分以上奖励一朵小红花 % get_course)else:print(没有获得小红花下次努力哦)2. if-else语句这个 if-else 结构, 它主要是负责去处理那两个对应的分支情况。if 判断条件要执行的代码else:要执行的代码案例1要求用户输入用户名称和密码这两个内容, 当发现用户名称是admin这个标识, 并且密码也是对应正确的值的时候, 就会提示登陆成功这一信息结果, 相反情况如果匹配不成功的话, 那么就会提示用户名或者密码出现错误的提示消息。username input(请输入用户名:)password input(请输入密码:)if username.lower().strip() admin and password print(登陆成功!)else:print(用户名或密码错误!)2用户需要输入小雨的语文成绩以及数学成绩还有英语成绩, 这里要说明单科成绩的满分都是100分, 然后程序会去判断考试成绩, 如果出现的情况是所有的科目都及格了, 那么就会输出提示内容恭喜你你所有的科目都通过考试了, 否则如果出现了不及格的状况就会输出提示内容很遗憾你没有通过接着再加上具体的没有及格的科目名称。chinese_result int(input(请输入语文成绩))math_result int(input(请输入数学成绩))english_result int(input(请输入英语成绩))get_course if (chinese_result60 and math_result60 and english_result60):print(恭喜你所有的科目都通过考试了)else:if(chinese_result60):get_course语文if(math_result60):get_course数学if(english_result60):get_course英语print(很遗憾你没有通过考试需要补考的科目是%s%get_course)3. if-elif语句在处理条件判断的过程中, 如果涉及的分支数量超过了两个之多, 那么就应该去使用这种被称之为if-elif的语句来进行操作。if 判断条件要执行的代码elif 判断条件要执行的代码elif 判断条件要执行的代码……else:要执行的代码问题既然有了if……if……if……else为什么还要有if……elif……elif……else?答案是, 使用多次if语句的情况, 也就是连续写三个以及以上的if判断结构, 这表示程序中存在三种不同的执行分支而使用if跟随elif再跟随elif最后以else结尾的代码结构, 这是一个完整且不可分割的逻辑整体。案例先往里面输入一个月份, 然后去判断一下这个被你输入的月份它到底属于哪个季节。month int(input(请输入月份))if(month 12 or month 1 or month 2):print(现在是冬季)elif(month 3 or month 4 or month 5):print(现在是春季)elif(month 6 or month 7 or month 8):print(现在是夏季)elif(month 9 or month 10 or month 11):print(现在是冬季)二、关于循环一的讲解, 我们需要关注循环语句中包含的三个基本要素。循环语句的三要素案例1先指定一个比一大的数值当作输入目标, 接着启动运算程序, 计算序列从起始点一开始一直累加到该限定数字为止所产生的合计结果, 示例情形下若设定数值为六, 则所求取的和式具体表现为前五个自然数依次递增与当前目标值相加构成的总和式一加上二加上三加上四加上五再加上六。# 循环变量i1# 循环体循环变量累加存储在sum# 循环条件:inum int(input(请输入数值))i int(1)sum int(0)while inum:sum ii 1print(从1加到%d的和为%d%(num,sum))2. while语句while 循环条件循环体案例1请输入一个正数, 然后计算机需要计算出从数字1开始一直累加到你所输入的那个数字之间所有符合条件的项目之和。这里的条件包括两类: 第一类是那些在书写形式中明确出现了数字3的那些整数, 第二类是可以被3整除的正整数。num int(input(请输入一个正数))i 1 #循环变量sum 0 #存储累加之后while inum:#如果是3的倍数累加if i % 3 0:sum i#如果包含3的数字累加elif 3 in str(i):sum ielse:pass#循环终止的渐变条件i 1print(从1到%d中所有包含3的数字的数和所有3的倍数的数的和为%d%(num,sum))2需要先去把那个班里的同学数量给填进去, 接着再一个接一个地把每一个学习者的分数都输入进去, 做完这些之后, 再去算出咱们这个班级里面的成员们的平均分数, 还有总分的数值。循环变量i1循环体反复输入循环满足条件iinput student numberstudent_number int(input(请输入班级学生人数:))i 1 #循环变量total_result 0 #所有的成绩之和while i student_number:total_result int(input(请输入第{:d}位,共{:d}为学员成绩:.format(i,student_number)))i1print(班级总共有%d名成员总成绩为%d,平均成绩为%.2f%(student_number,total_result,total_result/student_number))3通过键盘进行输入操作的时候, 你要输入一个正整数n, 之后需要去计算出这个数字n以及这个数字的反序数两者相加之后的总和结果, 并且将这个结果输出显示出来, 比如说具体的例子是这样的, 当你在键盘上输入1024这个数值的时候, 最终输出的效果应该显示为1024加上4201等于5225。# 方法1num01 input(请输入一个正数:)num02 num01[::-1]print(该数%d与其反序数%d之和为:%d%(int(num01),int(num02),int(num01)int(num02)))# 方法2num01 input(请输入一个正数:)i 0 #循环变量new_num while i len(num01):new_num num01[i]new_numi1print(该数%s与其反序数%s之和为%d%(num01,new_num,int(num01)int(new_num)))3. while……else……语句在循环的整个过程彻底结束之后, 程序会去执行一次else这个分支, 这是其中的一种专门的结构设计, 请注意, 这样的用法在Java以及C语言里面是完全找不到的哦。num01 input(请输入一个正数:)i 0 #循环变量new_num while i len(num01):new_num num01[i]new_numi1else:print(循环结束) #当循环的条件为false时执行的语句print(该数%s与其反序数%s之和为%d%(num01,new_num,int(num01)int(new_num)))4. break语句。当使用 break 指令来终止循环的时候, 整个循环过程包括其后面紧跟着的 else 部分在内, 全部都不会再被执行了。#break语句print( break测试 )num 10i 0while i num:i1if i5:breakelse:print(i,end )else:print(\nbreak测试结束)运行结果 break测试 1 2 3 45. 这个句子是语句。当次循环被跳出之后的部分, 依旧保持继续执行的状态。# continue语句print(\ncontinue测试)num 10i 0while i num:i1if i5:continueelse:print(i,end )else:print(\ncontinue测试结束)运行结果continue测试1 2 3 4 6 7 8 9 10 11continue测试结束案例1在2006年的那个时候, 学校里面有8万人的学生人数, 并且每年增长速度是达到百分之二十的这样一种情况发生之下呢, 请问如果按照这个增长速度的话, 具体会到哪一年的时候学生的总人数可以达到20万人这样一个目标数值。student_number 8years 2006while True:student_number * 1.25years 1if student_number20:breakprint(到%d年学生人数达到20万人%years)2我们的任务是去求, 在一零一这范围里的数之中, 把所有跟七这个数字, 还有含七个数字以及七的倍数这些类别有关的数, 把它们加在一起得到的总和是多少。i 1sum 0while True:if 7 in str(i):sumielif i%7 0:sumii1if i100:breakprint(1-100间和7相关的数之和为%d%sum)6. pass语句pass语句与语句的区别其中, pass 语句被认定为一种空操作语句, 其目的是为了使得程序的结构保持完整。在这句话被执行完成之后, 处在当前循环后面部分的代码就都不会再进行运转了, 系统会直接跳过去, 开始让下一轮的事情跑起来。8. for语句基本结构for in :else:关于表示范围的具体方法, 一共有四种。1方法1:#使用中括号表示一个List#中括号的所有成员都可以从头到尾取到for i in [1,2,3,4,6,7,8]:print(i,end )2接下来我们看看另外一种具体的做法。#range(单个数字)#表示一个范围取到第一个取不到最后一个#循环从0开始到这个数字-1结束for i in range(10):print(i,end )3改写到后面就是, 方法3。#range(两个数字)#循环从第一个数字开始到第二个数字-1结束,每次递增1for i in range(2,10):print(i,end )4方法4:#range(三个数字#循环从第一个数字开始到第二个数字-1结束每次递增第三个数字的值for i in range(2,10,2):print(i,end )案例1求从1开始一直到100的所有数字相加, 总共的总和应该是多少。sum_of_number 0 #存储和的值for i in range(0,101):sum_of_numberielse:print(循环结束)print(sum_of_number)2求1-100间5和7的倍数之和for i in range(1,101):if i%50 or i%70:sumiprint(sum)3水仙花数指的是一个三位数, 这个数百位上的数字的三次方、十位上的数字的三次方以及个位上的数字的三次方加在一起, 其总和等于它自身的数值, 现在需要求出这样的一位数是多少:# 水仙花数num_flower for i in range(100,1000):num_ge i % 10num_shi (i // 10) % 10num_bai i // 100if num_ge**3 num_shi**3 num_bai**3 i:num_flowerstr(i) print(水仙花数有:%s%num_flower)9. 循环嵌套案例1现在就开始对乘法口诀表进行打印操作。# 打印乘法口诀表for i in range(1,10):for j in range(1,i1):print(%d*%d%d\t%(j,i,i*j),end )print()打印乘法口诀表2有一百元钱, 买两块钱的铅笔、五块钱的文具盒、十块钱的文件夹、十五块钱的彩笔, 刚好把这些钱都花完, 每样东西至少买一件, 到底一共有多少种搭配的办法? 把每一种搭配的结果都打印出来。count 0 # 有多少种情况for i in range(1,51): # 铅笔最多买50个for j in range(1,21): # 文具盒最多买20个for k in range(1,11): # 文件夹最多买10个for l in range(1,7): # 彩笔最多买6个if i * 2 j * 5 k * 10 l * 15 100:count 1print(第%d种情况可以买%d个铅笔%d个文具盒%d个文件夹%d个彩笔%(count,i,j,k,l))3我们要打印一个由星号组成的等腰三角形, 其中三角形的大小是由用户输入的数字来决定的。# 打印等腰三角形nn int(input(请输入要打印的行数:))# 行数for i in range(1,n1):# 打印空格数for l in range(1,n1-i):print( ,end)# 打印*for j in range(1,2*i):print(*,end)print()好了, 关于条件选择与循环语句的内容就分享到这里了, 各位小伙伴可以试着去跟着每一个案例自己动手把代码敲写一遍, 只有这样才能够把相关知识点牢牢地记住, 我小雨也是处于初学的水平状态, 自身能力有限, 还希望大家提出批评意见并加以指正, 非常感谢大家一直以来的支持行为, 倘若你认为觉得内容还算不错的样子, 那么欢迎进行点赞关注以及支持操作一下, 最后表示感谢。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →