python学习——【第三弹】

news2024/11/25 21:27:49

前言

上一篇文章 python学习——【第二弹】中学习了python中的运算符内容,这篇文章接着学习python中的流程控制语句。

流程控制指的是代码运行逻辑、分支走向、循环控制,是真正体现我们程序执行顺序的操作。流程控制一般分为顺序执行、条件判断和循环控制。

顺序执行

顺序执行顾名思义就是按照程序的顺序从上到下,从左至右依次执行:
在这里插入图片描述
顺序执行中我们需要遵循的原则有:

1:普通语句直接执行
2:遇到函数以及方法调用时,需要将函数体载入内存,执行函数内部代码,执行完毕后继续执行原有顺序代码
3:遇到类,需要执行类内部的普通语句,但是类的方法只载入,不执行
4:遇到if、for等控制语句,要按照控制流程执行
5:遇到@,break,continue等,按照规定语法执行

条件判断

在进行条件判断的介绍之前,我们先了解一下对象的布尔值

布尔值,是一个特殊的数据类型,只有True和False两种,用来检测一个条件是否成立;当条件成立则会转换成True,否则为False,从而决定了条件判断结果的真与假。

print('-------------以下对象的布尔值均为false-------------')
print(bool(False))  #结果为false
print(bool(0))  #结果为false
print(bool(0.0))  #结果为false
print(bool(None))  #结果为false
print(bool(''))  #结果为false
print(bool(""))  #结果为false
print(bool([]))  #表示空列表,结果为false
print(bool(list()))  #表示空列表,结果为false
print(bool(()))  #表示空元组,结果为false
print(bool(tuple()))  #表示空元组,结果为false
print(bool({}))  #表示空字典,结果为false
print(bool(dict()))  #表示空字典,结果为false
print(bool(set()))  #表示空集合,结果为false
print('--------------其他对象的布尔值均为true--------------')

里面会有一些这篇文章没有涉及到的元素名称,比如元组,列表,字典等,后面的文章会给大家一 一 介绍~

条件判断有三种结构:单分支结构,多分支结构,if嵌套

1:单分支结构

money=10000
s=int(input('请输入取款余额:'))
# 判断条件是否充足
if money>=s:
    money=money-s
    print('取款成功'+'余额为:',money)

在这里插入图片描述

2:多分支结构

双分支结构:

# 键盘录入一个整数  编写程序让计算机判断是奇数还是偶数
num = int(input('请输入一个整数:'))
if num % 2 == 0:
    print(num, '是偶数')
else:
    print(num, '是奇数')

在这里插入图片描述
多分支结构

#编写一个成绩判断器
score =int(input('请输入您的成绩'))
if score>=90  and score<=100:
    print('A')
elif score>=60 and  score<=89:
    print('B')
elif score>=0 and score<=59:
    print('C')
else:
    print('请输入合法成绩')

# 写法二  在python中可以用数学的形式表示成绩范围
score1=int(input('请输入您的成绩'))
if 90<=score<=100:
    print("A")
elif 60<=score<=89:
    print("B")
elif 0<=score<=59:
    print("C")
else:
    print("请输入合法成绩")

在这里插入图片描述

3:if else 嵌套

# 超市会员系统
money=float(input('请输入您的花销:'))
answer=input('请问您是会员吗,是请输入\"y\" ,不是请忽略')
if answer=='y':
    if money>=200:
        money=money*0.9
        print('您的消费为:',int(money))
    elif money<=100:
        money=money*0.95
        print('您的消费为:',int(money))
else:
    if money>=200:
        money=money*0.95
        print('您的消费为:',int(money))
    elif money<=100:
        print('您的消费为:',int(money))

在这里插入图片描述

4:补充与注意事项

1:在python中有 pass 占位符,当我们在编写判断语句时,可以使用 pass占位符来保持程序结构的完整性

在这里插入图片描述

2.在其他语言中我们可以使用三元运算符来简化 if 判断语句,在python中我们也可以适当使用三元运算符来简化我们的代码:

