Python入门【 控制语句和逻辑思维、选择结构(条件判断结构)双分支选择结构、多分支选择结构、循环结构、while循环 】(七)

news2024/11/26 16:44:59

👏作者简介:大家好,我是爱敲代码的小王,CSDN博客博主,Python小白
📕系列专栏:python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发
📧如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
🔥如果感觉博主的文章还不错的话,请👍三连支持👍一下博主哦
🍂博主正在努力完成2023计划中:以梦为马,扬帆起航,2023追梦人

🔥🔥🔥 python入门到实战专栏:从入门到实战
🔥🔥🔥 Python爬虫开发专栏:从入门到实战
🔥🔥🔥 Python办公自动化专栏:从入门到实战
🔥🔥🔥 Python数据分析专栏:从入门到实战
🔥🔥🔥 Python前后端开发专栏:从入门到实战   

目录

 控制语句和逻辑思维

选择结构(条件判断结构)

双分支选择结构

多分支选择结构

循环结构

while循环 


 控制语句和逻辑思维

控制语句:把语句组合成能完成一定功能的小逻辑模块。

分为三类:顺序、选择和循环。 学会控制语句,是真正跨入编程界的“门槛”,是成为“程序猿”的 “门票”。 

1、“顺序结构”代表 “先执行a,再执行b” 的逻辑。比如,先找个女朋友,再给女朋友打电话;先订婚,再结婚; 

2、“顺序结构”代表 “先执行a,再执行b” 的逻辑。比如,先找个女朋友,再给女朋友打电话;先订婚,再结婚;

3、“循环结构”代表 “如果…,则重复执行…” 的逻辑。比如,如果没打通女朋友电话,则再继续打一 次; 如果没找到喜欢的人,则再继续找

实时效果反馈

1. 条件判断语句,代表现实中的什么逻辑? 

A “先执行a,再执行b”

B “如果…,则…”

C “如果…,则重复执行…”

D 必须执行

2. 循环语句,代表现实中的什么逻辑?

A “先执行a,再执行b”

B “如果…,则…”

C “如果…,则重复执行…”

D 必须执行

选择结构(条件判断结构)

选择结构通过判断条件是否成立,来决定执行哪个分支。选择结构有多种形式,分为:单分支、双分支、多分支。 

 单分支选择结构

if语句单分支结构的语法形式如下:

if 条件表达式:

    语句/语句块 

1 条件表达式:可以是逻辑表达式、关系表达式、算术表达式等等。

2 语句/语句块:可以是一条语句,也可以是多条语句。多条语句,缩进必须对齐一致 

【操作】输入一个数字,小于10,则打印这个数字(if_test01.py)

num = input("输入一个数字:")
if int(num)<10:
    print("小于10的数:"+num)

 条件表达式详解

在选择和循环结构中,条件表达式的值为 False 的情况如下: False、0、0.0、空值None、空序列对象(空列表、空元祖、 空集合、空字典、空字符串)、空range对象、空迭代对象。 其他情况,均为 True 。这么看来,Python所有的合法表达式都可以看做条件表达式,甚至包括函数调用的表达式。

 【操作】测试各种条件表达式

if 3:    #整数作为条件表达式
    print("ok")
a = []   #列表作为条件表达式,由于为空列表,是False
if a:
    print("空列表,False")
s = "False"    #非空字符串,是True
if s:
    print("非空字符串,是True")
c = 9
if 3<c<20:
    print("3<c<20")
if 3<c  and  c<20:
    print("3<c and c<20")
if True:        #布尔值
    print("True")

⚠️条件表达式中,不能有赋值操作符 = 在Python中,条件表达式不能出现赋值操作符 = ,避免了其他 语言中经常误将关系运算符 == 写作赋值运算符 = 带来的困扰。 如下代码将会报语法错误:

if 3 < c and (c=20):   #直接报语法错误!
 print("赋值符不能出现在条件表达式中")

 实时效果反馈

1. 如下代码,打印输出的是:

s = "False"    
if s:
    print("Hello")

A Hello

B False

C 无打印输出

D "Hello"

双分支选择结构

双分支结构的语法格式如下:

if 条件表达式:
 语句1/语句块1
else:
 语句2/语句块2

 【操作】输入一个数字,小于10,则打印该数字;大于10,则打印 “数字太大”

num = input("输入一个数字:")
if int(num)<10:
    print(num)
else:
    print("数字太大")

三元条件运算符

Python的三元运算符,用来在某些简单双分支赋值情况。三元条件运算符语法格式如下: 

