当前位置: 首页 > news >正文

python学习——【第三弹】

前言

上一篇文章 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-sprint('取款成功'+'余额为:',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.9print('您的消费为:',int(money))elif money<=100:money=money*0.95print('您的消费为:',int(money))
else:if money>=200:money=money*0.95print('您的消费为:',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%10baiwei=num//100if 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('密码正确')breakelse:a+=1print('密码不正确')

在这里插入图片描述

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

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

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

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

每篇一语

变聪明的方法就是学习!

如有不足,感谢指正。

相关文章:

python学习——【第三弹】

前言 上一篇文章 python学习——【第二弹】中学习了python中的运算符内容&#xff0c;这篇文章接着学习python中的流程控制语句。 流程控制指的是代码运行逻辑、分支走向、循环控制&#xff0c;是真正体现我们程序执行顺序的操作。流程控制一般分为顺序执行、条件判断和循环控…...

科技云报道:AI大模型背后,竟是惊人的碳排放

科技云报道原创。 自从ChatGPT这样的大型语言模型在全球引起轰动以来&#xff0c;很少有人注意到&#xff0c;训练和运行大型语言模型正在产生惊人的碳排放量。 虽然OpenAI和谷歌都没有说过他们各自产品的计算成本是多少&#xff0c;但据第三方研究人员分析&#xff0c;ChatG…...

如何根据实际需求选择合适的三维实景建模方式?

随着实景三维中国建设的推进&#xff0c;对三维实景建模的数字化需求大幅增加。由于三维实景建模具有采集速度快、计算精度高等建模优势&#xff0c;引起了各个行业的高度关注。三维实景建模是一种应用数码相机或者激光扫描仪对现有场景进行多角度环视拍摄&#xff0c;然后利用…...

CENTO OS上的网络安全工具(十八)ClickHouse及编程环境部署

这篇其实去年就写好了&#xff0c;孰知就在12月31日那一天打进决赛圈&#xff0c;一躺&#xff0c;二过年&#xff0c;三休假&#xff0c;四加班&#xff0c;居然到了三个月以后&#xff0c;才有机会将它发出来…… 一年也就四个季度不是&#xff0c;实在是光阴荏苒&#xff0c…...

Java中class文件的格式

常见的class文件格式如下图所示&#xff0c;下面我将对一下格式一一作出解释。 一、magic 该部分主要是对语言类型的规范&#xff0c;只有magic这个部分是CAFEBABE时才能被检测为Java语言&#xff0c;否则则不是。 二、minor version和major version minor version主要表示了…...

C++排序算法

排序算法复习 冒泡排序 链接&#xff1a;https://www.runoob.com/w3cnote/bubble-sort.html 每次循环对比【相邻】两个元素&#xff0c;将最大的元素放到数组最后 void bubbleSort(int* arr, int n){//每次确认一个元素的最终位置&#xff0c;循环n-1次即可确认全部元素的最…...

JAVA后端部署项目三步走

1. JAVA部署项目三步走 1.1 查看 运行的端口 lsof -i:8804 &#xff08;8804 为端口&#xff09; 发现端口25111被监听 1.2 杀死进程,终止程序 pid 为进程号 kill -9 pid 1.3 后台运行jar包 nohup java -jar -Xms128M -Xmx256M -XX:MetaspaceSize128M -XX:MaxM…...

php使用zookeeper实现分布式锁

介绍 一、zookeeper和redis实现分布式锁的对比 1、redis 分布式场景应用比较广泛&#xff0c;redis分布式锁&#xff0c;其实需要自己不断去尝试获取锁&#xff0c;比较消耗性能&#xff1b;zk分布式锁&#xff0c;获取不到锁&#xff0c;注册个监听器即可&#xff0c;不需要不…...

力扣-可回收且低脂的产品

大家好&#xff0c;我是空空star&#xff0c;本篇带大家了解一道超级超级超级简单的力扣sql练习题。 文章目录前言一、题目&#xff1a;1757. 可回收且低脂的产品二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交S…...

代码随想录刷题-数组-二分查找

文章目录写在前面原理习题题目1思路和代码题目-2写在前面 这个专栏是记录我刷代码随想录过程中的随想和总结。每一小节都是根据自己的理解撰写的&#xff0c;文章比较短&#xff0c;主要是为了记录和督促自己。刷完一章后&#xff0c;我会再单独整理一篇文章来总结和分享。 本…...

HCIA复习1

HCIA复习 抽象语言---->编码 编码---->二进制 二进制--->电信号 处理电信号 OSI参考模型----OSI/RM 应用层 表示层 会话层 传输层 端口号&#xff1a;0-65535&#xff1b;1-1023是注明端口 网络层 IP地址 数据链路层 物理层 ARP协议 正向ARP---通过IP地址获取目的MAC地…...

Kotlin中的destructuring解构声明

开发中有时只是想分解一个包含多个字段的对象来初始化几个单独的变量。要实现这一点&#xff0c;可以使用Kotlin的解构声明。本文主要了解&#xff1a;“1、如何使用解构声明这种特性 2、底层是如何实现的 3、如何在你自己的类中实现它1、解构声明的使用解构声明&a…...

Kubernetes Pod 水平自动伸缩(HPA)

Pod 自动扩缩容 之前提到过通过手工执行kubectl scale命令和在Dashboard上操作可以实现Pod的扩缩容&#xff0c;但是这样毕竟需要每次去手工操作一次&#xff0c;而且指不定什么时候业务请求量就很大了&#xff0c;所以如果不能做到自动化的去扩缩容的话&#xff0c;这也是一个…...

钉钉、企业微信和飞书向“钱”看

在急剧变革的时候&#xff0c;不管黑猫白猫&#xff0c;要抓到老鼠才算好猫。如今&#xff0c;各互联网企业早已进入降本增效的新阶段。勒紧裤腰带过日子之下&#xff0c;能不能盈利、商业化空间有多大&#xff0c;就成为各个业务极为重要的考核指标。在各业务板块中&#xff0…...

网上购物网站的设计

技术&#xff1a;Java、JSP等摘要&#xff1a;本文介绍了JSP和JAVA等相关技术&#xff0c;针对网上购物系统的实际需求&#xff0c;设计开发了一个基于JSP的小型电子商务网站也就是网上购物系统&#xff0c;。在设计开发中&#xff0c;采用的是SSH框架&#xff08;strutsspring…...

【Java学习笔记】8.Java 运算符

Java 运算符 计算机的最基本用途之一就是执行数学运算&#xff0c;作为一门计算机语言&#xff0c;Java也提供了一套丰富的运算符来操纵变量。我们可以把运算符分成以下几组&#xff1a; 算术运算符关系运算符位运算符逻辑运算符赋值运算符其他运算符 算术运算符 算术运算符…...

RHCSA-使用命令管理文件(3.6)

硬链接与软链接基本操作&#xff1a; 创建软硬连接的命令&#xff1a;ln 硬链接&#xff1a;ln 源文件&#xff08;已经存在的文件&#xff09; 链接文件名&#xff08;新建&#xff09; 软连接&#xff1a;ln -s 源文件&#xff08;已存在的文件&#xff09; 快捷方式文件名…...

socket聊天室--socket的建立

socket聊天室–socket实现 文章目录 socket聊天室--socket实现socket()bind()listen()accept()connect()发送接收read()函数recv()函数write()函数send()函数close()关闭套接字IP 地址格式转换函数socket() #include <sys/types...

Raft图文详解

Raft图文详解 refer to: Raft lecture (Raft user study) - YouTube Raft PDF Raft算法详解 - 知乎 (zhihu.com) 今天来详细介绍一下Raft协议 Raft是来解决公式问题的协议&#xff0c;那么什么是共识呢&#xff1f; 在分布式系统里面&#xff0c;consensus指的是多个节点对…...

春季出游,学会这些功能,让你旅途更舒心

春意盎然&#xff0c;万物复苏&#xff0c;春天正是旅游观光的好时节&#xff0c;相信不少小伙伴已经做好了出游的准备。想拥有好的心情&#xff0c;除了美食美景&#xff0c;好的出游神器也必不可少&#xff0c;好的出游神器能让我们的旅途更舒心&#xff0c;一起来看看是哪些…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而&#xff0c;传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案&#xff0c;能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...

nnUNet V2修改网络——暴力替换网络为UNet++

更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...

【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅

目录 前言 操作系统与驱动程序 是什么&#xff0c;为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中&#xff0c;我们在使用电子设备时&#xff0c;我们所输入执行的每一条指令最终大多都会作用到硬件上&#xff0c;比如下载一款软件最终会下载到硬盘上&am…...