二:《Python基础语法汇总》— 条件判断与循环结构

embedded/2024/9/23 12:51:44/

一:条件判断

1.程序执行的三大流程:
  • ​ 顺序流程:无缩进代码,从上往下依次执行

  • ​ 分支流程:选择性执行某块代码,或跳过某行代码去执行,与缩进(TAB)有关

  • ​ 循环流程:循环执行某块代码,最后回到终点

2.分支流程:

​ 第一种分支结构:if

if结构的代码格式:

python">if 判断条件:条件成立后执行的代码

注意:

  1. 判断条件可以是一个数值,也可以是一个表达式

  2. 如果判断条件是一个数值,只要不是0都是成立的 – 非0即真(True),为0为假(False)

  3. 如果判断条件是一个序列;字符串,只要里面不是空的都是成立的 – 非空即真(True),为空为假(False),空格不算空,默认才为空,空格为真(True),会执行

  4. 如果判断条件是一个表达式,则直接看表达式运算后的结果是否为真

  5. if是一定会执行的代码,而if里面的代码看是否满足判断条件,满足就执行,不满足则跳过

python">if 0:print("不成立")
if 23:print("成立")
if "":print("不成立")
if [   ]:print("成立")
if 0 and 89:print("不成立")
if 0 or 89:print("成立")

​ 第二种分支结构:if - else

if - else结构的代码格式:

python">if 判断条件:条件成立后执行的代码
else:条件不成立后执行的代码

注意:

  1. if可以单独出现,而else不可以单独出现

  2. if - else是一块代码,不会发生先后一起执行的情况,而是看判断条件是否满足

python">if 23>67:print("成立执行")
elseprint("不成立执行")

​ 第三种分支结构:if - elif - else

if - elif - else结构的代码格式:当判断条件为多个值时使用

python">if 判断条件1:条件1成立后执行的代码
elif 判断条件2:条件2成立后执行的代码
elif 判断条件3:条件3成立后执行的代码
......
else:当以上条件都不成立时执行的代码

注意: 分支结构可以没有 elifelse ,但一定要有 if

3.多重判断:
		**`and`;`or`**
python">if 判断条件1 and 判断条件2:两个条件都成立后执行的代码
elif 判断条件3 or 判断条件4:只有一个或两个都成立后执行的代码
else:当以上条件都不成立时执行的代码
python">nan = int(input("请输入男方的年龄:"))
nu = int(input("请输入女方的年龄:"))
if nan>22 and nu>20:print("可以结婚")
else:print("不可以结婚")
4.if嵌套:

if嵌套的代码格式:

python">if 条件判断1:if 条件判断2:当两个条件都成立时执行的代码
python">nan = int(input("请输入男方的年龄:"))
nu = int(input("请输入女方的年龄:"))
if nan>22:if nu>20:print("可以结婚")else:print("不可以结婚")
else:print("不可以结婚")
5.三目运算:

​ 三目运算符也叫三元运算符或三元表达式 – if - else 的简写

三目运算的代码格式:

​ 先肯定再说条件最后说不满足条件时怎么办

python">变量名 = 条件成立后执行的代码 if 判断条件 else 条件不成立后执行的代码
print("变量名")
python">a = "可以请假" if int(input("请输入你的工资:"))>=10000000 else "不可以请假"
print(a)

二:while循环

1.while循环:

​ 在Python编程中 while 语句用于循环执行程序,即在某一条件下,循环执行某段程序

while循环语句的语法格式:

python">while 判断条件:当条件成立时执行的语句

注意:

  1. 判断条件可以是一个数值,也可以是一个表达式

  2. 如果判断条件是一个数值,只要不是0都是成立的 – 非0即真(True),为0为假(False)

  3. 如果判断条件是一个序列;字符串,只要里面不是空的都是成立的 – 非空即真(True),为空为假(False),空格不算空,默认才为空,空格为真(True),会执行

  4. 如果在代码块中没有设置控制变量,那么当条件为真时,会出现死循环;当条件为假时,那么这一代码块,不会执行

  5. 如果判断条件是一个表达式,则直接看表达式运算后的结果是否为真

python">#打印1~100
i = 0
a = 1
while a <= 100:i = i + 1a = a + 1print(i)
2.循环控制语句:
控制语句描述
break语句用于终止循环,并跳出整个循环结构
continue语句用于终止当前循环,并跳出该次循环,执行下一次循环
pass语句空语句,用于保持程序结构的完整性,无意义

