Python 的数据类型与操作
一、常用内置类型(Built - in Types)
Python 拥有多种内置数据类型,这些类型满足了各种编程需求,从简单的数据存储到复杂的数据结构表示。
1. 数值类型(Numeric Types)
整数(int):整数在 Python 中可以表示任意大小的整数值,不受特定字节数的限制。例如,x = 10就定义了一个简单的整数变量。整数可用于计数、索引等多种场景。
浮点数(float):用于表示带有小数点的数字,采用 IEEE 754 双精度浮点数格式。如y = 3.14。浮点数在科学计算、金融计算等需要处理小数的场景中非常有用。
复数(complex):以a + bj的形式表示,其中a为实部,b为虚部,j表示虚数单位。例如,z = 2 + 3j。复数在数学和工程领域的特定计算中发挥作用。
2. 序列类型(Sequence Types)
列表(list):列表是一种可变的有序序列,可以包含不同类型的元素。例如,my_list = [1, 'hello', True]。通过索引可以访问列表中的元素,并且可以对列表进行修改、添加或删除元素等操作。
元组(tuple):元组是不可变的有序序列,与列表类似,但一旦创建就不能修改。如my_tuple = (1, 'world', False)。元组常用于表示固定结构的数据,如函数返回多个值时。
字符串(string):字符串是由字符组成的不可变序列。在 Python 中,字符串可以使用单引号、双引号或三引号(用于多行字符串)来表示。例如,s = "Python is great"。字符串支持多种操作,如切片、连接、查找等。
3. 映射类型(Mapping Types)
字典(dictionary):字典是一种无序的键 - 值对数据结构,其中键必须是唯一的。例如,my_dict = {'name': 'John', 'age': 25}。通过键可以快速查找对应的值,常用于存储和查询相关联的数据。
4. 集合类型(Set Types)
集合(set):集合是无序的、不包含重复元素的数据结构。例如,my_set = {1, 2, 3}。集合支持交集、并集、差集等操作,可用于数据去重、元素关系判断等场景。
5. 布尔类型(Boolean Type)
布尔类型只有两个值:True和False。它在条件判断、逻辑运算中起着关键作用。例如,x = 5; y = 10; result = x < y,这里result的值为True。
二、常用内置常数(Built - in Constants)
Python 提供了一些内置常数,这些常数在编程过程中具有特殊的意义和用途。
None:表示空值或者缺失值。在函数没有明确返回值时,默认返回None。例如,一个函数只是执行一些操作而不需要返回特定结果时,可以使用None。
True和False:这是布尔类型的两个值,在逻辑判断中使用。例如,在if语句中判断条件的真假。
Ellipsis(...):这个常数在特定的语法结构中有特殊用途,比如在定义多维数组时可以作为占位符。
三、常用内置运算符(Built - in Operators)
1. 算术运算符
加法(+):用于数值相加,也可用于字符串连接和列表、元组等序列的连接。例如,2 + 3得到5,"hello" + "world"得到"helloworld"。
减法(-):用于数值相减。如5 - 2得到3。
乘法(*):对于数值是乘法运算,对于字符串和序列可以实现重复操作。例如,3 * 4得到12,"a" * 3得到"aaa"。
除法(/):执行浮点数除法,结果总是浮点数。例如,5 / 2得到2.5。
2. 比较运算符
等于(==):判断两个值是否相等。例如,2 == 2返回True,"hello" == "world"返回False。
不等于(!=):判断两个值是否不相等。
大于(>)、小于(<)、大于等于(>=)、小于等于(<=):用于比较数值的大小关系,也可以用于比较字符串按照字典序的大小关系。
3. 逻辑运算符
与(and):当两个操作数都为True时,结果为True;否则为False。例如,True and False得到False。
或(or):只要有一个操作数为True,结果就为True。例如,True or False得到True。
非(not):对操作数取反,not True得到False,not False得到True。
四、整除(Integer Division (//))
整除运算符//用于计算两个数相除并向下取整得到整数结果。例如,7 // 3得到2,-7 // 3得到-3。整除在处理需要得到整数部分结果的场景中非常有用,比如计算将一定数量的物品平均分配到若干个容器中时,每个容器能得到的物品数量。与普通除法(/)不同,//操作更关注整数部分的结果,并且在处理负数时遵循向下取整的规则。
五、模运算或余数运算符(%)
模运算(%)用于计算两个数相除的余数。例如,7 % 3得到1,10 % 2得到0。在很多实际应用中都非常有用,比如判断一个数是否能被另一个数整除(余数为 0 时表示能整除),或者在循环队列、哈希表等数据结构中确定索引位置等场景。例如,在一个长度为n的循环队列中,如果当前位置为pos,要向前移动m个位置,可以通过(pos + m) % n来计算新的位置。
六、类型影响语义(Types Affect Semantics)
在 Python 中,数据类型对操作的语义有着重要的影响。
数值类型:不同的数值类型之间进行操作时,可能会发生类型转换。例如,整数和浮点数进行算术运算时,整数会自动转换为浮点数,然后进行计算。这确保了计算结果的准确性和一致性。
序列类型:对于列表、元组等序列类型,虽然它们有一些相似的操作(如索引、切片),但由于列表是可变的而元组是不可变的,在对它们进行修改操作时语义完全不同。对列表可以使用诸如append、pop等方法来改变列表的内容,但这些操作在元组上是不允许的。
布尔类型与其他类型:布尔类型在逻辑运算中的语义是明确的,但当与其他类型进行操作时,也会遵循一定的规则。例如,在条件判断中,很多数据类型都可以被转换为布尔值,非零数值、非空字符串、非空列表等都被视为True,而0、""、[]等被视为False。
七、运算符优先级(Operator Order)
Python 中的运算符有明确的优先级顺序。当一个表达式中包含多个不同类型的运算符时,按照优先级顺序进行计算。
括号优先级最高:可以使用括号来改变运算顺序,括号内的表达式先进行计算。例如,(2 + 3) * 4,先计算2 + 3得到5,然后再乘以4得到20。
算术运算符优先级:先乘除后加减。例如,2 + 3 * 4,先计算3 * 4 = 12,然后再加上2得到14。其中,幂运算(**)优先级高于乘除运算。
比较运算符优先级低于算术运算符:例如,2 + 3 > 4,先计算2 + 3 = 5,然后再比较5 > 4得到True。
逻辑运算符优先级:not的优先级最高,然后是and,最后是or。例如,True or False and not True,先计算not True得到False,然后False and False得到False,最后True or False得到True。
八、短路求值(Short - Circuit Evaluation)
短路求值是逻辑运算符and和or的一个重要特性。
and的短路求值:当使用and连接两个表达式时,如果第一个表达式为False,则不会再计算第二个表达式,因为整个表达式必然为False。例如,False and some_function(),这里some_function()不会被调用。
or的短路求值:当使用or连接两个表达式时,如果第一个表达式为True,则不会再计算第二个表达式,因为整个表达式已经为True。例如,True or some_function(),some_function()不会被调用。这种特性在编写条件判断和优化代码性能时非常有用,可以避免不必要的计算。
Python 的数据类型和操作是其编程的基础,深入理解这些概念对于编写高效、准确的 Python 程序至关重要。
相关文章:
Python 的数据类型与操作
一、常用内置类型(Built - in Types) Python 拥有多种内置数据类型,这些类型满足了各种编程需求,从简单的数据存储到复杂的数据结构表示。 1. 数值类型(Numeric Types) 整数(int)&a…...
Python燃烧废气排放推断算法模型
🎯要点 宏观能耗场景模型参数化输入数据,分析可视化输出结果,使用场景时间序列数据模型及定量和定性指标使用线图和箱线图、饼图、散点图、堆积条形图、桑基图等可视化模型输出结果根据气体排放过程得出其时间序列关系,使用推断模…...
Qt中多语言的操作(以QtCreator为例)
1、首先,我们在代码中与文本相关的且需要支持多语言的地方,用tr来包含多语言key(多语言key是我们自己定义的),如下 //举例 QPushButton* btnnew QPushButton(this); btn->move(20,20); btn->resize(100,50); //…...
计算机毕业设计 社区医疗服务系统的设计与实现 Java实战项目 附源码+文档+视频讲解
博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…...
html+css学习
html 元素 html元素是HTML的根元素,一个文档只能有一个,其他所有元素都是其后代元素 html有一个属性为lang,其作用是: 帮助语言合成工具确定要使用的发音帮助翻译工具确定要使用的翻译规则 当属性lang“en”则表示告诉其浏览器…...
2.gitlab ce 细粒度的权限控制
需求: 在提交merge reqeust时,必须指定审核人,并且要选审核人清单里的 有个code owners应该可以做到(gitlab ce应该也可以用) 下面是参考的文档 细粒度的代码权限怎么做?极狐GitLab 代码所有者来帮忙 -…...
G - Merchant Takahashi / F - Useless for LIS
G - Merchant Takahashi 首先考虑暴力 DP。 设最后一步走到编号 ii 的城镇的方案的最大收益为 fifi,则每次集市相当于是 fTi←fj−C∣Ti−j∣Pi(1≤j≤n)。 这样每次可以通过枚举 j 来转移,这样总时间复杂度是 O(nm) 的&…...
自然语言处理实例
引子:基于聊天机器人项目的自然语言处理(NLP)学习路线 自然语言处理(Natural Language Processing,简称 NLP)是人工智能的重要分支,旨在帮助计算机理解、生成和处理人类语言。NLP 技术广泛应用于搜索引擎、机器翻译、语音识别、文本摘要、情感分析、对话系统等领域。为…...
『功能项目』主角属性值显示【75】
本章项目成果展示 我们打开上一篇74穿戴装备的项目, 本章要做的事情是制作主角属性界面,实现在面板上显示主角的攻击力等数值 制作一个简易的主角界面(创建Image与Text显示即可) 创建一个空物体 重命名为PlayerInfo 在其子级下创…...
单片机嵌入式编程中常用技术点
Open CV,QT,Linux,多线程,网络编程,文件编程在单片机嵌入式编程中,这些技术在单片机嵌入式编程中的作用: 一、OpenCV 在单片机嵌入式编程中,虽然单片机的计算能力相对有限…...
【毕业论文+源码】基于ASP+NET的人事管理系统
引言 人事管理系统是针对企业内部人事管理设计,分角色实现对公司部门及各部门员工的增、删、改、查以及对员工考勤的管理。 编写目的: 在系统需求分析的基础上,对需求分析中产生的功能模块进行过程描述,设计功能模块的内部细节&…...
计算机毕业设计 校园志愿者管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解
博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…...
速通LLaMA2:《Llama 2: Open Foundation and Fine-Tuned Chat Models》全文解读
文章目录 概览LLaMA和LLaMA2的区别AbstractIntroductionPretrainingFine-tuning1. 概括2、Supervised Fine-Tuning(SFT)3、⭐Reinforcement Learning with Human Feedback(RLHF)🔺总览Training Objectives:…...
如何使用VM中win10搭建Hfish蜜罐(危险感知平台)。从下载到部署详细教程
得而不惜就该死。 -----古月方源 引言:最近跟一个老师做东西,叫我搞清楚蜜罐的搭建和一些底层逻辑,所以记录一下。 一、实验准备 (一)win10虚拟机 (若有需要可以后台私信) (二&…...
Rust: AES 加密算法库
在Rust中,进行AES加密通常会用到一些现有的库,因为Rust标准库中并不直接提供AES加密的API。一个非常流行的库是crypto-box或者更广泛使用的ring库,但ring库由于依赖问题有时可能难以编译,另一个常用的库是cryptography的Rust绑定&…...
计算机网络34——Windows内存管理
1、计算机体系结构 2、内存管理 分为连续分配管理和非连续分配管理 在块内存在的未使用空间叫内部碎片,在块外存在的未使用空间叫外部碎片 固定分区分配可能出现内部碎片,动态分区分配可能出现外部碎片 3、逻辑地址和实际地址的互相转换 4、缺页中断 …...
Redisson 总结
1. 基础使用 1.1 引入依赖 <dependencies><dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId></dependency> </dependencies>包含的依赖如下 1.2 配置文件 其实默认主机就…...
EfficientFormer实战:使用EfficientFormerV2实现图像分类任务(一)
摘要 EfficientFormerV2是一种通过重新思考ViT设计选择和引入细粒度联合搜索策略而开发出的新型移动视觉骨干网络。它结合了卷积和变换器的优势,通过一系列高效的设计改进和搜索方法,实现了在移动设备上既轻又快且保持高性能的目标。这一成果为在资源受…...
文心智能体搭建步骤
通过使用文心智能体平台来创建智能体的过程。这种方法可以让没有编程经验的人也能快速构建智能体,降低了技 术门槛。以下是一些建议和心得: 1.选择合适的平台:文心智能体平台是一个优秀的选择,它提供了零代码和低代码的开发环境,极大地降低了…...
PHP安全
PHP伪协议: 一.【file://协议】 PHP.ini: file:// 协议在双off的情况下也可以正常使用; allow_url_fopen :off/on allow_url_include:off/on file:// 用于访问本地文件系统,在CTF中通常用来读取本地文…...
告别传统打捞船:浅析‘子母船’协同算法如何解决水库、湖泊的浅水区垃圾清理难题
水域清洁革命:子母船协同算法如何重塑浅水区垃圾治理格局 清晨的阳光洒在湖面上,波光粼粼中却漂浮着刺眼的塑料瓶和食品包装——这是全球水库、湖泊管理者每天都要面对的环保噩梦。传统清漂方式在浅水区域显得力不从心,而一种融合了分布式机…...
别再死记硬背Transformer了!用大白话和代码图解,5分钟搞懂Self-Attention核心
用图书馆借书的故事讲透Transformer自注意力机制 想象你走进一个巨大的图书馆,书架上摆满了各种书籍。你需要找到一本关于"深度学习"的书,但你不确定具体是哪一本。这时候,图书管理员会怎么做?她会根据你的需求…...
从拍照到HDR:用OpenCV玩转多曝光融合,让你的摄像头拍出大片感(C++实战)
从拍照到HDR:用OpenCV玩转多曝光融合,让你的摄像头拍出大片感(C实战) 当你在逆光环境下拍摄时,是否经常遇到这样的困境——要么天空过曝变成一片惨白,要么前景欠曝沦为剪影?传统相机的动态范围有…...
哪家网卡公司靠谱必看5大关键清单 企业采购专属版
选网卡公司的3个常见决策误区很多企业采购网卡时踩坑,往往是陷入了三个常见的决策误区。第一个误区是唯价格论,过度压低采购预算,优先选择报价较低的供应商,忽略了产品的授权资质和正品保障,后续容易买到翻新、贴牌的不…...
如何用Python自动化脚本提升大麦网抢票成功率:完整配置指南
如何用Python自动化脚本提升大麦网抢票成功率:完整配置指南 【免费下载链接】DamaiHelper 大麦网演唱会演出抢票脚本。 项目地址: https://gitcode.com/gh_mirrors/dama/DamaiHelper 还在为抢不到周杰伦、五月天演唱会门票而烦恼吗?大麦网抢票脚本…...
5步构建你的私有云游戏平台:Sunshine串流服务器完全指南
5步构建你的私有云游戏平台:Sunshine串流服务器完全指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine Sunshine是一款免费开源的自托管游戏串流服务器软件࿰…...
【Windows版Redis安装本地使用】
本地安装运行 一、Redis官网 二、下载 三、配置redis服务 一、Redis官网 官网: redis 二、下载 下载版本:版本下载 下载完后,解压文件到文件夹 三、配置redis服务 打开目录对应的终端 安装redis服务 redis-server.exe --service-install redis.windows.conf --loglevel verbos…...
基于AVR单片机的无线图像侦检系统:从硬件选型到软件实现
1. 项目概述与核心价值最近在整理过去的项目资料,翻到了一个挺有意思的老项目——基于Atmel AVR单片机的无线图像侦检系统。虽然现在STM32、ESP32满天飞,各种高性能MCU和无线模块层出不穷,但这个项目在当年(以及现在某些特定场景下…...
从零打造专属显示器:面板、驱动板与外壳的实战选型指南
1. 为什么选择DIY显示器? 最近两年,显示器市场出现了不少高性价比的产品,但作为一个喜欢折腾的极客,我总觉得市面上的显示器少了点什么。要么是接口不够用,要么是外观太普通,要么就是某些参数达不到我的要求…...
人工智能系统的测试:AI模型的可靠性与鲁棒性测试
在人工智能技术深度渗透各行业的当下,AI模型的可靠性与鲁棒性直接关乎业务安全与用户信任。对于软件测试从业者而言,突破传统测试思维,构建适配AI特性的测试体系,已成为保障AI系统高质量落地的核心任务。 一、AI模型可靠性与鲁棒…...
