二:《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…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...

无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...

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

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
Redis:现代应用开发的高效内存数据存储利器
一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...

uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...

《Docker》架构
文章目录 架构模式单机架构应用数据分离架构应用服务器集群架构读写分离/主从分离架构冷热分离架构垂直分库架构微服务架构容器编排架构什么是容器,docker,镜像,k8s 架构模式 单机架构 单机架构其实就是应用服务器和单机服务器都部署在同一…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践
在 Kubernetes 集群中,如何在保障应用高可用的同时有效地管理资源,一直是运维人员和开发者关注的重点。随着微服务架构的普及,集群内各个服务的负载波动日趋明显,传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...