二:《Python基础语法汇总》— 条件判断与循环结构
一:条件判断
1.程序执行的三大流程:
-
顺序流程:无缩进代码,从上往下依次执行
-
分支流程:选择性执行某块代码,或跳过某行代码去执行,与缩进(
TAB)有关 -
循环流程:循环执行某块代码,最后回到终点
2.分支流程:
第一种分支结构:if
if结构的代码格式:
if 判断条件:条件成立后执行的代码
注意:
-
判断条件可以是一个数值,也可以是一个表达式
-
如果判断条件是一个数值,只要不是0都是成立的 – 非0即真(
True),为0为假(False) -
如果判断条件是一个序列;字符串,只要里面不是空的都是成立的 – 非空即真(
True),为空为假(False),空格不算空,默认才为空,空格为真(True),会执行 -
如果判断条件是一个表达式,则直接看表达式运算后的结果是否为真
-
if是一定会执行的代码,而if里面的代码看是否满足判断条件,满足就执行,不满足则跳过
if 0:print("不成立")
if 23:print("成立")
if "":print("不成立")
if [ ]:print("成立")
if 0 and 89:print("不成立")
if 0 or 89:print("成立")
第二种分支结构:if - else
if - else结构的代码格式:
if 判断条件:条件成立后执行的代码
else:条件不成立后执行的代码
注意:
-
if可以单独出现,而else不可以单独出现 -
if - else是一块代码,不会发生先后一起执行的情况,而是看判断条件是否满足
if 23>67:print("成立执行")
else:print("不成立执行")
第三种分支结构:if - elif - else
if - elif - else结构的代码格式:当判断条件为多个值时使用
if 判断条件1:条件1成立后执行的代码
elif 判断条件2:条件2成立后执行的代码
elif 判断条件3:条件3成立后执行的代码
......
else:当以上条件都不成立时执行的代码
注意: 分支结构可以没有 elif 和 else ,但一定要有 if
3.多重判断:
**`and`;`or`**
if 判断条件1 and 判断条件2:两个条件都成立后执行的代码
elif 判断条件3 or 判断条件4:只有一个或两个都成立后执行的代码
else:当以上条件都不成立时执行的代码
nan = int(input("请输入男方的年龄:"))
nu = int(input("请输入女方的年龄:"))
if nan>22 and nu>20:print("可以结婚")
else:print("不可以结婚")
4.if嵌套:
if嵌套的代码格式:
if 条件判断1:if 条件判断2:当两个条件都成立时执行的代码
nan = int(input("请输入男方的年龄:"))
nu = int(input("请输入女方的年龄:"))
if nan>22:if nu>20:print("可以结婚")else:print("不可以结婚")
else:print("不可以结婚")
5.三目运算:
三目运算符也叫三元运算符或三元表达式 – if - else 的简写
三目运算的代码格式:
先肯定再说条件最后说不满足条件时怎么办
变量名 = 条件成立后执行的代码 if 判断条件 else 条件不成立后执行的代码
print("变量名")
a = "可以请假" if int(input("请输入你的工资:"))>=10000000 else "不可以请假"
print(a)
二:while循环
1.while循环:
在Python编程中 while 语句用于循环执行程序,即在某一条件下,循环执行某段程序
while循环语句的语法格式:
while 判断条件:当条件成立时执行的语句
注意:
-
判断条件可以是一个数值,也可以是一个表达式
-
如果判断条件是一个数值,只要不是0都是成立的 – 非0即真(
True),为0为假(False) -
如果判断条件是一个序列;字符串,只要里面不是空的都是成立的 – 非空即真(
True),为空为假(False),空格不算空,默认才为空,空格为真(True),会执行 -
如果在代码块中没有设置控制变量,那么当条件为真时,会出现死循环;当条件为假时,那么这一代码块,不会执行
-
如果判断条件是一个表达式,则直接看表达式运算后的结果是否为真
#打印1~100
i = 0
a = 1
while a <= 100:i = i + 1a = a + 1print(i)
2.循环控制语句:
| 控制语句 | 描述 |
|---|---|
break语句 | 用于终止循环,并跳出整个循环结构 |
continue语句 | 用于终止当前循环,并跳出该次循环,执行下一次循环 |
pass语句 | 空语句,用于保持程序结构的完整性,无意义 |
注意: 1. 在Python中,continue和break是两个控制流语句,用于在循环中进行不同的控制流操作
2. 当遇到continue语句时,循环中剩余的代码将会被忽略,循环会立即进入下一次迭代
3. 当遇到break语句时,整个循环立即结束。不再执行
#打印1~100,跳过偶数
i = 0
a = 1
while a <= 100:i = i + 1a = a + 1if i % 2 == 0:continueprint(i)
#在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循环嵌套:
当内部循环执行完成之后,再执行下一次外部循环的条件判断
#道歉三天,每一天说十次我错了
i = 1
while i < 6:print(f"第{i}天道歉")i = i + 1a = 1while a < 6:print("对不起")a += 1
#打印九九乘法表
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...循环的语法格式:
for 临时变量 in 可迭代对象(就是容器):循环体
注意:
-
迭代:取值的过程,从前往后,不插队,不重复,这样的过程叫做迭代
-
取值:从可迭代对象中取值,赋值给临时变量,每一次循环都取一个值
-
临时变量:只能在
for...in...循环中使用,每一次循环的值都不同,只能够保存当前循环的值,所以无法在for...in...循环中被单独赋值 -
in指的是临时变量在可迭代对象的里面,每一次循环临时变量都是从可迭代对象中取值
a = [1,2,3,4,5]
for i in a:print(i)
#计算1~5相加的数字之和
a = 0
for i in "12345":a = a + int(i)
print(a)
注意: 凡是数字超过9的就不能使用字符串,因为无法用字符串存储,字符串里面都是单独的个体
2.range()函数:
作用: 生成一个连续的数字序列
range()函数的第一种用法:
range(num)
#num表示生成0~num-1的连续数字序列
注意:
-
range()函数生成的类型是一个range类型 -
单独使用时要用序列(字典除外)对其进行转换,将其里面的连续数字序列显示出来
print(list(range(10)))#生成一个0~9的连续数字序列(列表)
print(set(range(10)))#生成一个0~9的连续数字序列(集合)
注意:
-
因为集合是一个无序的序列,所以当把
range类型转换成集合时,打印时可能会打乱里面的数字顺序,但在python3.x的版本中,如果集合里面是纯数字,在一定的范围内,是不会出现乱序的,但如果里面是字符串,数字,变量等掺和在一起,就会出现乱序 -
序列不可以转换成
range() -
range()函数是生成一个可迭代的序列,而序列本身就是可迭代的
range()函数的第二种用法:
range(n,m)
#n表示连续数字序列的起始值
#m表示m-1(因为不包含其m本身)是连续数字序列的结束值
print(tuple(range(3,16)))#生成一个3~15的连续数字序列(元组)
#计算1~100相加的数字之和
a = 0
for i in range(1,101):#当for...in...循环后面是可迭代对象时不用转换a += i
print(a)
#计算1~100之间的偶数之和
a = 0
for s in range(1,101):if s % 2 != 0:continuea += s
print(a)
range()函数的第三种用法:
range(n,m,s)
#n表示连续数字序列的起始值
#m表示m-1(因为不包含其m本身)是连续数字序列的结束值
#s表示步长值(间隔值)起始值到结束值之间众多数字的差值
print(list(range(1,10,2)))#生成的数字就是[1,3,5,7,9],因为它们之间的差值为2
#计算1~100之间的偶数之和
a = 0
for s in range(0,101,2):a += s
print(a)
3.for…in…循环嵌套:
当不需要用到临时变量时,可迭代对象就变成了循环次数,里面有几个元素,循环体就执行几次
a = 0
for i in ["112",a,18]:print("对不起") #只会打印三次对不起
每一次的外部循环,内部都要重新开始再循环一遍
#道歉三天,每一天说十次我错了
for i in [1,2,3]:print(f"第{i}天道歉")for s in range(10):print("我错了")
#打印九九乘法表
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使用,还可以与for和while循环一起同级使用,先执行循环里面的内容,待所有循环正常执行完毕后(被break或其它原因中断,都属于非正常执行完毕),才会去执行else里面的内容
#猜字游戏
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("抱歉,您的机会已经用完了!")
#道歉三天,每一天说十次我错了
i = 1
while i < 6:print(f"第{i}天道歉")i = i + 1a = 1while a < 6:print("对不起")a += 1
else:print("我原谅你了!")
相关文章:
二:《Python基础语法汇总》— 条件判断与循环结构
一:条件判断 1.程序执行的三大流程: 顺序流程:无缩进代码,从上往下依次执行 分支流程:选择性执行某块代码,或跳过某行代码去执行,与缩进(TAB)有关 循环流程&…...
【威锋网-注册安全分析报告-无验证方式导致安全隐患】
前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 1. 暴力破解密码,造成用户信息泄露 2. 短信盗刷的安全问题,影响业务及导致用户投诉 3. 带来经济损失,尤其是后付费客户,风险巨大,造…...
01_React简介、基础入门
React 简介、基础入门 一、React 简介1、是什么?2、谁开发的?3、为什么要学?4、React 的特点5、学习 React 之前你要掌握的 Javascript 基础知识 二、React 入门1、相关 js 库2、Hello React 入门小例子---React16.8.0 版本3、为什么不用 js …...
【Java 内存区域】
Java内存区域 JDK1.7 VS JDK1.8堆 (Heap)方法区 (Method Area)String 常量池 (String Pool)运行时常量池 (Runtime Constant Pool)虚拟机栈 (JVM Stack)局部变量表操作数栈动态链接方法返回信息 本地方法栈 (Native Method Stack)程序计数器 (Program Counter Register)元空间 …...
你是如何克服编程学习中的挫折感的?
一:学习之路 在编程学习的过程中,挫折和挑战是不可避免的。面对这些困难,我个人的一些经验和方法如下,或许能为你提供一些启示: 1. 学会分解问题 当遇到复杂的算法或者Bug时,我会将问题分解成更小的部分。…...
【AI应用实战】灵办AI插件集成详细指南
一、写在前面 随着AI技术的日新月异,大型模型应用如雨后春笋般涌现,从ChatGPT到文心一言,再到讯飞星火,无一不彰显着智能科技的无限潜力。而在这股浪潮中,我们欣喜地发现,一些创新的浏览器插件正悄然兴起&a…...
MySQL数据库连接超时问题排查报告
1、问题描述 边端设备访问云端过程中有概率出现MySQL数据库连接超时报错,具体报错代码如下: [2024-08-13 13:47:44,036] ERROR in app: Exception on /est-tasks/start [POST] Traceback (most recent call last): File "/usr/local/lib/python3.1…...
代码随想录第三天 | 链表
文章目录 链表理论知识定义链表删除链表 Leetcode203 移除链表元素代码实现 Leetcode707 设计链表代码实现复杂度分析错误点 Leetcode206 反转链表新建链表双指针法 链表理论知识 链接: https://programmercarl.com/%E9%93%BE%E8%A1%A8%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.h…...
Python编码系列—Python数据可视化:Matplotlib与Seaborn的实战应用
🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…...
putty中修改默认窗口大小和字体、字号
在WinSCP中调用putty,发现默认窗口太小,字号也很小,非常不友好。现在显示器都是1080p起步,所以很有必要修改之。 以中文版v0.70为例,方法: 1. 点击左上角图标 ,选择下拉菜单中的“修改设置”&…...
Windows下网络编与ESP8266-WiFi通信(win32-API)
一、前言 络编程是指编写程序使不同计算机之间能够通过网络进行通信和数据交换。网络编程涉及使用网络协议和编程接口来建立、管理和终止网络上的数据通信。在这一领域中,TCP/IP协议族是核心组成部分,尤其TCP(传输控制协议)是面向…...
【Golang】golang安装一些依赖包时总是失败
Golang安装一些依赖包失败: 比如安装gin包:go get -u github.com/gin-gonic/gin 可能会报错:连接网络失败、超时等 这时可能需要修改go的环境配置,修改代理即可: go env -w GO111MO…...
ubuntu如何监控Xvfb虚拟显示器
在Ubuntu中监控Xvfb显示器主要涉及到使用VNC服务器来远程访问这个环境。以下是一些基本步骤: 安装Xvfb和相关工具: 使用apt安装Xvfb和x11vnc,x11vnc是一个VNC服务器,可以远程访问Xvfb创建的虚拟桌面环境。 sudo apt-get install xvfb sudo ap…...
小型需求管理软件盘点:8款功能强大的工具
本文介绍了以下8款工具:PingCode、Worktile、易得云、Ping、燃草、Gitee、Monday.com、Slack。 在现代企业管理中,需求管理一直是个让人头疼的问题,特别是对于小型企业来说,选择一款合适的需求管理软件往往比想象中更复杂。如果选…...
Labelme的安装与使用教程
文章目录 一、Labelme是什么?二、安装步骤1.新建虚拟环境2.安装Labelme3.Labelme的使用 三、json2yolo 一、Labelme是什么? Labelme是一个用于图像标注的开源工具,可以实现图像标注、语义分割、实例分割等。 本文记录一下labelme的安装与使…...
C#基础:数据库中使用Linq作分组处理(反射/直接分组)
目录 一、使用反射分组 二、不使用反射分组 三、调用示例 四、代码demo 一、使用反射分组 private static List<GroupList<T>> GetGroupList<T>(List<T> entities, string groupByProperty) {// 获取分组字段的类型var propertyInfo typeof(T).…...
Revite二次开发_使用WPF和WebView2制作一个访问网站的窗口
如果想在revit里打开网页,可以使用WebView2来实现,下面是一个代码示例。 也尝试过使用CefSharp,但由于Revit本身也使用了CefSharp,所以需要根据不同的Revit版本选择适合的CefSharp版本,比较麻烦,所以最好还…...
Java Spring Boot 连接数据库
要在Java Spring Boot应用程序中连接数据库,您需要遵循以下步骤: 1. 添加数据库依赖项:在您的Spring Boot项目中的pom.xml文件中添加数据库依赖项,例如MySQL或PostgreSQL等。例如,如果您要连接MySQL数据库,…...
Java面试八股之消息队列中推模式和拉模式分别有哪些使用场景
消息队列中推模式和拉模式分别有哪些使用场景 消息队列的推模式(Push)和拉模式(Pull)各有不同的使用场景和优缺点。下面我会详细介绍这两种模式及其适用场景: 推模式(Push) 特点:…...
springboot jar是如何启动的
我们先来看一个项目的打完包后的MANIFEST.MF文件: Manifest‐Version: 1.0 Implementation‐Title: spring‐learn Implementation‐Version: 0.0.1‐SNAPSHOT Start‐Class: com.tulingxueyuan.Application Spring‐Boot‐Classes: BOOT‐INF/classes/ Spring‐Bo…...
华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...
零基础在实践中学习网络安全-皮卡丘靶场(第十一期-目录遍历模块)
经过前面几期的内容我们学习了很多网络安全的知识,而这期内容就涉及到了前面的第六期-RCE模块,第七期-File inclusion模块,第八期-Unsafe Filedownload模块。 什么是"遍历"呢:对学过一些开发语言的朋友来说应该知道&…...
Linux--vsFTP配置篇
一、vsFTP 简介 vsftpd(Very Secure FTP Daemon)是 Linux 下常用的 FTP 服务程序,具有安全性高、效率高和稳定性好等特点。支持匿名访问、本地用户登录、虚拟用户等多种认证方式,并可灵活控制权限。 二、安装与启动 1. 检查是否已…...
Qt Quick模块功能及架构
Qt 6.0 中的 Qt Quick 模块是构建现代、动态用户界面的核心框架,基于声明式编程(QML)和 JavaScript,专注于高性能、流畅的动画和跨平台 UI 开发。、 一、主要功能改进 1. Qt Quick 核心架构 QML 引擎升级:Qt 6.0 使用…...
MTK-Android12-13 Camera2 设置默认视频画质功能实现
MTK-Android12-13 Camera2 设置默认视频画质功能实现 场景:部分客户使用自己的mipi相机安装到我们主板上,最大分辨率为1280720,但是视频画质默认的是640480。实际场景中,在默认视频分辨率情况下拍出来的视频比较模糊、预览也不清晰…...
软件测试—学习Day11
今天学习下兼容性 1.App兼容性常见问题 以下是关于 App 兼容性问题的常见举例,涵盖界面展示、操作逻辑、性能差异三大维度,涉及不同系统、设备及网络环境的兼容性场景: 一、界面展示问题 界面展示兼容性问题主要由操作系统版本差异、屏幕…...
