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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/75480.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浅浅尝试Numpy的函数s:

1.numpy.empty: numpy.empty方法用来创建一个指定形状&#xff08;shape&#xff09;&#xff0c;数据类型&#xff08;dtype&#xff09;且未被初始化的数组&#xff1a; numpy.empty(shape,dtype float,order C) 参数说明&#xff1a; shape:数组形状。 dtype:数据类型&am…

【C++】nlohmann::json 配置加载技术实践:从基础到高级应用

一、nlohmann::json 库概况与核心特性 nlohmann::json 是 C 社区最受欢迎的 JSON 库之一&#xff0c;其设计理念简洁即美&#xff0c;通过单头文件实现完整的 JSON 解析、序列化和操作功能。 1.1 基本特性 nlohmann::json是一个现代C编写的开源JSON库&#xff0c;采用MIT协议…

运算放大器(四)滤波电路(滤波器)

1.滤波电路概述 滤波电路简称滤波器&#xff0c;是一种能使某一部分频率的信号顺利通过&#xff0c;而使其它频率的信号被大幅衰减的电路。 2.滤波器的分类 &#xff08;1&#xff09;低通滤波器&#xff1a;低频信号能够通过&#xff0c;而高频信号不能通过的滤波器称为低通…

mac如何将jar包上传到maven中央仓库中

mac如何将jar包上传到maven中央仓库中 准备sonatype账号 sonatype官网&#xff1a;https://central.sonatype.com/ 建议使用GitHub账号注册&#xff0c;方便 之后选择查看用户信息 选择此选项获取用户token的username与password&#xff0c;建议提前复制一下谨防丢失 之后…

【通知】STM32MP157驱动开发课程全新升级!零基础入门嵌入式Linux驱动,掌握底层开发核心技能!

在嵌入式Linux系统开发中&#xff0c;驱动程序开发是一项关键技术&#xff0c;它作为硬件与软件之间的桥梁&#xff0c;实现了操作系统对硬件设备的控制。相较于嵌入式Linux应用开发&#xff0c;驱动开发由于涉及底层硬件且抽象程度较高&#xff0c;往往让初学者感到难度较大。…

高通将进军英国芯片 IP 业务 Alphawave

高通已确认有意收购高速连接模块设计公司 Alphawave Semi&#xff0c;此举可能会导致又一家英国大型科技公司被外国企业收购。 这家总部位于圣地亚哥的巨头已向伦敦证券交易所提交了一份声明&#xff0c;表示正在与 Alphawave 进行谈判&#xff0c;后者生产用于连接数据中心和…

多模态模型:专栏概要与内容目录

文章目录 多模态模型&#x1f4da; 核心内容模块Stable Diffusion基础教程Stable Diffusion原理深度解析部署与环境配置其他多模态模型实践 多模态模型 &#x1f525; 专栏简介 | 解锁AI绘画与多模态模型的技术奥秘 探索多模态AI技术&#xff0c;掌握Stable Diffusion等流行框…

Vue3 + Element Plus + AntV X6 实现拖拽树组件

Vue3 Element Plus AntV X6 实现拖拽树组件 介绍 在本篇文章中&#xff0c;我们将介绍如何使用 Vue 3 和 Element Plus 结合 antv/x6 实现树形结构的拖拽功能。用户可以将树节点拖拽到图形区域&#xff0c;自动创建相应的节点。我们将会通过简单的示例来一步步讲解实现过程…

cursor的.cursorrules详解

文章目录 1. 文件位置与作用2. 基本语法规则3. 常用规则类型与示例3.1 忽略文件/目录3.2 限制代码生成范围3.3 自定义补全建议3.4 安全规则 4. 高级用法4.1 条件规则4.2 正则表达式匹配4.3 继承规则 5. 示例文件6. 注意事项 Cursor 是一款基于 AI 的智能代码编辑器&#xff0c;…

黑马点评项目总结

redis的key设计规范 推荐规范: 业务前缀数据名称唯一id 比如表示文章点赞的用户集合: blog:like:${blogId} 刷新token有效期(拦截器实现) 使用双重拦截器解耦登录鉴权拦截和刷新有效期 RefreshTokenInterceptor: 拦截所有请求 只负责token续期 没有token则放行 Component p…