注意: 1. 在Python中,continuebreak是两个控制流语句,用于在循环中进行不同的控制流操作

​ 2. 当遇到continue语句时,循环中剩余的代码将会被忽略,循环会立即进入下一次迭代

​ 3. 当遇到break语句时,整个循环立即结束。不再执行

python">#打印1~100,跳过偶数
i = 0
a = 1
while a <= 100:i = i + 1a = a + 1if i % 2 == 0:continueprint(i)
python">#在1~50中,当遇到7的倍数时跳出循环,不包含7,在让其余的数相加
i = 0
a = 1
b = 0
while a <= 50:i = i + 1a = a + 1if i % 7 == 0 and i != 7:breakb = b + i
print(b)
3.while循环嵌套:

​ 当内部循环执行完成之后,再执行下一次外部循环的条件判断

python">#道歉三天,每一天说十次我错了
i = 1
while i < 6:print(f"第{i}天道歉")i = i + 1a = 1while a < 6:print("对不起")a += 1
python">#打印九九乘法表
i = 1
while i < 10:o = 1while o <= i:print(f"{o}*{i}={i*o}", end="\t")o += 1print()i += 1

三:for...in...循环

1.for…in…循环:
  • for...in...循环可以遍历任何序列的项目,如一个列表或者一个字符串,只有序列才可以进行遍历
  • for...in...循环遍历的对象必须是可迭代对象,for…in…循环也可以理解为迭代循环
  • while循环的循环条件是自定义的,for...in...循环无法定义循环条件
  • for...in...循环是一种"轮循"机制,是对一批内容进行"逐个处理"

for...in...循环的语法格式:

python">for 临时变量 in 可迭代对象(就是容器):循环体

注意:

  1. 迭代:取值的过程,从前往后,不插队,不重复,这样的过程叫做迭代

  2. 取值:从可迭代对象中取值,赋值给临时变量,每一次循环都取一个值

  3. 临时变量:只能在for...in...循环中使用,每一次循环的值都不同,只能够保存当前循环的值,所以无法在for...in...循环中被单独赋值

  4. in指的是临时变量在可迭代对象的里面,每一次循环临时变量都是从可迭代对象中取值

python">a = [1,2,3,4,5]
for i in a:print(i)
python">#计算1~5相加的数字之和
a = 0
for i in "12345":a = a + int(i)
print(a)

注意: 凡是数字超过9的就不能使用字符串,因为无法用字符串存储,字符串里面都是单独的个体

2.range()函数:

作用: 生成一个连续的数字序列

range()函数的第一种用法:

python">range(num)
#num表示生成0~num-1的连续数字序列

注意:

  1. range()函数生成的类型是一个range类型

  2. 单独使用时要用序列(字典除外)对其进行转换,将其里面的连续数字序列显示出来

python">print(list(range(10)))#生成一个0~9的连续数字序列(列表)
python">print(set(range(10)))#生成一个0~9的连续数字序列(集合)

注意:

  1. 因为集合是一个无序的序列,所以当把range类型转换成集合时,打印时可能会打乱里面的数字顺序,但在python3.x的版本中,如果集合里面是纯数字,在一定的范围内,是不会出现乱序的,但如果里面是字符串,数字,变量等掺和在一起,就会出现乱序

  2. 序列不可以转换成range()

  3. range()函数是生成一个可迭代的序列,而序列本身就是可迭代的

range()函数的第二种用法:

python">range(n,m)
#n表示连续数字序列的起始值
#m表示m-1(因为不包含其m本身)是连续数字序列的结束值
python">print(tuple(range(3,16)))#生成一个3~15的连续数字序列(元组)
python">#计算1~100相加的数字之和
a = 0
for i in range(1,101):#当for...in...循环后面是可迭代对象时不用转换a += i
print(a)
python">#计算1~100之间的偶数之和
a = 0
for s in range(1,101):if s % 2 != 0:continuea += s
print(a)

range()函数的第三种用法:

python">range(n,m,s)
#n表示连续数字序列的起始值
#m表示m-1(因为不包含其m本身)是连续数字序列的结束值
#s表示步长值(间隔值)起始值到结束值之间众多数字的差值
python">print(list(range(1,10,2)))#生成的数字就是[1,3,5,7,9],因为它们之间的差值为2
python">#计算1~100之间的偶数之和
a = 0
for s in range(0,101,2):a += s
print(a)
3.for…in…循环嵌套:

