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

Python条件选择与循环

作者头像
小雨coding
发布于 2020-06-30 10:13:36
发布于 2020-06-30 10:13:36
1.4K00
代码可运行
举报
文章被收录于专栏:小雨编程小雨编程
运行总次数:0
代码可运行

条件选择与循环是Python中非常基础也是非常重要的语句结构,本节重点介绍这两个部分:

本节知识大纲:

图片.png

一、条件选择语句

1. if语句
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if 判断条件:
    要执行的代码

注意语句结尾有冒号:下一行有缩进;如果满足条件,则执行代码;如果不满足,则跳过

案例:

(1)在控制台应用程序中输入小雨(语文、数学、英语成绩单科满分100分)判断:

  • 如果有一门成绩是100分
  • 如果有两门大于90分
  • 如果有三门大于80分 满足以上任何一种情况奖励一朵小红花
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chinese = int(input("请输入语文成绩:"))
math = int(input("请输入数学成绩:"))
english = int(input("请输入英语成绩:"))
get_course = ""

if (chinese==100 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((chinese>=90 and math>=90)or(chinese>=90 and english>=90)or(math>=90 and english>=90)):
    if (chinese >=90): get_course += "语文"
    if (math >=90): get_course += "数学"
    if (english >=90): get_course += "英语"
    print("你的%s得了90分以上,奖励一朵小红花" % get_course)

elif(chinese>=80 and math>=80 and english>=80):
    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负责两个分支

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if 判断条件:
    要执行的代码
else:
    要执行的代码

案例:

(1)让用户输入用户名和密码,如果用户名为admin,密码是123.com,提示登陆成功,否则提示用户名或密码错误

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
username = input("请输入用户名:")
password = input("请输入密码:")
if username.lower().strip() == "admin" and password == "123.com":
    print("登陆成功!")
else:
    print("用户名或密码错误!")

(2)输入小雨的(语文、数学、英语)成绩(单科成绩满分100分)判断考试成绩, 如果所有科目都及格了,提示:恭喜你,你所有的科目都通过考试了 否则提示:很遗憾,你没有通过(没有及格的科目名称)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chinese_result = int(input("请输入语文成绩:"))
math_result = int(input("请输入数学成绩:"))
english_result = int(input("请输入英语成绩:"))
get_course = ""
if (chinese_result>=60 and math_result>=60 and english_result>=60):
    print("恭喜你,所有的科目都通过考试了!")
else:
    if(chinese_result<60):get_course+="语文"
    if(math_result<60):get_course+="数学"
    if(english_result<60):get_course+="英语"
    print("很遗憾,你没有通过考试,需要补考的科目是%s"%get_course)
3. if-elif语句

当条件判断的分支超过两个,使用if-elif语句

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if 判断条件:
    要执行的代码
elif 判断条件:
    要执行的代码
elif 判断条件:
    要执行的代码
……
else:
    要执行的代码

问题:既然有了if……if……if……else,为什么还要有if……elif……elif……else?

答:if……if……if……else是三个分支;而if……elif……elif……else是一个整体;如果是用 if 的话,他会一直遍历完所有的if,不管你想判断的条件有没有遍历到,他都会继续执行完所有的if;而elif是当程序找到符合查询条件的语句后,后面所有的elifelse就不会再被执行;

案例:

输入一个月份,判断输入的月份是哪个季节:

  • 冬季(12月,1月,2月)
  • 春季(3月,4月,5月)
  • 夏季(6月,7月,8月)
  • 秋季(9月,10月,11月)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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. 循环语句三要素

案例:

输入一个大于1的值,然后算出从1加到这个数之和,

比如:输入6,求出1+2+3+4+5+6

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 循环变量:i=1
# 循环体:循环变量累加,存储在sum
# 循环条件:i<num
num = int(input("请输入数值:"))
i = int(1)
sum = int(0)
while i<=num:
    sum += i
    i += 1
print("从1加到%d的和为:%d"%(num,sum))
2. while语句
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
while 循环条件:
    循环体

案例:

(1)输入一个正数,求出从1开始到这个数中所有包含3的数自和3的倍数的和

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
num = int(input("请输入一个正数:"))
i = 1   #循环变量
sum = 0    #存储累加之后

while i<=num:
    #如果是3的倍数,累加
    if i % 3 == 0:
        sum += i
    #如果包含3的数字,累加
    elif "3" in str(i):
        sum += i
    else:pass
    #循环终止的渐变条件
    i += 1
print("从1到%d中所有包含3的数字的数和所有3的倍数的数的和为:%d"%(num,sum))

(2)输入班级人数,然后依次输入所有学员的成绩,计算该班级成员的平均成绩和总成绩

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"""
循环变量:i=1
循环体:反复输入
循环满足条件:i<=input student number
"""
student_number = int(input("请输入班级学生人数:"))
i = 1   #循环变量
total_result = 0    #所有的成绩之和
while i <= student_number:
    total_result += int(input("请输入第{:d}位,共{:d}为学员成绩:".format(i,student_number)))
    i+=1

print("班级总共有%d名成员,总成绩为%d,平均成绩为%.2f"%(student_number,total_result,total_result/student_number))

(3)键盘输入正数n,求出n与其反序数之和并输出,

例如:输入1024,输出应为1024+4201=5225。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 方法1
num01 = input("请输入一个正数:")
num02 = num01[::-1]
print("该数%d与其反序数%d之和为:%d"%(int(num01),int(num02),int(num01)+int(num02)))
# 方法2
num01 = input("请输入一个正数:")
i = 0   #循环变量
new_num = ""
while i < len(num01):
    new_num = num01[i]+new_num
    i+=1
print("该数%s与其反序数%s之和为%d"%(num01,new_num,int(num01)+int(new_num)))
3. while……else……语句

循环结束后,执行一次else语句,python里面独有的一种结构;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
num01 = input("请输入一个正数:")
i = 0   #循环变量
new_num = ""
while i < len(num01):
    new_num = num01[i]+new_num
    i+=1
else:print("循环结束")  #当循环的条件为false时执行的语句
print("该数%s与其反序数%s之和为%d"%(num01,new_num,int(num01)+int(new_num)))
4. break语句

break跳出整个循环,包括else都不执行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#break语句
print("====== break测试 =======")
num = 10
i = 0
while i<= num:
    i+=1
    if i==5:break
    else:
        print(i,end=" ")
else:print("\n=====break测试结束=====")

运行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
====== break测试 =======
1 2 3 4
5. continue语句

continue跳出当次循环,后面的继续执行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# continue语句
print("\n======continue测试=======")
num = 10
i = 0
while i<= num:
    i+=1
    if i==5:continue
    else:
        print(i,end=" ")
else:print("\n=====continue测试结束=====")

运行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
======continue测试=======
1 2 3 4 6 7 8 9 10 11
=====continue测试结束=====

案例

(1)2006年学校8万人,每年增长20%,请问按此增长速度,到哪年学生人数达到20万人

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
student_number = 8
years = 2006
while True:
    student_number *= 1.25
    years +=1
    if student_number>=20:
        break
print("到%d年学生人数达到20万人"%years)

(2)求1-100间和7(含7的数字,7的倍数)相关的数之和

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
i = 1
sum = 0
while True:
    if "7" in str(i):
        sum+=i
    elif i%7 == 0:
        sum+=i
    i+=1
    if i>=100:break
print("1-100间和7相关的数之和为%d"%sum)
6. pass语句

pass语句与continue语句的区别:Python中pass语句是空语句,为了保持程序的完整性;continue语句执行后,当前循环后面的语句都不执行了,直接进行下一次循环。

7. for语句

基本结构

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for <variable> in <sequence>:
    <statements>
else:
    <statements>

表示范围的四种方法:

(1)方法1:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#使用中括号表示一个List,
#中括号的所有成员都可以从头到尾取到
for i in [1,2,3,4,6,7,8]:
    print(i,end=" ")

(2)方法2:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#range(单个数字)
#表示一个范围取到第一个取不到最后一个
#循环从0开始到这个数字-1结束
for i in range(10):
    print(i,end=" ")

(3)方法3:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#range(两个数字)
#循环从第一个数字开始到第二个数字-1结束,每次递增1
for i in range(2,10):
    print(i,end=" ")

(4)方法4:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#range(三个数字)
#循环从第一个数字开始到第二个数字-1结束,每次递增第三个数字的值
for i in range(2,10,2):
    print(i,end=" ")

案例:

(1)求从1到100之和

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sum_of_number = 0   #存储和的值
for i in range(0,101):
    sum_of_number+=i
else:print("==循环结束==")
print(sum_of_number)

(2)求1-100间5和7的倍数之和

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for i in range(1,101):
    if i%5==0 or i%7==0:
        sum+=i
print(sum)

(3)水仙花数是个三位数,它的个位数字的三次方加上十位数字的三次方加上百位数字的三次方等于它本身,求一个水仙花数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 水仙花数
num_flower = ""
for i in range(100,1000):
    num_ge = i % 10
    num_shi = (i // 10) % 10
    num_bai = i // 100
    if num_ge**3 + num_shi**3 + num_bai**3 == i:
        num_flower+=str(i)+" "
print("水仙花数有:%s"%num_flower)
8. 循环嵌套

案例:

(1)打印乘法口诀表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 打印乘法口诀表
for i in range(1,10):
    for j in range(1,i+1):
        print("%d*%d=%d\t"%(j,i,i*j),end=" ")
    print()

图片.png

(2)100元买2元的铅笔✏、5元的文具盒、10元的文件夹、15元的彩笔,刚好花完,每样物品至少有一种,一共有多少种组合?打印每一种组合。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
count = 0   # 有多少种情况
for i in range(1,51):   # 铅笔最多买50for j in range(1,21):   # 文具盒最多买20for k in range(1,11):   # 文件夹最多买10for l in range(1,7):    # 彩笔最多买6if i * 2 + j * 5 + k * 10 + l * 15 == 100:
                    count += 1
                    print("第%d种情况:可以买%d个铅笔,%d个文具盒,%d个文件夹,%d个彩笔"%(count,i,j,k,l))

(3)打印一个由*组成的等腰三角形,三角形的大小由输入的数字决定;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 打印等腰三角形n
n = int(input("请输入要打印的行数:"))
# 行数
for i in range(1,n+1):
    # 打印空格数
    for l in range(1,n+1-i):
        print(" ",end="")
    # 打印*
    for j in range(1,2*i):
        print("*",end="")
    print()

关于Python条件选择与循环的学习笔记就分享到这里,下一节我们继续介绍列表与元组的知识!

·END·

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小雨编程 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python里的这些「运算符」,这下全搞清楚了
算术运算符的种类.png 例题:输入一个三位数,返回每个位置的数字 方法一(通过算术运算):
小雨coding
2020/06/23
4540
python 【实例100】
输入开启数字和结束数字,打印区间内的所有素数:比如:输入11和25 ,打印11~25的所有素数,包括25 素数:如果数字只能被1和自己整除就是素数,否则不是素数:比如3是素数、4不是素数
MIKE笔记
2023/03/23
8770
python 【实例100】
100道Python练习题,建议收藏练习
链接丨https://github.com/RichardFu123/Python100Cases
张俊红
2021/01/18
1.6K0
Python实训题目:学生成绩管理与分析系统
原文链接:https://yetingyun.blog.csdn.net/article/details/113092518
叶庭云
2021/12/01
2.1K0
Python实训题目:学生成绩管理与分析系统
43道Python经典案例题(有答案)
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
Python学习者
2022/11/15
1.4K0
只需用Python基础知识就能做的【学生信息管理系统】,新手小白的福利,毕设、期末作业必备技能
学生信息管理系统,是可以做成管理学生成绩、管理学生参与活动、管理学生学籍信息、管理学生课程、学生综合评价等的一些记录学生学习生活各方面信息的管理系统。
松鼠爱吃饼干
2021/11/09
4450
只需用Python基础知识就能做的【学生信息管理系统】,新手小白的福利,毕设、期末作业必备技能
Python集合与字典
set 集合在存储的时候,先把元素转为哈希值,哈希值是顺序存储的,哈希算法是用来判断两个对象是否是同一个;
小雨coding
2020/06/30
1K0
Python函数基础知识梳理
(1)分而治之:通过函数将程序分一个个小模块,如果代码出现了问题调试起来要容易得多,否则写在一个代码块里会很麻烦
小雨coding
2020/07/06
5170
新手小白的福利,零基础也能上手的项目——学生信息管理系统
前言 今天利用Python基础的知识来做一个学生信息管理系统,界面大概是这样的 ************************************************** 欢迎使用【学生信息管理系统】V1.0 请选择你想要进行的操作 1. 新建学生信息 2. 显示全部信息 3. 查询学生信息 4. 删除学生信息 5. 修改学生信息 0. 退出系统 ************************************************** 知识点 基本的数据类型与结构 基本的逻辑控制语句
松鼠爱吃饼干
2020/09/15
3500
新手小白的福利,零基础也能上手的项目——学生信息管理系统
Python算法实践Week3-循环程序设计
0x00 问题引入 问题:输入30个数,输出最大的数 分析 第一个数可能是最大的数,记住它; 对于之后的每一个数,与记住的数字进行比较,如果比记住的数字大,则记住此数; 所有的数字看过之后,输出最大的数; 循环 程序中重复做某事的现象称为循环 例如求1~100的和,求一个班某科成绩的平均分 循环结构(循环条件和循环体) 20200206045625.png 0x01 while循环 问题:求1+2+3+4+……+100的值 流程图 20200206045743.png Python语言实现 = 0 =
Hsinyan
2022/06/19
6370
Python算法实践Week3-循环程序设计
循环输入学生和成绩,最后按照总成绩进行排序
一种是结构体(以前在C#里面是这么叫的),其实就是class,定义一个学生类,然后就是学生姓名,成绩,总成绩
SingYi
2022/07/14
3830
循环输入学生和成绩,最后按照总成绩进行排序
【Python】5“条件判断和循环“
这样会报错,因为键入的信息默认是str类型,所以在案例中是将键入的值与int类型的数值进行比较,这样明显不符合规定,所以Python提供了方法将str转为int类型:
肓己
2021/08/12
5240
100道Python练习题,看看你能会几题!?
题目: 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析: 遍历全部可能,把有重复的剃掉。
可以叫我才哥
2021/12/10
1.4K0
python3–循环语句
if 语句 缩进格式 冒号 If 条件判断 if 判断条件: 执行语句 elif 判断条件: 执行语句 else: 执行语句 简单的一个判断学生成绩的例子: #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 4/3/2018 8:27 PM # @Author : zhdya # @File : demon1.py number = input("pls input your score: ") if int(number) >
老七Linux
2018/05/31
6100
python条件判断与循环
python的缩进规则,如果if语句判断是True,就把所进的代码执行,也可以给if添加一个else语句,意思是,如果if判断是False,不要执行if的内容,去把else执行了
py3study
2020/01/10
1.1K0
python条件判断与循环
python的循环
编写程序时经常有代码需要重复运行,python提供了while和for进行循环操作。
py3study
2020/01/08
1.5K0
python——循环(for循环、while循环)及练习
“”" for 变量 in range(10): 循环需要执行的代码 else: 循环结束时,需要执行的代码 “”"
用户7886150
2021/01/22
6K0
python 基础知识第5讲:条件控制语句
通过上面代码的运行,我们可以发现python的程序代码是自上而下运行的 当我们想将输出顺序改变的话,就需要用到条件控制语句
小海怪的互联网
2019/08/23
6430
python基础语法——条件语句和循环语句
本文基于pycharm编译器,也可以使用Anaconda 里的编译器,将讲解一些python的一些基础语法知识,是对上篇文章的补充,可以和我写的python数据分析——Python语言基础(数据结构基础)结合起来看,有些知识点可能在这篇文章写的不是很全面。
鲜于言悠
2024/03/20
2530
python基础语法——条件语句和循环语句
Python入门基础知识
最近有两个高中同学断断续续问我一些python题目。本文为初学者介绍一些Python基础知识,包括输入,输出,有序,无序序列的相关操作,函数的使用等,并出示相关的例题方便更好的理解。
算法与编程之美
2022/05/23
4610
推荐阅读
相关推荐
Python里的这些「运算符」,这下全搞清楚了
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档