Java 大数据在智能安防入侵检测系统中的多源数据融合与分析技术(171)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…

ARM架构+CODESYS:解锁嵌入式边缘计算的实时控制新范式

工业自动化、物联网和边缘计算的快速发展&#xff0c;ARM架构的边缘计算机凭借其低功耗、高性能和灵活扩展性&#xff0c;成为智能制造与物联网应用的核心载体。这类设备不仅支持Node-RED等可视化数据流工具&#xff0c;还能运行CODESYS工业控制平台&#xff0c;满足复杂场景下…

配置 UOS/deepin 系统远程桌面,实现多台电脑协同办公

由于开发工作的需要&#xff0c;我的办公桌上目前有多台电脑。一台是 i7 配置的电脑&#xff0c;运行 UOS V20 系统&#xff0c;作为主力办公电脑&#xff0c;负责处理企业微信、OA 等任务&#xff0c;并偶尔进行代码编译和验证软件在 UOS V20 系统下的兼容性&#xff1b;另一台…

1g内存电脑sqlite能支持多少并发

1. SQLite的并发机制 写操作&#xff1a;默认使用串行锁&#xff0c;同一时间仅允许一个写操作&#xff08;其他写/读需等待&#xff09;。读操作&#xff1a;支持多并发读取&#xff0c;但受内存、磁盘I/O和配置限制。 2. 关键限制因素 &#xff08;1&#xff09;内存资源 …

时间数据的可视化

目录 【实验目的】 【实验原理】 【实验环境】 【实验步骤】 【实验总结】 【实验目的】 掌握时间数据在大数据中的应用 掌握时间数据可视化图表表示 利用Python程序实现堆叠柱形图可视化 【实验原理】 时间是一个非常重要的维度与属性。时间序列数据存在于社会的各个…

Linux红帽:RHCSA认证知识讲解(十)使用 tar创建归档和压缩文件

Linux红帽&#xff1a;RHCSA认证知识讲解&#xff08;十&#xff09;使用 tar创建归档和压缩文件 前言一、归档与压缩的基本概念1.1 归档与压缩的区别 二、使用tar创建归档文件2.1 tar命令格式2.2 示例操作 三、使用tar进行压缩3.2 命令格式3.3 示例操作 前言 在红帽 Linux 系…

制造业数字化转型:智能招聘系统破解蓝领用工匹配难题?

近年来&#xff0c;中国制造业面临一个看似矛盾的现象&#xff1a;一边是“用工荒”频发&#xff0c;工厂招不到足够的技术工人&#xff1b;另一边是蓝领求职者抱怨“找工作难”&#xff0c;岗位信息不对称、匹配效率低下。据《数智化平台推动高质量充分就业报告2024》统计&…

解决网络异常 repo sync 中断下载的问题

在使用repo sync下载代码的时候&#xff0c;经常由于网络不稳定等因素导致下载失败&#xff0c;采用循环不断下载的方法&#xff0c;脚步如下&#xff1a; vim ~/bin/repo_sync #!/bin/bash trap echo "ctrlc force exit"; exit SIGINT ALL_PKGgrep project .repo/m…

《MyBatis CRUD实战与核心配置详解:从基础操作到高级应用》

一、使用MyBatis完成CRUD 准备工作 创建module&#xff08;Maven的普通Java模块&#xff09;&#xff1a;mybatis-002-crud pom.xml 打包方式jar 依赖&#xff1a; mybatis依赖 mysql驱动依赖 junit依赖 logback依赖 mybatis-config.xml放在类的根路径下 CarMapper.xm…

Java语言如何用AI实现文件报告的自动质检?

文件报告的质量直接影响工作效率和决策的准确性&#xff0c;然而&#xff0c;传统的文件质检方式往往依赖人工审核&#xff0c;效率低下且容易出错。那么&#xff0c;如何利用AI技术实现文件报告的自动化质检呢&#xff1f; 问题1&#xff1a;质检的目标是什么&#xff1f; 文…