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

Python入门(3):语句

目录

1  基本语句

1.1  表达式语句

1.2  赋值语句

2  控制流语句

2.1  条件语句

2.2  循环语句

while循环:

for循环:

2.3  流程控制语句

1. break语句:退出整个循环体

2. continue语句:只跳过本次循环,还会进入下一次循环

3. pass语句:用于占位,防止写代码时报语法错误

3  函数相关语句

1. def语句:用于定义函数

2. return语句:用于返回函数的返回值

4  异常处理语句

1. try-except-else-finally

2. raise语句:用于主动抛出异常中断程序

3. assert语句:是Python中的一个调试辅助工具,用于在程序中插入调试断言。它用于测试一个条件,如果条件为假,则会引发一个AssertionError异常。

5  上下文管理语句(with)

6  模块导入语句

1. import语句:导入模块

2. as别名:给导入的模块起一个别名,用别名来代替模块名,一方面可以避免不同模块之间出现重复的名称,另一方面可以简化代码

7  类定义语句

1. class语句:用于定义一个类

2. 类继承:通过在类的后面跟一个括号,继承其括号内的父类,也可以同时继承多个类,只需要用逗号隔开即可

8  作用域相关语句

1. global语句:声明全局变量

2. nonlocal语句:声明使用函数体外层的变量,非全局变量

9  其他重要语句

1. del语句:用于删除元素或对象

2. lambda表达式:用于创建匿名函数,多与其他函数结合使用

总结


1  基本语句

1.1  表达式语句

        表达式就是一个式子,在终端中运行会直接展示值,在IDE中运行需要用print才能展示表达式的值。

IDE是什么:IDE是什么❓-CSDN博客

# 由表达式构成的语句
3 + 4          # 数学表达式
print("Hello") # 函数调用表达式

1.2  赋值语句

# 简单赋值
x = 10         # 将10赋值给变量x# 多重赋值
a, b = 5, 8    # a=5, b=8# 链式赋值
x = y = z = 0  # 所有变量都指向0# 解包赋值
nums = [1, 2, 3]
first, second, third = nums  # first=1, second=2, third=3# 带星号的解包(Python 3.0+)
a, *b, c = [1,2,3,4,5]  # a=1, b=[2,3,4], c=5

2  控制流语句

2.1  条件语句

# if-elif-else结构
age = 18
if age < 0:print("年龄无效")
elif age < 18:print("未成年")
else:print("成年")  # 执行此分支

2.2  循环语句

while循环:

count = 0
while count < 3:  # 循环条件print(f"当前计数: {count}")count += 1    # 修改循环变量
else:             # 可选else子句(正常结束时执行)print("循环结束")

for循环:

# 遍历可迭代对象
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:print(fruit.upper())  # 将每个水果转为大写# 遍历字典
person = {"name": "Alice", "age": 25}
for key, value in person.items():print(f"{key}: {value}")

2.3  流程控制语句

1. break语句:退出整个循环体

# break用于终止整个循环
for num in range(10):if num == 5:break    # 当num=5时立即退出整个循环体print(num)   # 输出0-4

2. continue语句:只跳过本次循环,还会进入下一次循环

# continue用于跳过当前这一次循环
for num in range(5):if num == 2:continue  # 跳过数字2print(num)    # 输出0,1,3,4

3. pass语句:用于占位,防止写代码时报语法错误

# pass当作占位符,不执行任何操作
def placeholder():pass  # 暂时不实现,只是为了保证语法正确if True:pass  # 占位,避免空代码块在编写代码时造成语法错误

3  函数相关语句

1. def语句:用于定义函数

# def用于定义函数
def greet(name):"""返回问候语"""  # 文档字符串return f"Hello, {name}!"print(greet("Alice"))  # 调用函数

2. return语句:用于返回函数的返回值

def add(a, b):return a + b  # return用于返回值并结束函数执行result = add(3, 5)  # result = 8

4  异常处理语句

1. try-except-else-finally

  • try:尝试执行一下这部分代码,可能会出错,所以叫“try”
  • except:根据try代码的执行结果来决定是否执行异常处理。常见的异常情形见下文
  • else:当try部分的代码执行没有发生异常时,会执行else部分的代码
  • finally:无论try部分的代码是否发生异常,这部分代码都会执行