条件为真时的值 if (条件表达式) else 条件为假时的 值 

上一个案例代码,可以用三元条件运算符实现:

num = input("请输入一个数字")
print( num if int(num)<10 else "数字太大")

 可以看到,这种写法更加简洁,易读。

实时效果反馈

1. 如下代码中if-else结果,可以用哪个代码替换:

a = input("输入一个数字:")
a = int(a)
if a<10:
    a = 0
else:
    a = "数字太大"

A a = 0 if a<10 : "数字太大"

B a = if a<10 else "数字太大"

C a = 0 if a<10 else "数字太大"

D a = a if a<10 else "数字太大"

多分支选择结构

多分支选择结构的语法格式如下:

if 条件表达式1 :
 语句1/语句块1
elif 条件表达式2:
 语句2/语句块2
...
elif 条件表达式n :
 语句n/语句块n
[else:  语句n+1/语句块n+1 ]

 注:计算机行业,描述语法格式时,使用中括号 [ ] 通常表示可选,非必选。

⚠️多分支结构,几个分支之间是有逻辑关系的,不能随意颠倒顺序 

【操作】输入一个学生的成绩,将其转化成简单描述:不及格(小于 60)、及格(60-79)、良好(80-89)、优秀(90-100)

方法1(使用完整的条件表达) 

score = int(input("请输入分数"))
grade =  ''
if(score<60):
    grade = "不及格"
if(60<=score<80):
    grade = "及格"
if(80<=score<90):
    grade = "良好"
if(90<=score<=100):
    grade = "优秀"
print("分数是{0},等级是 {1}".format(score,grade))

每个分支都使用了独立的、完整的判断,顺序可以随意挪动, 而不影响程序运行。

方法2(利用多分支结构) 

score = int(input("请输入分数"))
grade =  ''
if score<60 :
    grade = "不及格"
elif  score<80 :
    grade = "及格"
elif  score<90 :
    grade = "良好"
elif  score<=100:
    grade = "优秀"
print("分数是{0},等级是 {1}".format(score,grade))

⚠️多分支结构,几个分支之间是有逻辑关系的,不能随意颠倒顺序

【操作】已知点的坐标(x,y),判断其所在的象限

x = int(input("请输入x坐标"))
y = int(input("请输入y坐标"))
if(x==0 and y==0):print("原点")
elif(x==0):print("y轴")
elif(y==0):print("x轴")
elif(x>0 and y>0):print("第一象限")
elif(x<0 and y>0):print("第二象限")
elif(x<0 and y<0):print("第三象限")
else:
    print("第四象限")

 实时效果反馈

1. 如下代码,若输入的分数是75,打印输出的是:

score = int(input("请输入分数"))
grade =  ''
if score<60 :
    grade = "不及格"
elif  score<80 :
    grade = "及格"
elif  score<90 :
    grade = "良好"
elif  score<=100:
    grade = "优秀"
print("分数是{0},等级是 {1}".format(score,grade))

A 不及格

B 及格

C 分数是75,等级是及格

D 分数是75,等级是良好

选择结构嵌套

选择结构可以嵌套,使用时一定要注意控制好不同级别代码块的缩 进量,因为缩进量决定了代码的从属关系。 【操作】输入一个分数。分数在0-100之间。90以上是A,80以上是 B,70以上是C,60以上是D。60以下是E

score = int(input("请输入一个在0-100之间的数字:"))
grade = ""
if score>100 or score<0:
    score = int(input("输入错误!请重新输入一个在0-100之间的数字:"))
else:
    if score>=90:
        grade = "A"
    elif score>=80:
        grade = 'B'
    elif score>=70:
        grade = 'C'
    elif score>=60:
        grade = 'D'
    else:
        grade = 'E'
print("分数为{0},等级为 {1}".format(score,grade))

 或者也可以用下面代码更少的方法。不过,需要大家思考为什么这么写?

score = int(input("请输入一个在0-100之间的数字:"))
degree = "ABCDE"
num = 0
if score>100 or score<0:
    score = int(input("输入错误!请重新输入一个在0-100之间的数字:"))
else:
    num = score//10
    if num<6:num=5
print("分数是{0},等级是 {1}".format(score,degree[9-num]))

循环结构

 

循环结构用来重复执行一条或多条语句。表达这样的逻辑:如果符合条件,则反复执行循环体里的语句。在每次执行完后都会判断一 次条件是否为True,如果为True则重复执行循环体里的语句。图示 如下: 

 

循环体里面的语句至少应该包含改变条件表达式的语句,以使循环趋于结束;否则,就会变成一个死循环。 