# 从键盘中录入两个整数  比较两个整数的大小
num1=int(input('请输入第一个整数:'))
num2=int(input('请输入第二个整数:'))
if num1>=num2:
    print(num1,'大于等于',num2)
else:
    print(num1,'小于',num2)
    
# 利用三元运算符编写
num3=int(input('请输入第一个整数:'))
num4=int(input('请输入第二个整数:'))
print((str(num3)+'大于等于'+str(num4)) if num3>=num4 else (str(num3)+'小于'+str(num4)))

在这里插入图片描述
注意事项

1.在python中对代码的缩进敏感,当我们使用 if…else 语句进行条件判断时,特别要注意相同的缩进代表的是同一个代码块;有时缩进的不同实现的功能也会不相同,甚至抛出错误,因此在编写代码时要特别注意。

缩进导致结果不同:

isPrint = False
if isPrint: #当判断为True时执行下列代码
  print('输出:',"A")
  print('输出:',"B")
# 程序运行后没有信息输出

# 例2-2:
isPrint = False
if isPrint:
  print('输出:',"A") #如果条件是True时执行
print('输出:',"B") #如果条件判断是False时执行
# 程序运行后会输出一个字符 “B”

在这里插入图片描述

缩进导致运行出错:

在这里插入图片描述

2.一般来说,if如果为假,则会执行else,不过也可以使用elif,当if为假的时候,会再次去判定elif是否为真,如果elif也为假,则会执行else。

3.再一个就是在编写代码时不要忘记在条件判断体后的英文状态下的 冒号 :

以及分清赋值运算符 = 和比较运算符 ==

循环控制

python中提供了 for循环和 while循环;以及循环控制语句 break语句,continue语句和pass语句

在循环控制代码的编写中同样要注意代码块的缩进!

1:while循环

在给定的判断条件是true时执行循环体,否则退出循环;那么 while 循环和前面提到的 if 判断语句有什么不同呢:条件判断语句 if是判断一次,若条件为True就执行if 包含的代码块;
while 循环是判断N+1次,条件为True时执行N次(关于while 循环判断和执行的次数问题,我们可以通过对程序的调试去直观的理解)

在编写循环控制程序时,我们可以按照这四步来:
1.初始化变量
2.条件判断
3.条件执行体
4:改变变量
注意:初始化的变量和条件判断的变量以及改变的变量是同一个

1.实现0–5之间的数的相加

#初始化变量
num1=0
sum1=0 #sum1用于存放变量相加的结果
#条件判断
while num1<=5:
#条件执行体
    sum1+=num1
#改变变量
    num1+=1
print('0--5之间的数相加和为:',sum1)

在这里插入图片描述
调试分析
在这里插入图片描述
通过调试,我们可以发现 while循环是会先通过判断条件来判断变量是否满足循环,那么此时循环还未开始就已经判断过一次了,直到不再满足循环条件才会跳出循环,这也就是为什么判断次数要比循环次数多一次。

2.计算1–100之间的偶数和

#初始化变量
num2=0
sum2=0
#条件判断
while num2<=100:
#条件执行体
    if num2%2==0:
        sum2+=num2
#改变变量
    num2+=1
print('1--100之间的偶数和:',sum2)

在这里插入图片描述
在这里插入图片描述

2:for循环

通常情况下是与in搭配使用,为for -- in 循环。in 表示从字符串、序列等中依次取值,又叫做遍历;

for -- in循环遍历的对象必须是可迭代对象;

其语法结构是:for 自定义变量 in 可迭代对象:循环体

如果在循环体中不需要自定义变量 可以将自定义变量写为“_” 即for _ in 可迭代对象:循环体,如:
在这里插入图片描述
1:遍历字符串

for item in 'python':#第一次取出来的是p,将p赋给item,依次取并赋给item后打印;该字符串就是可迭代对象
    print(item)

2.使用for循环 打印出1–100之间的偶数和

sum=0
for item in range(1,101):
    if item%2==0:
        sum+=item
