Python 语法与数据类型详解
Python 语法与数据类型详解
Python 以其简洁易读的语法和丰富多样的数据类型在编程领域占据重要地位。深入理解 Python 的语法和数据类型是掌握这门语言的关键。
一、Python 语法概述
(一)缩进规则
Python 独特的缩进规则是其语法的重要特征之一。与其他编程语言不同,Python 依靠缩进来表示代码的层次结构,通常使用四个空格作为一个缩进级别。
例如:
if True:# 如果条件为真,则执行这里的代码print("This is inside the if statement.")print("Still inside.")
else:# 如果条件为假,则执行这里的代码print("This is inside the else statement.")
print("Outside the if-else block.")
在这个例子中,通过缩进清晰地划分了 if 语句的代码块。如果缩进不正确,Python 解释器会报错。
(二)注释
注释在代码中起着至关重要的作用,它可以帮助开发者理解代码的功能和逻辑。Python 支持单行注释和多行注释。
- 单行注释以
#开头,后面的内容将被解释器忽略。
例如:# 这是一个单行注释。 - 多行注释使用三个单引号
'''或三个双引号"""将注释内容括起来。
例如:''' 这是一个多行注释。 可以跨越多行。 ''' """ 这也是一个多行注释。 """
注释应该简洁明了,能够准确地描述代码的功能和目的。在编写复杂的代码时,合理使用注释可以提高代码的可读性和可维护性。
(三)变量命名规则
在 Python 中,变量命名需要遵循一定的规则:
- 变量名只能由字母、数字和下划线组成。
- 变量名不能以数字开头。
- 变量名是区分大小写的。
例如:my_variable、_private_variable、variable123都是合法的变量名,而123variable是非法的。
变量名应该具有描述性,能够清晰地表达变量的用途。避免使用过于简单或模糊的变量名,以免造成代码的可读性降低。
二、Python 数据类型
(一)整数(int)
整数类型用于表示没有小数部分的数值。Python 的整数可以是任意大小,不受计算机内存限制。
例如:
a = 10
b = -5
c = 0
# 整数的加法运算
print(a + b) # 输出:5
# 整数的乘法运算
print(a * c) # 输出:0
整数可以进行加、减、乘、除、取余等运算。在 Python 中,整数的运算非常灵活,可以处理很大范围的数值。
(二)浮点数(float)
浮点数用于表示带有小数部分的数值。
例如:
d = 3.14
e = 2.5
# 浮点数的除法运算
print(d / e) # 输出:1.256
需要注意的是,由于计算机存储浮点数的方式,可能会存在精度误差。在进行浮点数运算时,要注意精度问题,避免出现意外的结果。
(三)字符串(str)
字符串是由字符组成的序列,可以用单引号、双引号或三引号括起来。
例如:
name = "Alice"
greeting = 'Hello, ' + name
# 输出字符串
print(greeting) # 输出:Hello, Alice
long_text = """这是一个多行字符串。
可以包含多行文本。"""
# 输出多行字符串
print(long_text)
字符串可以进行拼接、切片、查找等操作。字符串方法丰富多样,例如 upper() 方法可以将字符串转换为大写,lower() 方法可以将字符串转换为小写,find() 方法可以查找子字符串在字符串中的位置等。
(四)列表(list)
列表是一种可变的有序集合,可以包含不同类型的元素。
例如:
my_list = [1, "two", 3.0, True]
# 访问列表中的元素
print(my_list[1]) # 输出:two
my_list.append("five")
# 输出列表
print(my_list) # 输出:[1, 'two', 3.0, True, 'five']
列表可以通过索引访问元素,也可以进行添加、删除、修改等操作。列表推导式是一种简洁的方式来创建和操作列表,例如 [x**2 for x in range(10)] 可以创建一个包含 0 到 9 的平方的列表。
(五)元组(tuple)
元组是一种不可变的有序集合,一旦创建,其元素不能被修改。
例如:
my_tuple = (1, 2, 3)
# 访问元组中的元素
print(my_tuple[0]) # 输出:1
# 尝试修改元组中的元素会引发错误
# my_tuple[0] = 4 # 会报错
元组通常用于存储不可变的数据集合。元组可以作为函数的返回值,也可以在需要不可变集合的地方使用。
(六)字典(dict)
字典是一种无序的键值对集合,通过键来访问对应的值。
例如:
my_dict = {'name': 'Bob', 'age': 30}
# 通过键访问值
print(my_dict['name']) # 输出:Bob
my_dict['city'] = 'New York'
# 输出字典
print(my_dict) # 输出:{'name': 'Bob', 'age': 30, 'city': 'New York'}
字典的键必须是不可变类型,如字符串、整数或元组。字典可以通过键来添加、删除和修改值。字典推导式也是一种方便的方式来创建字典,例如 {x: x**2 for x in range(5)} 可以创建一个包含 0 到 4 的平方的字典。
(七)集合(set)
集合是一种无序的、不包含重复元素的集合。
例如:
my_set = {1, 2, 3, 4}
# 添加元素到集合
my_set.add(5)
# 输出集合
print(my_set) # 输出:{1, 2, 3, 4, 5}
集合可以进行并集、交集、差集等操作。集合推导式也可以用于创建集合,例如 {x for x in range(10) if x % 2 == 0} 可以创建一个包含 0 到 9 中偶数的集合。
三、使用注意事项
(一)动态类型与类型推断
Python 是一种动态类型语言,这意味着变量的类型在运行时确定,并且可以随时改变。
例如:
x = 5
# 此时 x 的类型是整数
print(type(x)) # 输出:<class 'int'>
x = "Hello"
# 现在 x 的类型变为字符串
print(type(x)) # 输出:<class 'str'>
虽然这种特性使得编程更加灵活,但也可能导致一些潜在的错误。在使用变量时,要确保对其类型有正确的理解,避免出现类型不匹配的错误。
(二)字符串的不可变性
字符串在 Python 中是不可变的,不能直接修改字符串中的某个字符。如果需要修改字符串,需要创建一个新的字符串。
例如:
s = "Hello"
# 尝试直接修改字符串会引发错误
# s[0] = "h" # 会报错
s = "h" + s[1:]
# 创建了一个新的字符串
print(s) # 输出:hello
在处理大量字符串操作时,要注意字符串的不可变性可能会带来的性能问题。可以考虑使用字符串方法或其他数据结构来提高效率。
(三)列表的可变性与引用
列表是可变的,这意味着可以修改、添加或删除其中的元素。但在使用列表时,要注意引用的问题。
例如:
list1 = [1, 2, 3]
list2 = list1
list2.append(4)
# list2 和 list1 指向同一个列表对象,所以对 list2 的修改也影响了 list1
print(list1) # 输出:[1, 2, 3, 4]
如果需要创建一个独立的副本,可以使用 list.copy() 方法或切片操作。
(四)字典的键类型限制
字典的键必须是不可变类型,如字符串、整数或元组(其中包含的元素也必须是不可变类型)。而列表等可变类型不能作为字典的键。
例如:
my_dict = {1: "one", "two": 2}
# 列表不能作为字典的键
# my_dict[[1, 2]] = "invalid" # 会报错
my_dict[(1, 2)] = "valid"
# 元组可以作为字典的键(如果元组中的元素都是不可变类型)
在使用字典时,要注意键的类型限制,避免出现错误。
(五)集合的操作注意事项
集合的操作是无序的,并且不包含重复元素。在进行集合操作时,要注意结果的不确定性。
例如:
set1 = {1, 2, 3}
set2 = {2, 3, 4}
# 并集操作
print(set1 | set2) # 输出:{1, 2, 3, 4}
# 交集操作
print(set1 & set2) # 输出:{2, 3}
# 差集操作
print(set1 - set2) # 输出:{1}
在使用集合进行复杂的逻辑操作时,要仔细考虑集合的性质和操作的结果。
四、总结
Python 的语法简洁易读,数据类型丰富多样,为开发者提供了强大的编程工具。理解 Python 的语法和数据类型是掌握这门语言的基础,同时,注意使用时的各种注意事项可以避免出现错误,提高代码的质量和效率。通过不断地实践和探索,开发者可以更加熟练地运用 Python 的语法和数据类型,编写出高效、优雅的代码。
无论是进行数据分析、Web 开发、机器学习还是其他领域的编程,Python 都是一个值得学习和掌握的语言。希望本文能够帮助读者更好地理解 Python 的语法和数据类型,为进一步的学习和实践打下坚实的基础。
相关文章:
Python 语法与数据类型详解
Python 语法与数据类型详解 Python 以其简洁易读的语法和丰富多样的数据类型在编程领域占据重要地位。深入理解 Python 的语法和数据类型是掌握这门语言的关键。 一、Python 语法概述 (一)缩进规则 Python 独特的缩进规则是其语法的重要特征之一。与…...
LeetCode题练习与总结:扁平化嵌套列表迭代器--341
一、题目描述 给你一个嵌套的整数列表 nestedList 。每个元素要么是一个整数,要么是一个列表;该列表的元素也可能是整数或者是其他列表。请你实现一个迭代器将其扁平化,使之能够遍历这个列表中的所有整数。 实现扁平迭代器类 NestedIterato…...
51单片机快速入门之 AD(模数) DA(数模) 转换 2024/10/25
51单片机快速入门之 AD(模数) DA(数模) 转换 2024/10/25 声明:本文图片来源于网络 A模拟信号特点: 电压或者电流 缓慢上升 随着时间连续缓慢上升或下降 D数字信号特点:电压或者电流 保持一段时间的高/低电平 状态 / 突变 (高电压瞬间低电压) 数字电路中 通常将0-1v电压称…...
Typora 、 Minio and PicGo 图床搭建
流程介绍 本地安装Typora笔记工具拥有一台装有docker的服务器配置minio云图床管理控制页面下载PicGo上传工具服务器Docker环境搭建—Ubuntu系统 删除旧docker的所有依赖(非root用户) # 删除docker及安装时自动安装的所有包 sudo apt-get autoremove docker docker-ce docker…...
【计网】UDP Echo Server与Client实战:从零开始构建简单通信回显程序
目录 前言: 1.实现udpserver类 1.1.创建udp socket 套接字 --- 必须要做的 socket()讲解 代码实现:编辑 代码讲解: 1.2.填充sockaddr_in结构 代码实现: 代码解析: 1.3.bind sockfd和…...
微服务网关Zuul
一、Zuul简介 Zuul是Netflix开源的微服务网关,包含对请求的路由和过滤两个主要功能。 1)路由功能:负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础。 2)过滤功能:负责对请求的过程…...
BuildCTF线上赛WP
Build::CTF flag不到啊战队--WP 萌新战队,还请多多指教~ 目录 Build::CTF flag不到啊战队--WP Web ez!http find-the-id Pwn 我要成为沙威玛传奇 Misc what is this? 一念愚即般若绝,一念智即般若生 别真给我开盒了哥 四妹,你听…...
《使用Gin框架构建分布式应用》阅读笔记:p143-p207
《用Gin框架构建分布式应用》学习第10天,p143-p207总结,总计65页。 一、技术总结 1.auth0 本人实际工作中未遇到过,mark一下,参考:https://auth0.com/。 2.使用template (1)c.File() (2)router.Static() (3)rou…...
华为网络管理配置实例
目录 组网需求 数据规划 配置思路 操作步骤 结果验证 配置脚本 管理员可以通过eSight网管系统对FW进行监控和管理,接收FW的告警。 组网需求 如图1所示,某企业在网络边界处部署了FW作为安全网关,并部署了eSight网管系统对网络设备进行集中…...
大语言模型数据处理方法(基于llama模型)
文章目录 前言一、基于huggingface的DataCollatorForSeq2Seq方法解读1、DataCollatorForSeq2Seq方法2、batch最长序列填充3、指定长度填充二、构建大语言模型数据加工模块1、数据读取2、数据加工1、数据格式2、预训练(pretrain)数据加工3、微调(sft)数据加工①、sft数据加工…...
爱奇艺大数据多 AZ 统一调度架构
01# 导语 爱奇艺大数据技术广泛应用于运营决策、用户增长、广告分发、视频推荐、搜索、会员营销等场景,为公司的业务增长和用户体验提供了重要的数据驱动引擎。 多年来,随着公司业务的发展,爱奇艺大数据平台已积累了海量数据,这…...
【C++篇】栈的层叠与队列的流动:在 STL 的韵律中探寻数据结构的优雅之舞
文章目录 C 栈与队列详解:基础与进阶应用前言第一章:栈的介绍与使用1.1 栈的介绍1.2 栈的使用1.2.1 最小栈1.2.2 示例与输出 1.3 栈的模拟实现 第二章:队列的介绍与使用2.1 队列的介绍2.2 队列的使用2.2.1 示例与输出 2.3 队列的模拟实现2.3.…...
使用 Flask 实现简单的登录注册功能
目录 1. 引言 2. 环境准备 3. 数据库设置 4. Flask 应用基本配置 5. 实现用户注册 6. 实现用户登录 7. 路由配置 8. 创建前端页面 9. 结论 1. 引言 在这篇文章中,我们将使用 Flask 框架创建一个简单的登录和注册系统。Flask 是一个轻量级的 Python Web 框架…...
计算机毕业设计Python+大模型微博情感分析 微博舆情预测 微博爬虫 微博大数据 舆情分析系统 大数据毕业设计 NLP文本分类 机器学习 深度学习 AI
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 《Python大模型微博情感分析…...
CTF--Misc题型小结
(萌新笔记,多多关照,不足之处请及时提出。) 不定时更新~ 目录 密码学相关 文件类型判断 file命令 文件头类型 strings读取 隐写术 尺寸修改 文件头等缺失 EXIF隐写 thumbnail 隐写 文件分离&提取 binwalk foremo…...
深度学习系列——RNN/LSTM/GRU,seq2seq/attention机制
1、RNN/LSTM/GRU可参考: https://zhuanlan.zhihu.com/p/636756912 (1)对于这里面RNN的表示中,使用了输入x和h的拼接描述,其他公式中也是如此 (2)各符号图含义如下 2、关于RNN细节,…...
通过call指令来学习指令摘要表的细节
E8 cw cw 表示E8后面跟随2 字节 (什么数不知道) rel16 指在与指令同一代码段内的相对地址偏移 D ,指向Instruction Operand Encoding 表中的D列, 他告诉我们 操作数1 是一个0FFSET N.S. 在64位模式下,某些指令需要使用“地址覆盖前缀”(address over…...
10分钟使用Strapi(无头CMS)生成基于Node.js的API接口,告别繁琐开发,保姆级教程,持续更新中。
一、什么是Strapi? Strapi 是一个开源的无头(headless) CMS,开发者可以自由选择他们喜欢的开发工具和框架,内容编辑人员使用自有的应用程序来管理和分发他们的内容。得益于插件系统,Strapi 是一个灵活的 C…...
创建插件 DLL 项目
Step 1: 创建插件 DLL 项目 在 Visual Studio 中创建一个新的 DLL 项目,并添加以下文件和代码。 头文件:CShapeBase.h cpp 复制代码 #pragma once #include <afxwin.h> // MFC 必需头文件 #include <string> #include <vector> #i…...
OpenCV双目相机外参标定C++
基于OpenCV库实现双目测量系统外参标定过程。通过分析双目测量系统左右相机拍摄的棋盘格标定板图像,包括角点检测、立体标定、立体校正和畸变校正的步骤,获取左右相机的相对位置关系和姿态。 a.检测每张图像中的棋盘格角点,并进行亚像素级精…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...
代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...
在 Spring Boot 中使用 JSP
jsp? 好多年没用了。重新整一下 还费了点时间,记录一下。 项目结构: pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...
xmind转换为markdown
文章目录 解锁思维导图新姿势:将XMind转为结构化Markdown 一、认识Xmind结构二、核心转换流程详解1.解压XMind文件(ZIP处理)2.解析JSON数据结构3:递归转换树形结构4:Markdown层级生成逻辑 三、完整代码 解锁思维导图新…...
02.运算符
目录 什么是运算符 算术运算符 1.基本四则运算符 2.增量运算符 3.自增/自减运算符 关系运算符 逻辑运算符 &&:逻辑与 ||:逻辑或 !:逻辑非 短路求值 位运算符 按位与&: 按位或 | 按位取反~ …...