while循环 

while循环的语法格式如下:

while 条件表达式:
 循环体语句

我们通过一些简单的练习,来慢慢熟悉while循环。

【操作】利用while循环打印从0-10的数字

num = 0
while num<=10:
    print(num)
    num += 1

【操作】利用while循环,计算1-100之间数字的累加和;计算1- 100之间偶数的累加和,计算1-100之间奇数的累加和

num = 0
sum_all = 0         #1-100所有数的累加和
while num<=100:
    sum_all += num
    num += 1         #迭代,改变条件表达式,使循环趋于结束
print("1-100所有数的累加和",sum_all)

实时效果反馈

1. 如下代码,计算1+2+...+100,空白处需要填入的代码是:

num = 0
sum_all = 0         #1-100所有数的累加和
while num<=100:
     ___________
    num += 1         #迭代,改变条件表达式,使循环趋于结束
print("1-100所有数的累加和",sum_all)

A sum_all = num"

B num+= sum_all

C sum_all = num+1

D sum_all += num

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/784791.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode·每日一题·2208. 将数组和减半的最少操作次数·优先队列

作者&#xff1a;小迅 链接&#xff1a;https://leetcode.cn/problems/minimum-operations-to-halve-array-sum/solutions/2357852/you-xian-dui-lie-zhu-shi-chao-ji-xiang-x-805n/ 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 著作权归作者所有。商业转载请联系作…

如何打开工业相机(海康)与halcon方式打开

使用海康相机&#xff0c;下载对应的客户端软件 地址&#xff1a;https://www.hikrobotics.com/cn/machinevision/service/download 界面如下&#xff1a; 使用 halcon 读取相机&#xff0c;需要将对应的动态链接库dll文件放入halcon的安装目录中&#xff0c;如下&#xff0c;…

Linux中的chmod命令使用方法总结

chmod命令用于更改文件或目录的权限chmod命令的基本语法如下&#xff1a;范例研究&#xff1a;rwx权限对于文件和目录的作用 chmod命令用于更改文件或目录的权限 它允许用户控制谁可以读取、写入和执行文件。 权限由三个组成部分组成&#xff0c;分别是所有者权限、所属组权限…

企业邮箱选购:选择最适合您的方案

作为一名公司员工&#xff0c;你需要一个专业且令人难忘的公司电子邮件地址。毕竟无论何时你和你的联系人交流&#xff0c;你都代表着你公司的品牌。但是你应该选择什么样的公司电子邮件地址呢? 首先&#xff0c;考虑使用你公司的域名作为你的公司电子邮件地址。这是最专业的方…

【C++入门到精通】C++入门—缺省参数、函数重载

目录 前言 一、缺省参数 1.缺省参数的概念 2.缺省参数分类 ⭕全缺省参数 ⭕半缺省参数 二、函数重载 1.函数重载的概念 2.函数重载类型 &#x1f534;参数类型不同 &#x1f534;参数个数不同 &#x1f534;参数类型顺序不同 C支持函数重载的原理--名字修饰(name Mangli…

基于Android Studio编辑器上开发的一款看点新闻App

完整资料进入【数字空间】查看——baidu搜索"writebug" 1 系统需求分析 1.1 引言 1.1.1 开发目的 看点新闻App的开发是为了实时查看最新消息以了解社会动态&#xff0c;增长知识&#xff0c;增广见闻&#xff0c;顺便娱乐一下内心世界来放松自己。 1.1.2 开发背景 …

【雕爷学编程】Arduino动手做(85)---LCD1602液晶屏模块4

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

FPGA学习——实现任意倍分频器(奇数/偶数倍分频器均可实现)

文章目录 一、分频器二、Verilog实现任意倍分频器2.1、Verilog源码2.2、仿真文件 三、仿真波形图 一、分频器 在FPGA&#xff08;可编程逻辑门阵列&#xff09;中&#xff0c;分频器是一种用于将时钟信号的频率降低的电路或模块。它可以根据输入的时钟信号生成一个较低频率的输…

Vivado 差分输出引脚配置

diff_out输出如下所示 在引脚配置时&#xff0c;如下图所示&#xff0c;只能设置一个Pos Diff的引脚&#xff0c;此时设置完Pos Diff的引脚后&#xff0c;Neg Diff默认被绑定在相邻的引脚 我们可以打开上图中Package Pins页面&#xff0c;发现这一对引脚设置完毕

基于Java+Swing+mysql人力资源管理系统_员工信息管理系统