try:# 可能引发异常的代码result = 10 / 0
except ZeroDivisionError:# 处理特定异常print("不能除以零!")
except (TypeError, ValueError) as e:# 处理多种异常print(f"类型或值错误: {e}")
except Exception as e:# 捕获所有其他异常print(f"发生未知错误: {e}")
else:# 没有异常发生时执行print("一切正常!")
finally:# 无论是否发生异常都会执行print("清理工作完成")

2. raise语句:用于主动抛出异常中断程序

# raise用于主动抛出异常
def validate_age(age):if age < 0:raise ValueError("年龄不能为负数")  # 抛出异常return agevalidate_age(-5)  # 触发ValueError

3. assert语句:是Python中的一个调试辅助工具,用于在程序中插入调试断言。它用于测试一个条件,如果条件为假,则会引发一个AssertionError异常。

# 调试断言
x = 5
assert x > 0, "x必须为正数"  # 条件为False时触发AssertionError

异常处理详解:Python入门(5):异常处理-CSDN博客


5  上下文管理语句(with)

# 自动资源管理
with open("file.txt", "r") as f:  # 自动关闭文件content = f.read()print(content)

6  模块导入语句

1. import语句:导入模块

import math                    # 导入整个模块
print(math.sqrt(16))           # 4.0from datetime import datetime  # 导入特定对象
now = datetime.now()

2. as别名:给导入的模块起一个别名,用别名来代替模块名,一方面可以避免不同模块之间出现重复的名称,另一方面可以简化代码

import numpy as np            # 使用别名
arr = np.array([1,2,3])

模块详解:Python入门(7):模块-CSDN博客


7  类定义语句

1. class语句:用于定义一个类

class Person:"""人类"""  # 类文档字符串def __init__(self, name):self.name = name  # 构造函数def greet(self):return f"Hello, I'm {self.name}"alice = Person("Alice")
print(alice.greet())  # Hello, I'm Alice

2. 类继承:通过在类的后面跟一个括号,继承其括号内的父类,也可以同时继承多个类,只需要用逗号隔开即可

class Student(Person):  # 继承Person类def __init__(self, name, major):super().__init__(name)  # 调用父类构造self.major = majordef study(self):return f"{self.name} is studying {self.major}"

类(面向对象编程)详解:Python入门(6):面向对象编程(OOP)-CSDN博客


8  作用域相关语句

1. global语句:声明全局变量

x = 10
def modify_global():global x  # 声明使用全局变量# 如果不加global,在函数内创建的变量就是局部变量,无法访问函数体外的变量x = 20modify_global()
print(x)  # 20

2. nonlocal语句:声明使用函数体外层的变量,非全局变量

def outer():x = 10def inner():nonlocal x  # 声明使用外层(非全局)变量x = 20inner()print(x)  # 20

9  其他重要语句

1. del语句:用于删除元素或对象

lst = [1,2,3]
del lst[1]       # 删除列表索引1的元素(lst变为[1,3])
del lst          # 删除整个列表对象

2. lambda表达式:用于创建匿名函数,多与其他函数结合使用

# 创建匿名函数
square = lambda x: x**2
print(square(5))  # 25

 lambda函数的使用详解见:Python扩展知识详解:lambda函数-CSDN博客 


小结

Python 的语句体系涵盖以下核心类型:

