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.检测每张图像中的棋盘格角点,并进行亚像素级精…...
【GESP】C++一级练习BCQM3055,4位数间隔输出
一级知识点取余、整除运算和格式化输出知识点应用。其实也可以用string去处理,那就属于GESP三级的知识点范畴了,孩子暂未涉及。 题目题解详见:https://www.coderli.com/gesp-1-bcqm3055/ https://www.coderli.com/gesp-1-bcqm3055/https://w…...
纯血鸿蒙的最难时刻才开始
关注卢松松,会经常给你分享一些我的经验和观点。 纯血鸿蒙(HarmonyOS NEXT)也正式发布了,绝对是一个历史性时刻,但最难的鸿蒙第二个阶段,也就是生态圈的建设,才刚刚开始。 目前,我劝你现在不要升级到鸿蒙…...
记一个mysql的坑
数据库表user, 存在一个name字段,字段为varchar类型 现在user表有这么两条记录: idnameageclass1NULL18一班2lisi20二班 假如我根据下面这一条件去更新,更新成功数据行显示为0 update user set age 19 where age 18 and class “一班”…...
Java中的设计模式:单例模式详解
摘要 单例模式(Singleton Pattern)是Java中最常用的设计模式之一,属于创建型模式。它的主要目的是确保一个类在系统中只有一个实例,并提供一个全局访问点来访问该实例。 1. 单例模式的定义 单例模式确保一个类只有一个实例&…...
NanoTrack原理与转tensorrt推理
文章目录 前言一、NanoTrack 工作原理二、运行demo与转换tensorrt模型2.1 运行pt模型demo2.2 转onnx模型2.3 转tensorrt模型2.4 运行trt模型推理 三、推理速度对比总结 前言 NanoTrack 是一种轻量级且高效的目标跟踪算法,基于Siamese网络架构,旨在在资源…...
YOLO11改进 | 卷积模块 | 卷积模块替换为选择性内核SKConv【附完整代码一键运行】
秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 本文给大家带来的教程是将YOLO11的卷积替…...
CentOS进入单用户模式进行密码重置
一、单用户模式介绍 单用户模式是一种特殊的启动模式,主要用于系统维护和故障排除。在单用户模式下,系统以最小化的状态启动,只有最基本的系统服务会被加载,通常只有root用户可以登录。这种模式提供了对系统的完全控制࿰…...
bitpoke- mysql-operator cluster
sidecar版本只支持到8.0.35,35可以支持到mysql8.0.35 . 默认镜像是5.7的。需要自己打sidecar的镜像: # Docker image for sidecar containers # https://github.com/bitpoke/mysql-operator/tree/master/images/mysql-operator-sidecar-8.0 # 参考5…...
第5课 基本数据类型
一、数据类型的诞生 在Python的世界里,万物皆对象,每个对象都有自己的若干属性,每一个属性都能描述对象的某一个方面。就像我们每个人,都有自己的身高、年龄、姓名、性别等很多方面的信息,这里的身高、年龄、姓名、性…...
OceanBase 首席科学家阳振坤:大模型时代的数据库思考
2024年 OceanBase 年度大会 即将于10月23日,在北京举行。 欢迎到现场了解更多“SQL AI ” 的探讨与分享! 近期,2024年金融业数据库技术大会在北京圆满举行,聚焦“大模型时代下数据库的创新发展”议题,汇聚了国内外众多…...
网站改版的方式/如何制作小程序
最近工作需要从Oracle迁移大量数据到MySql,由于涉及不深,便网上学习了很多的方法,现总结Oracle迁移大量数据到MySql如下:一,牛人编写的Oracle到MySQL的数据迁移工具从Oracle迁移数据到MySQL的小程序,ora2mysql下载地址…...
优秀网站h5案例分享/百度营销登录入口
接着etcd的集群,现在用原有环境基础,增加master集群haproxy负载,机器受限 还是用1.5,1.6做master,把haproxy安装在1.5上 一般生产的时候,haproxy master etcd node 还是要分开集群 首先安装haproxy yum install haprox…...
做电影网站程序好用/东莞公司seo优化
菜鸟学Linux 第073篇笔记 client,数据类型,变量小标题client、mysql数据类型、服务器变量、存储引擎、sql模型MySQL客户端mysql--user, -u--host, -h--password, -p--port--protocol--database DATABASE, -D--html 返回结果以html格式显示--xml 返回结果以xml格式显示mysql>…...
莘县网站建设价格/腾讯控股第三季度营收1401亿
---------------------------------------------------------------OSPF在NBMA网络中的解决方案---------------------------------------------------------------一、OSPF在NBMA网络中产生的通信问题配置基本的帧中继网络帧中继配置R1:interface s1/0ip address 1…...
做网站的公司北京有哪些/夜夜草
维基百科地址:https://en.wikipedia.org/wiki/Parallax_scrolling 视察滚动是计算机图形学以及网页设计中的技术。原理就是在二维场景中创建一个深度错觉,背景图像跟随摄影机移动的速度比前景图像要慢。该技术起源于20世纪30年代在传统动画中使用的多平…...