基于JavaSwingmysql人力资源管理系统/员工信息管理系统 一、系统介绍二、效果展示1、登陆2、查看个人信息--员工3、更新个人信息--员工4、管理员主页&#xff08;增删改查&#xff09; 三、其他系统实现四、获取源码 一、系统介绍 系统主要分为两个角色&#xff1a; 员工&…

【LeetCode-中等】剑指 Offer 67. 把字符串转换成整数(详解)

题目 写一个函数 StrToInt&#xff0c;实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。 首先&#xff0c;该函数会根据需要丢弃无用的开头空格字符&#xff0c;直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时&#…

【ArcGIS Pro微课1000例】0029:绘制全球海洋波纹荡漾效果图

本文讲解ArcGIS Pro3.0中,基于全球航洋面状矢量数据,绘制震撼全球海洋波纹荡漾效果图。 文章目录 一、效果预览二、效果制作三、参数详解一、效果预览 绘制好的海水波纹荡漾效果图如下: 下面我们来学习绘制过程。 二、效果制作 波纹荡漾效果需要在全局或者局部场景中制作…

7月最新大模型排名!3700道保密试题、20个大模型参与评测|SuperCLUE

7月最新大模型排名&#xff01;3700道保密试题、20个大模型参与评测&#xff5c;SuperCLUE CLUE中文语言理解测评基准 中文通用大模型综合性评测基准SuperCLUE 2023年7月榜单 7月25日&#xff0c;SuperCLUE发布大模型7月榜单。 SuperCLUE: A Benchmark for Foundation Mo…

【TypeScript】类型推断与类型别名的使用方式。

什么是类型推断&#xff1f; 在 TypeScript 中&#xff0c; 如果声明变量时&#xff0c;没有明确的指定类型&#xff0c;那么 TypeScript 会依照类型推论&#xff08;Type Inference&#xff09;的规则推断出一个类型。 以下代码虽然没有明确指定类型&#xff0c;但是会在编译的…

web安全漏洞总结

目录 &#xff08;一&#xff09;网络安全常见漏洞 1、sql注入漏洞 漏洞解释与形成原因 漏洞分类&#xff1a; 漏洞存在常见地方&#xff1a; 漏洞利用: 漏洞防御: 攻击流量特征 绕开waf拦截的常用方法 2、文件上传漏洞 漏洞解释与形成原因&#xff1a; 漏洞利用 漏…

20230720在ubuntu22.04系统下载+解密+合并ts切片的步骤

20230720在ubuntu22.04系统下载解密合并ts切片的步骤 2023/7/20 23:06 1、视频源头&#xff0c;打开时效肯定有时间限制的&#xff01; 【并且不同时间打开&#xff0c;下载链接/参数会有区别的&#xff01;以前的链接就会失效/出错了&#xff01;】 https://app1ce7glfm1187.…

深“扒”云原生高性能分布式文件系统JuiceFS

JuiceFS 是一款面向云原生设计的高性能分布式文件系统&#xff0c;在 Apache 2.0 开源协议下发布。提供完备的 POSIX 兼容性&#xff0c;可将几乎所有对象存储接入本地作为海量本地磁盘使用&#xff0c;亦可同时在跨平台、跨地区的不同主机上挂载读写。 JuiceFS 简介 JuiceFS…

【100天精通python】Day13:面向对象编程_多态和封装,实战模拟电影院的自动售票机选票页面

目录 1 多态&#xff08;Polymorphism&#xff09; 2 封装&#xff08;Encapsulation&#xff09; 3 总结 4 实战&#xff1a;模拟电影院的自动售票机选票页面 在 Python 中&#xff0c;多态和封装是面向对象编程的两个重要概念。 1 多态&#xff08;Polymorphism&#xf…

GoogleLeNet Inception V1

文章目录 Inception V1Inception Modulenative versionInception module with dimensionality reduction1 * 1网络的降维说明 多个Softmax的输出整体结构 GoogleLeNet主要是把深度扩充到了22层&#xff0c;能增加网络深度而不用担心训练精度和梯度消失问题。 总共是提出了4个版…

【stm32L152】段码屏驱动注解、MX_LCD_Init()初始化失败的解决方法

文章目录 断码屏驱动补充MX_LCD_Init()驱动初始化失败 断码屏驱动补充 已经有大神写过较详细的教程&#xff1a;https://blog.csdn.net/CSDN_Gao_16/article/details/115463499&#xff0c;但这篇博文仍然比较抽象&#xff0c;我看了好多遍才看明白-_-||&#xff0c;为了节省和…