​ 当不需要用到临时变量时,可迭代对象就变成了循环次数,里面有几个元素,循环体就执行几次

python">a = 0
for i in ["112",a,18]:print("对不起") #只会打印三次对不起

​ 每一次的外部循环,内部都要重新开始再循环一遍

python">#道歉三天,每一天说十次我错了
for i in [1,2,3]:print(f"第{i}天道歉")for s in range(10):print("我错了")
python">#打印九九乘法表
for i in range(1,10):for s in range(1,1+i):print(f"{s}*{i}={s*i}",end="\t")print()

注意: else不能够单独出现,但else可以和if使用,还可以与forwhile循环一起同级使用,先执行循环里面的内容,待所有循环正常执行完毕后(被break或其它原因中断,都属于非正常执行完毕),才会去执行else里面的内容

python">#猜字游戏
import random
s = random.randint(1,100)
for i in "43210":w = int(input("请输入数字:"))if w == s:print("恭喜你猜对了")breakelif w > s:print("猜大了")print(f"回答错误,你还有{i}次机会")elif w < s:print("猜小了")print(f"回答错误,你还有{i}次机会")
else:print("抱歉,您的机会已经用完了!")
python">#道歉三天,每一天说十次我错了
i = 1
while i < 6:print(f"第{i}天道歉")i = i + 1a = 1while a < 6:print("对不起")a += 1
else:print("我原谅你了!")

http://www.ppmy.cn/embedded/97904.html

相关文章

超实用的短链接使用指南

当你突然灵感爆棚&#xff0c;有一个自认为能火出地球的创意推广&#xff0c;正准备把链接分享出去的时候&#xff0c;可不能让那些长长的链接坏了事&#xff01; 链接太长&#xff0c;会让人觉得不安全可靠&#xff0c;大大影响点击量&#xff1b; 字节太多&#xff0c;短信…

数据结构入门——08排序

1.排序 1.1什么是排序 排序是一种操作&#xff0c;通过比较记录中的关键字&#xff0c;将一组数据按照特定顺序&#xff08;递增或递减&#xff09;排列起来。排序在计算机科学中非常重要&#xff0c;因为它不仅有助于数据的快速检索&#xff0c;还能提高其他算法的性能。 1…

【前端】VUE动态引入组件 通过字符串动态渲染模板 动态生成组件

【前端】VUE动态引入组件 通过字符串动态渲染模板 应用场景&#xff1a; js增强 动态代码 扩展一类的 可以配合低代码平台等 灵活配置在线表单 在线列表等 适合灵活性 扩展性比较强的组件 VUE2 <template><div><textarea v-model"templateString"…

Axios请求使用params参数导致后端获取数据嵌套

问题重述&#xff1a; 首先看前端的axios请求这里我使用params参数将data数据传给后端 let data JSON.stringify(this.posts);axios.post("/blog_war_exploded/insertPost", {params: {data: data}}).then((res) > {if (res.data "success") {alert(…

ElasticSearch 高级查询语法Query DSL实战

文章目录 1.ES高级查询Query DSL1.1 match_all1.2 术语级别查询1.3 全文检索1.4 bool query布尔查询1.5 highlight高亮 2. ES 深度分页问题及针对不同需求下的解决方案2.1 什么是深度分页2.2 深度分页会带来什么问题2.3 深度分页问题的常见解决方案2.4 总结 1.ES高级查询Query …

2025年单片机毕业设计选题物联网计算机电气电子通信类

当然&#xff0c;以下是基于物联网技术设计的20个单片机类题目&#xff0c;旨在考察学生在物联网环境下单片机应用、系统设计、数据传输与处理等方面的能力&#xff1a; 基于物联网的智能家居温度湿度控制系统设计&#xff1a;利用单片机和传感器实现室内环境的温湿度监测&…

【layUI】只能选某个特定区间的日历

要实现的功能如下&#xff1a;业务要求让日历只有近3天可选&#xff0c;其它部分变灰且不可选。 代码实现 在html中加入如下代码&#xff1a; <label class"layui-form-label" style"">日期&#xff1a; </label> <div class"layu…

Vue+SortableJs实现拖拽排序

需求说明 需求是需要首列固定、除首尾列外可进行拖动排序并保存数据 SortableJs中文地址 SortableJs 实现说明 针对首尾列固定SortableJs提供了一个配置&#xff0c;该配置虽然可实现首尾列不可拖动&#xff0c;但是在拖动其他元素到首尾列时位置仍被调换&#xff0c;所以…