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)

        布尔类型只有两个值:TrueFalse。它在条件判断、逻辑运算中起着关键作用。例如,x = 5; y = 10; result = x < y,这里result的值为True

二、常用内置常数(Built - in Constants)

        Python 提供了一些内置常数,这些常数在编程过程中具有特殊的意义和用途。

    None:表示空值或者缺失值。在函数没有明确返回值时,默认返回None。例如,一个函数只是执行一些操作而不需要返回特定结果时,可以使用None

    TrueFalse:这是布尔类型的两个值,在逻辑判断中使用。例如,在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得到Falsenot False得到True

四、整除(Integer Division (//))

        整除运算符//用于计算两个数相除并向下取整得到整数结果。例如,7 // 3得到2-7 // 3得到-3。整除在处理需要得到整数部分结果的场景中非常有用,比如计算将一定数量的物品平均分配到若干个容器中时,每个容器能得到的物品数量。与普通除法(/)不同,//操作更关注整数部分的结果,并且在处理负数时遵循向下取整的规则。

五、模运算或余数运算符(%

        模运算(%)用于计算两个数相除的余数。例如,7 % 3得到110 % 2得到0。在很多实际应用中都非常有用,比如判断一个数是否能被另一个数整除(余数为 0 时表示能整除),或者在循环队列、哈希表等数据结构中确定索引位置等场景。例如,在一个长度为n的循环队列中,如果当前位置为pos,要向前移动m个位置,可以通过(pos + m) % n来计算新的位置。

六、类型影响语义(Types Affect Semantics)

        在 Python 中,数据类型对操作的语义有着重要的影响。

        数值类型:不同的数值类型之间进行操作时,可能会发生类型转换。例如,整数和浮点数进行算术运算时,整数会自动转换为浮点数,然后进行计算。这确保了计算结果的准确性和一致性。

        序列类型:对于列表、元组等序列类型,虽然它们有一些相似的操作(如索引、切片),但由于列表是可变的而元组是不可变的,在对它们进行修改操作时语义完全不同。对列表可以使用诸如appendpop等方法来改变列表的内容,但这些操作在元组上是不允许的。

        布尔类型与其他类型:布尔类型在逻辑运算中的语义是明确的,但当与其他类型进行操作时,也会遵循一定的规则。例如,在条件判断中,很多数据类型都可以被转换为布尔值,非零数值、非空字符串、非空列表等都被视为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)

短路求值是逻辑运算符andor的一个重要特性。

   and的短路求值:当使用and连接两个表达式时,如果第一个表达式为False,则不会再计算第二个表达式,因为整个表达式必然为False。例如,False and some_function(),这里some_function()不会被调用。

   or的短路求值:当使用or连接两个表达式时,如果第一个表达式为True,则不会再计算第二个表达式,因为整个表达式已经为True。例如,True or some_function()some_function()不会被调用。这种特性在编写条件判断和优化代码性能时非常有用,可以避免不必要的计算。

        Python 的数据类型和操作是其编程的基础,深入理解这些概念对于编写高效、准确的 Python 程序至关重要。

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

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

相关文章

OceanBase 中 schema 的定义与应用

背景 经常在OceanBase 的问答社区 里看到一些关于 “schema 是什么” 的提问。 先纠正一些同学的误解&#xff0c; OceanBase 中的 Schema 并不简单的等同于 Database&#xff0c;本次分享将探讨 OceanBase 中的Schema是什么&#xff0c;及一些大家经常遇到的问题。 具体而…

JavaDS —— 图

图的概念 图是由顶点集合以及顶点之间的关系组成的一种数据结构&#xff1a;G &#xff08;V&#xff0c;E&#xff09; 其中 V 表示的是顶点集合 &#xff1a; V { x | x 属于某个数据对象集} 是有穷非空集合 E 叫做边的集合 &#xff1a; E {(x, y) | x, y 属于 V} 或者 …

UE5源码Windows编译、运行

官方文档 Welcome To Unreal Engine 5 Early Access Learn what to expect from the UE5 Early Access program. 链接如下&#xff1a;https://docs.unrealengine.com/5.0/en-US/Welcome/#gettingue5earlyaccessfromgithub Step 0&#xff1a;找到UE5源码 直接先上链接 https…

MySQL原理之UUID主键分析,插入或更新语法分析

文章目录 1 MySQL不能用UUID做主键1.1 前言1.2 mysql和程序实例1.2.1 准备工作1.2.2 开始测试1.2.3 程序写入结果1.2.4 效率测试结果 1.3 使用uuid和自增id的索引结构对比1.3.1 自增id1.3.2 uuid 1.4 自增id缺点1.5 雪花算法 2 插入或更新2.1 on duplicate key2.1.1 定义2.1.2 …

24年蓝桥杯及攻防世界赛题-MISC-3

21 reverseMe 复制图片&#xff0c;在线ocr识别&#xff0c;https://ocr.wdku.net/&#xff0c;都不费眼睛。 22 misc_pic_again ┌──(holyeyes㉿kali2023)-[~/Misc/tool-misc/zsteg] └─$ zsteg misc_pic_again.png imagedata … text: “$$KaTeX parse error: Undefined…

python基础(1)pyenv安装和对Django使用

pyenv安装 pyenv主要针对类 Unix 系统&#xff08;如 Linux、macOS&#xff09;用户&#xff0c;pyenv-win 是专为 Windows 开发的 pyenv 版本&#xff0c;允许您在不使用 WSL 的情况下管理多个 Python 版本和虚拟环境。 建议Git Bash&#xff1a; Powershell或Git Bash&…

功能测试干了三年,快要废了。。。

8年前刚进入到IT行业&#xff0c;到现在学习软件测试的人越来越多&#xff0c;所以在这我想结合自己的一些看法给大家提一些建议。 最近聊到软件测试的行业内卷&#xff0c;越来越多的转行和大学生进入测试行业&#xff0c;导致软件测试已经饱和了&#xff0c;想要获得更好的待…

Java键盘输入语句

编程输入语句 1.介绍:在编程中&#xff0c;需要接受用户输入的数据&#xff0c;就可以使用键盘输入语句来获取。 2.步骤&#xff1a; 1&#xff09;导入该类的所在包&#xff0c;java.util.* 2)创建该类对象&#xff08;声明变量&#xff09; 3&#xff09;调用里面的功能 3…

任务书与开题报告的区别与联系:如何让二者相辅相成

AIPaperGPT&#xff0c;论文写作神器~ https://www.aipapergpt.com/ 大家好&#xff01;今天咱们聊聊论文写作过程中两个让人又爱又恨的关键步骤&#xff1a;任务书和开题报告。 这两兄弟可是你毕业路上的第一关卡&#xff0c;搞不定它们&#xff0c;你后面别说论文了&#…

时序必读论文12|ICML22 FEDformer基于周期分解的长时序预测transformer架构

论文标题&#xff1a;FEDformer: Frequency Enhanced Decomposed Transformer for Long-term Series Forecasting 开源代码&#xff1a;https://github.com/DAMO-DI-ML/ICML2022-FEDformer 前言 FEDformer这篇文章发表于2022年的ICML。其实如果只比较性能的话&#xff0c;到…

微信如何发布学生查分?教师平台推荐!

学校和老师们都在面临着一个共同的问题&#xff1a;如何高效、便捷地发布学生成绩查询信息&#xff1f;在这个数字化时代&#xff0c;传统的纸质通知和口头传达方式已经无法满足家长和学生的需求。幸运的是&#xff0c;有了易查分这样的在线工具&#xff0c;发布学生查分变得简…

vitis Failed to create the part‘s controls解决方法

类似于 解决方法&#xff1a;重启vitis。 效果&#xff1a; 可以建立lab4了。

wallpaper engine壁纸提取

下载提取软件RavioliGameTools_v2.10.zip https://pan.baidu.com/s/14ZCVw3ucRERsB-GGGoCOqQ 2.运行RExtractor.exe 3.Input file(s)、Output directory填好 4.勾选Allow scanning of unkown files 5.点击Start

Ceph官方文档_01_Ceph简介

目录 Ceph介绍Ceph介绍 Ceph可用于向云平台提供Ceph对象存储,Ceph可用于向云平台提供Ceph块设备服务。Ceph可用于部署Ceph文件系统。所有Ceph存储群集部署开始都是先设置每个Ceph节点,然后再设置网络。 Ceph存储集群需要以下内容:至少一个Ceph监视器和至少一个Ceph管理器,…

vulnhub靶机:Breach 2.1详细过程

下载 下载地址&#xff1a;https://www.vulnhub.com/entry/breach-21,159/ 修改网络模式 根据靶机的描述得知该靶机适用于静态ip&#xff0c;即192.168.110.151&#xff1b;配置虚拟机的虚拟网络编辑器的仅主机模式&#xff0c;将其子网IP配置在110网段&#xff0c;并将攻击…

C++初阶学习第六弹------标准库中的string类

目录 一.标准库中的string类 二.string的常用接口函数 2.1string类对象的构造 2.2 string的容量操作 2.3 string类的访问与遍历 2.4 string类对象的修改 2.5 string类常用的非成员函数 三、总结 一.标准库中的string类 可以简单理解成把string类理解为变长的字符数组&#x…

2024.9.13 Python与图像处理新国大EE5731课程大作业,索贝尔算子计算边缘,高斯核模糊边缘,Haar小波计算边缘

1.编写一个图像二维卷积程序。它应该能够处理任何灰度输入图像&#xff0c;并使用以下内核进行操作&#xff1a; %matplotlib inline import numpy as np import matplotlib.pyplot as plt from scipy import linalg import random as rm import math import cv2# import and …

linux网络编程3

24.9.19学习目录 一.UDP&#xff08;续&#xff09;1.UDP编程2.注意点2.TFTPTFTP通信过程TFTP协议分析 一.UDP&#xff08;续&#xff09; 1.UDP编程 &#xff08;1&#xff09;sendto函数发送数据 向to结构体指针中指定的ip&#xff0c;发送UDP数据&#xff1b; 通过to和ad…

时间复杂度的常用符号+渐进时间复杂度分析

时间复杂度的常用符号 Θ \Theta Θ 如果 f ( n ) Θ ( g ( n ) ) f(n)\Theta(g(n)) f(n)Θ(g(n))&#xff0c;则 f ( n ) f(n) f(n) 与 g ( n ) g(n) g(n) 同阶。&#xff08;阶是指 f ( n ) f(n) f(n) 的指数&#xff0c;比如 n 2 n^2 n2 高于 n n n&#xff09; O O …

MacOS安装homebrew,jEnv,多版本JDK

1 安装homebrew homebrew官网 根据官网提示&#xff0c;运行安装命令 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"安装后&#xff0c;bash会提示执行两条命令 (echo; echo eval "$(/opt/homebrew/b…