print('1--100之间的偶数和是:',sum)
#1--100之间的偶数和是: 2550

这里我们用到了python中的一个内置函数 range()
range() 函数用于生成一个整数序列,返回的是一个迭代器对象;创建range()函数的三种方式:

1.range(stop) 创建一个[0,stop)之间的整数序列,步长默认是1
2.range(start,stop) 创建一个[start,stop)之间的整数序列,步长默认是1
3.range(start,stop,step) 创建一个[start,stop)之间的整数序列,步长是step
range()函数中的start起始元素取得到,但是stop终止元素取不到。

#  range()的三种创建方式
num1=range(10)  #默认从0开始,相邻两个数之间相差1叫做步长
print(num1,type(num1))#range(0, 10) <class 'range'>
print(list(num1),type(num1))#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] <class 'range'>

num2=range(1,10)
print(num2)#range(1, 10)
print(list(num2))#[1, 2, 3, 4, 5, 6, 7, 8, 9]

num3=range(1,10,2)
print(num3,list(num3))#range(1, 10, 2) [1, 3, 5, 7, 9]

# in 和 not in 判断元素是否存在于该指定序列
print(10 in num2)#False
print(9  not in num1) #False

使用range()函数的优点:无论range对象表示的整数序列有多长,所有range对象占用的内存空间是相同的。

3.输出100—999之间的​ ​水仙花数​​

# 水仙花数:abc=a*a*a+b*b*b+c*c*c
for num in range(1,1001):
    gewei=num%10 
    shiwei=num//10%10
    baiwei=num//100
    if gewei**3+shiwei**3+baiwei**3==num:
        print('水仙花数为:',num)

在这里插入图片描述

4.输出一个直角三角形