类别包含语句
基本操作赋值(=)、表达式、注释(#)
流程控制if/elif/else、for、while
循环控制break、continue、else(循环用)
函数相关def、return、yield、lambda
异常处理try/except/else/finally、raise
面向对象class、super、@装饰器
模块管理import、from...import、as
资源管理with...as
调试断言assert
作用域管理global、nonlocal

如果您觉得本文章对您有帮助,别忘了点赞、收藏加关注!!!更多干货内容将持续发布,您的支持就是作者更新最大的动力。本专栏将持续更新,有任何问题都可以在评论区讨论

相关文章:

Python入门(3):语句

目录 1 基本语句 1.1 表达式语句 1.2 赋值语句 2 控制流语句 2.1 条件语句 2.2 循环语句 while循环&#xff1a; for循环&#xff1a; 2.3 流程控制语句 1. break语句&#xff1a;退出整个循环体 2. continue语句&#xff1a;只跳过本次循环&#xff0c;还会进…...

运维之 Centos7 防火墙(CentOS 7 Firewall for Operations and Maintenance)

运维之 Centos7 防火墙 1.介绍 Linux CentOS 7 防火墙/端口设置&#xff1a; 基础概念&#xff1a; 防火墙是一种网络安全设备&#xff0c;用于监控和控制网络流量&#xff0c;以保护计算机系统免受未经授权的访问和恶意攻击。Linux CentOS 7操作系统自带了一个名为iptables的…...

开发一个小程序需要多久时间?小程序软件开发周期

开发一个小程序所需时间受多种因素影响&#xff0c;以下为你详细列举&#xff1a; 一、需求复杂度。若只是简单展示类小程序&#xff0c;如企业宣传、产品介绍&#xff0c;功能单一&#xff0c;大概 1 - 2 周可完成。若涉及复杂交互&#xff0c;像电商小程序&#xff0c;涵盖商…...

【数据结构篇】算法征途:穿越时间复杂度与空间复杂度的迷雾森林

文章目录 【数据结构篇】算法征途&#xff1a;穿越时间复杂度与空间复杂度的迷雾森林 一、 什么是算法1. 算法的定义1.1 算法的五个特征1.2 好算法的特质 2. 时间复杂度3. 空间复杂度 【数据结构篇】算法征途&#xff1a;穿越时间复杂度与空间复杂度的迷雾森林 &#x1f4ac;欢…...

新增帧能耗指标|UWA Gears V1.0.9

UWA Gears 是UWA最新发布的无SDK性能分析工具。针对移动平台&#xff0c;提供了实时监测和截帧分析功能&#xff0c;帮助您精准定位性能热点&#xff0c;提升应用的整体表现。 本次版本更新主要新增帧能耗指标&#xff0c;帮助大家对每一帧的能耗进行精准监控&#xff0c;快速…...

蓝桥杯嵌入式16届———LCD模块

LCD有官方给我们提供的库&#xff0c;我们使用其非常简单&#xff0c;唯一要注意的就是LCD和LED的引脚冲突。 引脚状况 STM32CubeMX 端口配置 使能 比赛给的选手 资源数据包中有以下三个文件&#xff0c;&#xff08;除去led相关的&#xff09;&#xff0c;将他们复制到自己…...

Ubuntu服务器挂载之前的数据硬盘

这里假设在挂载硬盘之前&#xff0c;您的硬盘从之前的服务器上正确卸载下来。请注意&#xff0c;以下任何操作不当都有可能导致硬盘数据丢失或损坏&#xff0c;如果您的数据非常重要&#xff0c;请及时备份。 1. 确认硬盘分区信息 使用以下命令查看磁盘信息&#xff0c;找到要…...

CMake在Windows环境下Visual Studio Code的使用

1&#xff0c;安装下载 地址&#xff1a;Visual Studio Code - Code Editing. Redefined 双击安装 选择安装路径 可勾选微软的AI工具 2&#xff0c;环境介绍 2.1 &#xff0c;界面介绍 2.2中文包的安装 下载中文简体 汉化后的界面 2.3 配置C/C环境 VSCode安装好之后&#xf…...

注意力机制在大语言模型中的原理与实现总结

注意力机制在大语言模型中的原理与实现总结 1. 章节介绍 在大语言模型的学习中&#xff0c;理解注意力机制至关重要。本章节旨在深入剖析注意力机制的原理及其在大语言模型中的应用&#xff0c;为构建和优化大语言模型提供理论与实践基础。通过回顾神经网络基础及传统架构的局…...

大学生机器人比赛实战(二)软件篇

大学生机器人比赛深度开发指南&#xff1a;核心技术详解与实战代码解析 作为参加过多次机器人竞赛的选手&#xff0c;我将详细剖析比赛中的核心技术实现&#xff0c;包括软件架构设计、实时系统应用、各大赛事代码特点以及性能优化技巧。本指南将帮助你从代码层面深入理解如何…...

AI大模型从0到1记录学习 day13

第 13 章 Python高级语法 13.1 浅拷贝与深拷贝  直接赋值&#xff1a;对象的引用&#xff08;别名&#xff09;&#xff0c;不产生拷贝。  浅拷贝&#xff1a;拷贝父对象&#xff0c;不会拷贝对象的内部的子对象。拷贝后只有第一层是独立的。  深拷贝&#xff1a;完全拷贝…...

大模型学习三:DeepSeek R1蒸馏模型组ollama调用流程

一、说明 目前DeepSeek R1及其蒸馏模型均支持使用ollama进行调用&#xff0c;可以在模型主页查看调用情况 deepseek-r1https://ollama.com/library/deepseek-r1 显存需求 &#xff0c;我们显存是16G&#xff0c;可以玩好几个 二、以14B模型演示 1、安装ollama curl -fsSL htt…...

RAGFlow部署与使用介绍-深度文档理解和检索增强生成

ragflow部署与使用教程-智能文档处理与知识管理的创新引擎 1. ragflow简介 ​ RAGFlow作为新一代智能文档处理平台&#xff0c;深度融合检索增强生成&#xff08;RAG&#xff09;技术与自动化工作流引擎&#xff0c;为企业级知识管理提供全栈解决方案。通过结合多模态解析、语…...

一文读懂 UML:基础概念与体系框架

UML 图是一种标准化的建模语言&#xff0c;在软件开发和系统设计等领域有着广泛的应用。以下是对 UML 图各类图的详细介绍&#xff1a; 1.用例图 定义&#xff1a;用例图是从用户角度描述系统功能的模型图&#xff0c;展现了系统的参与者与用例之间的关系。作用&#xff1a;帮…...

【AI赋能:58招聘数据的深度剖析之旅】

影刀出鞘&#xff0c;抓取数据 在当今数字化时代&#xff0c;数据分析已成为企业决策和发展的关键驱动力。而获取高质量的数据则是数据分析的首要任务。在这个信息爆炸的时代&#xff0c;网络上蕴含着海量的数据&#xff0c;其中招聘网站的数据对于人力资源分析、市场趋势研究…...

几何法证明卡特兰数_栈混洗

模型&#xff1a; 考虑从坐标原点 (0, 0) 到点 (n, n) 的路径&#xff0c;要求路径只能向右&#xff08;x 方向&#xff09;或向上&#xff08;y 方向&#xff09;移动&#xff0c;并且路径不能越过直线 y x&#xff08;即始终满足 y< x &#xff09;。这样的路径数量就是…...

Kafka的安装与使用(windows下python使用等)

一、下载 可以去官网下载&#xff1a;https://kafka.apache.org/downloads 版本可选择&#xff0c;建议下载比较新的&#xff0c;新版本里面自带zookeeper 二、安装 创建一个目录&#xff0c;此处是D:\kafka&#xff0c;将文件放进去解压 如果文件后缀是gz&#xff0c;解压…...

DataPermissionInterceptor源码解读

原文首发在我的博客&#xff1a;https://blog.liuzijian.com/post/mybatis-plus-source-data-permission-interceptor.html 目录 一、概述二、源码解读2.1 beforeQuery2.2 beforePrepare2.3 processSelect2.4 setWhere2.5 processUpdate2.6 processDelete2.7 getUpdateOrDelete…...

大模型中的参数规模与显卡匹配

在大模型训练和推理中&#xff0c;显卡&#xff08;GPU/TPU&#xff09;的选择与模型参数量紧密相关&#xff0c;需综合考虑显存、计算能力和成本。以下是不同规模模型与硬件的匹配关系及优化策略&#xff1a; 一、参数规模与显卡匹配参考表 模型参数量训练阶段推荐显卡推理阶…...

数据结构初阶: 顺序表的增删查改

顺序表 概念 顺序表是⽤⼀段物理地址连续的存储单元依次存储数据元素的线性结构&#xff0c;⼀般情况下采⽤数组存储。如图1&#xff1a; 顺序表和数组有什么区别&#xff1f; 顺序表的底层是用数组实现的&#xff0c;是对数组的封装&#xff0c;实现了增删查改等接口。 分…...

Spring Boot项目中策略模式的应用与实现

前言 在Spring Boot项目中&#xff0c;策略模式是一种非常重要的设计模式&#xff0c;它能够让我们定义一系列算法&#xff0c;并使它们可以互相替换。 策略模式通过将算法封装到独立的类中&#xff0c;从而使得代码中的算法可以独立于使用它的客户端变化。 这对于某些需求频…...

【机器学习中的基本术语:特征、样本、训练集、测试集、监督/无监督学习】

机器学习基本术语详解 1. 特征&#xff08;Feature&#xff09; 定义&#xff1a;数据的属性或变量&#xff0c;用于描述样本的某个方面。作用&#xff1a;模型通过学习特征与目标之间的关系进行预测。示例&#xff1a; 预测房价时&#xff0c;特征可以是 面积、地段、房龄。…...

MySQL全链路指南

目录 前言 第一章 MySQL基础入门 1.1 MySQL简介与安装 1.2 数据库基本操作 1.3 表结构与数据类型 第二章 SQL语言深度解析 2.1 DDL&#xff08;数据定义语言&#xff09; 2.2 DML&#xff08;数据操作语言&#xff09; 2.3 DQL&#xff08;数据查询语言&#xff09; 2…...

System.arraycopy()

在 Java 编程中&#xff0c;数组是一种常用的数据结构&#xff0c;用于存储相同类型的元素集合。在处理数组时&#xff0c;经常需要进行数组复制操作&#xff0c;例如将一个数组的部分或全部元素复制到另一个数组中。System.arraycopy() 方法是 Java 提供的一个高效的数组复制工…...

详解AI采集框架Crawl4AI,打造智能网络爬虫

大家好&#xff0c;Crawl4AI作为开源Python库&#xff0c;专门用来简化网页爬取和数据提取的工作。它不仅功能强大、灵活&#xff0c;而且全异步的设计让处理速度更快&#xff0c;稳定性更好。无论是构建AI项目还是提升语言模型的性能&#xff0c;Crawl4AI都能帮您简化工作流程…...

【爬虫开发】爬虫开发从0到1全知识教程第14篇:scrapy爬虫框架,介绍【附代码文档】

本教程的知识点为&#xff1a;爬虫概要 爬虫基础 爬虫概述 知识点&#xff1a; 1. 爬虫的概念 requests模块 requests模块 知识点&#xff1a; 1. requests模块介绍 1.1 requests模块的作用&#xff1a; 数据提取概要 数据提取概述 知识点 1. 响应内容的分类 知识点&#xff1a…...

MySQL索引原理:从B+树手绘到EXPLAIN

最近在学后端&#xff0c;学到了这里做个记录 一、为什么索引像书的目录&#xff1f; 类比&#xff1a;500页的技术书籍 vs 10页的目录缺点&#xff1a;全表扫描就像逐页翻找内容优点&#xff1a;索引将查询速度从O(n)提升到O(log n) 二、B树手绘课堂 1. 结构解剖&#xff0…...

SQLark:一款国产免费数据库开发和管理工具

SQLark&#xff08;百灵连接&#xff09;是一款面向信创应用开发者的数据库开发和管理工具&#xff0c;用于快速查询、创建和管理不同类型的数据库系统&#xff0c;目前可以支持达梦数据库、Oracle 以及 MySQL。 对象管理 SQLark 支持丰富的数据库对象管理功能&#xff0c;包括…...

防爆对讲机VS非防爆对讲机,如何选择?

在通信设备的广阔市场中&#xff0c;对讲机以其高效、便捷的特点&#xff0c;成为众多行业不可或缺的沟通工具。而面对防爆对讲机与非防爆对讲机&#xff0c;许多用户常常陷入选择困境。究竟该如何抉择&#xff0c;且听我为您细细道来。 防爆对讲机&#xff0c;专为危险作业场…...

微信小程序开发:开发实践

微信小程序开发实践研究 摘要 随着移动互联网的迅猛发展&#xff0c;微信小程序作为一种轻量化、无需安装的应用形式&#xff0c;逐渐成为开发者和用户的首选。本文以“个人名片”小程序为例&#xff0c;详细阐述了微信小程序的开发流程&#xff0c;包括需求分析、项目规划、…...