for i in range(1,10):#产生由1–9个数,表示所在行
for j in range(1,i+1):#表示所在列,代表在每一行循环执行i次,并打印出i个‘’和i个‘-’
print('
‘,end=’-')
print()#换行

在这里插入图片描述

5.打印九九乘法表

for i in range(1,10):#代表从1--9行,因此出现了下面的i+1列
    for j in range(1,i+1):
        print(i,'*',j,'=',i*j,end='\t')#打印九九乘法表
    print()

在这里插入图片描述
3:break 和 continue

在执行 while 循环或者 for 循环时,只要循环条件满足,程序将会一直执行循环体,不停地转圈。但在某些场景,我们可能希望在循环结束前就强制结束循环。python中提供了 2 种强制离开当前循环体的办法:

1.只用 break 语句,可以完全终止当前循环。
2.使用 continue 语句,可以跳过执行本次循环体中剩余的代码,转而执行下一次的循环。

1.从键盘中录入密码 最多录入3次 如果正确就结束循环

#for循环
for item in range(3):
    pwd=input('请输入密码')
    if pwd=='8888':
        print('密码正确')
        break #跳出当前循环,结束循环
    else:
        print('密码不正确')
        
#while循环
a=0
while a<3:
    pwd=input('请输入密码')
    if pwd=='8888':
        print('密码正确')
        break
    else:
        a+=1
        print('密码不正确')

在这里插入图片描述

2.输出1–50之间所有5的倍数

for item in range(1,51):
    if item%5!=0:
        continue
    print(item)

在这里插入图片描述
4:pass语句

pass语句的用法和在if条件判断中的用法类似,都代表一个占位符,这里就不一 一赘述了。

每篇一语

变聪明的方法就是学习!

如有不足,感谢指正。

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

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

相关文章

从源码的角度告诉你 spark是怎样完成对文件切片

目录 1.说明 2.怎样设置默认切片数 2.1 RDD默认切片设置 2.2 SparkSQL默认切片设置 3. makeRDD 切片原理 4. textFile 切片原理 4.1 切片规则 4.2 怎样设置切片大小 4.3 测试代码 5.hadoopFile 切片原理 5.1 说明 5.2 切片规则 5.3 怎样设置切片大小 5.4 代码测试…

【算法经典题集】前缀和与数学(持续更新~~~)

&#x1f63d;PREFACE&#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐ 评论&#x1f4dd;&#x1f4e2;系列专栏&#xff1a;算法经典题集&#x1f50a;本专栏涉及到的知识点或者题目是算法专栏的补充与应用&#x1f4aa;种一棵树最好是十年前其次是现在前缀和一维前缀和k倍…

【我的Android开发】AMS中Activity栈管理

概述 Activity栈管理是AMS的另一个重要功能&#xff0c;栈管理又和Activity的启动模式和startActivity时所设置的Flag息息相关&#xff0c;Activity栈管理的主要处理逻辑是在ActivityStarter#startActivityUnchecked方法中&#xff0c;本文也会围绕着这个方法进进出出&#xf…

Gopro卡无法打开视频恢复方法

下边来看一个文件系统严重受损的Gopro恢复案例故障存储: 120G SD卡故障现象:客户正常使用&#xff0c;备份数据时发现卡无法打开&#xff0c;多次插拔后故障依旧。故障分析:Winhex查看发现0号分区表扇区正常&#xff0c;这应该是一个exfat格式的文件系统&#xff0c;但是逻辑盘…

【单目3D目标检测】MonoDDE论文精读与代码解析

文章目录PrefacePros and ConsAbstractContributionsPreliminaryDirect depth estimationDepth from heightPespective-n-point&#xff08;PnP&#xff09;PipelineDiverse Depth EstimationsRobust Depth CombinationOutput distributionSelecting and combining reliable de…

JVM-从熟悉到精通

JVM 机器语言 一个指令由操作码和操作数组成 方法调用等于一个压栈的过程 栈有 BP寄存器 和 SP寄存器来占用空间 BP -> Base Point 栈基址&#xff08;栈底&#xff09;SP -> Stack Point 栈顶 字节序用于规定数据在内存单元如何存放&#xff0c;二进制位的高位和低…

计算机组成原理|第二章(笔记)

目录第二章 计算机的发展及应用2.1 计算机的发展史2.1.1 计算机的生产和发展2.1.2 微型计算机的出现和发展2.1.3 软件技术的兴起与发展2.2 计算机的应用2.3 计算机的展望上篇&#xff1a;第一章&#xff1a;计算机系统概论 第二章 计算机的发展及应用 2.1 计算机的发展史 2.1.…

基于半车悬架的轴距预瞄与轴间预瞄仿真对比

目录 前言 1. 半车悬架模型 2.轴距预瞄(单点预瞄)和轴间预瞄(两点预瞄)原理与仿真分析 2.1轴距预瞄(单点预瞄) 2.1.1预瞄原理 2.2.轴间预瞄(两点预瞄) 2.2.1预瞄原理 2.3仿真分析 3.总结 前言 对于悬架而言&#xff0c;四个车轮实际的输入信息是受到前后延时以及左右相…

SpringCloud:Feign的使用及配置

目录 Feign的使用及配置 1、Feign替代RestTemplate 2、使用Fegin步骤 3、自定义配置 4、Feign使用优化 5、Feign的最佳实践方式 Feign的使用及配置 1、Feign替代RestTemplate RestTemplate方式远程调用的问题 问题&#xff1a; 1、代码可读性差&#xff0c;编程体验不同…

HTML基本概述

文章目录网站和网页浏览器的作用HTML标签元素注释乱码问题web系统是以网站形式呈现的&#xff0c;而前端是以网页形式呈现的。 网站和网页 网站&#xff08;web site&#xff09;&#xff1a;互联网上用于展示特定内容的相关网页的集合。也就是说&#xff0c;一个网站包含多个…

【预告】ORACLE Primavera P6 v22.12 虚拟机发布

引言 离ORACLE Primavera P6 EPPM最新系统 v22.12已过去了3个多月&#xff0c;应盆友需要&#xff0c;也为方便大家体验&#xff0c;我近日将构建最新的P6的虚拟环境&#xff0c;届时将分享给大家&#xff0c;最终可通过VMWare vsphere (esxi) / workstation 或Oracle virtua…

SQL 窗口函数详解

SQL窗口函数详解 窗口函数的主要作用是对数据进行分组排序、求和、求平均值、计数等。 一、窗口函数的基本语法 <分析函数> OVER ([PARTITION BY <列清单>] ORDER BY <排序用列清单> [ROWS BETWEEN 开始位置 AND 结束位置])理解窗口函数的基本语法&#xff…

opencv校正图像

目录1、前言2、例程2.1、代码2.2、效果口罩说明书网页3、按步骤分析转灰度图降噪 Canny边缘检测膨胀&#xff08;可视具体情况省略&#xff09;轮廓检索选取角度1、前言 我们用相机拍照时&#xff0c;会因为角度问题造成拍歪&#xff0c;会影响图像的识别&#xff0c;这时就需…

【PyTorch】教程:torch.nn.Hardtanh

torch.nn.Hardtanh 原型 CLASS torch.nn.Hardtanh(min_val- 1.0, max_val1.0, inplaceFalse, min_valueNone, max_valueNone) 参数 min_val ([float]) – 线性区域的最小值&#xff0c;默认为 -1max_val ([float]) – 线性区域的最大值&#xff0c;默认为 1inplace ([bool]) …

ABP(ASP.NET Boilerplate)配置整合使用Mysql数据库

ABP默认是支持sqlserver数据库的&#xff0c;但是这并不影响使用其他数据库&#xff0c;稍微配置一下就行了&#xff01;很简单——————————— 一、 卸载原来存在Sql Server的依赖包 在程序包管理控制台输入&#xff0c;选择EntityFrameworkCore 然后执行删除包的命令…

基于intel x86+fpga智能驾驶舱和高级驾驶辅助系统硬件设计(二)

系统功能架构及各模块功能介绍 智能驾驶舱和高级驾驶辅助系统是一个车载智能终端嵌入式平台&#xff0c;系统是一个能够运行 虚拟化操作系统的软件和硬件的综合体。本文的车载主机包括硬件主控处理器、电源管理芯 片、存储设备、输入输出控制器、数字仪表系统系统、后座娱乐系统…

抖音怎么合理安排直播内容|辽宁千圣文化

抖音主播们可以利用直播的方式达到带货的底模&#xff0c;那么做主播的话&#xff0c;就要利用好抖音主播中心&#xff0c;很多抖音用户却表示找不到抖音主播中心&#xff0c;那么怎么去看呢&#xff1f;跟着辽宁千圣文化小编来一起看看吧&#xff01;如何成为一名合格的主播&a…

【操作系统原理实验】调度算法模拟实现

选择一种高级语言如C/C等&#xff0c;模拟实现调度算法完成资源分配与回收的过程。2) 自定义PCB等核心数据结构&#xff1b;3) 利用列表、队列等容器类或者其他数据结构管理PCB,完成相应调度算法的模拟&#xff1b;4) 实现外围一些命令如创建进程、查看进程、关闭进程等&#x…

Spacedesk软件推荐,让你的平板也变成电脑的副屏

我的设备&#xff1a; 电脑:戴尔G15 5511、i7-11800H、Windows 11、RTX3060 平板&#xff1a;荣耀V6、麒麟985、安卓10、分辨率2000*1200&#xff08;手机也行&#xff0c;我用的平板&#xff09; 实际使用&#xff1a; 先给放一张实际使用的照片 可以让平板变成电脑的副屏…

28 位委员出席,龙蜥社区第 15 次运营委员会会议顺利召开

2 月 24 日&#xff0c;龙蜥社区在海光召开了第 15 次运营委员会会议&#xff0c;本次会议由统信软件运营委员会委员崔开主持。来自 Arm、阿里云、飞腾、红旗软件、海光、Intel、龙芯、联通软研院、浪潮信息、普华基础软件、统信软件、万里红、移动、中科方德等理事单位的 28 位…