基本数据类型

标准数据类型

常见数据类型:
Number(数字)
String(字符串)
bool(布尔类型)
List(列表)
Tuple(元组)
Set(集合)
Dictionary(字典) 六个标准数据类型中:
不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Set(集合)、Dictionary(字典)。 一些高级的数据类型:
如: 字节数组类型(bytes)。

不可改变元素值如下三个:

一、Number(数字)

  • Python3 支持 int、float、bool、complex(复数)。
  • 在Python 3里,只有一种整数类型int,表示为长整型,没有 python2 中的 Long。

二、String(字符串)

  • Python中的字符串用单引号 ' 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。用r不转义
  • 字符串截取语法格式:

    变量[头下标:尾下标]

    索引值以 0 为开始值,-1 为从末尾的开始位置。
  • Python字符串不能改变。改变如:word[0] = 'm' 会导致错误。

三、Tuple (元组)

  • 元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 ()里,元素之间用逗号,隔开。
  • 元组中的元素类型也可以不相同:
  • 可以把字符串看作一种特殊的元组。
  • 元组可以被索引且下标索引从0开始,-1 为从末尾开始的位置,也可以进行截取
  • 空元组和只有一个元素的元组

可改变元素的值如下三个:

四、List(列表)

  • List(列表)Python 中使用最频繁的数据类型
  • Python字符串不一样的是,列表中的元素是可以改变的
  • 列表是写在方括号[ ]之间、用,分隔开的元素列表
  • 列表截取的语法格式如下: 变量[头下标:尾下标:步长],如果第三个参数为负数表示逆向读取
  • 索引值以0为开始值,-1为从末尾的开始位置
  • 加号+是列表连接运算符,星号*是重复操作

五、Set (集合)

  • Python 中的集合(Set)是一种无序、可变的数据类型,用于存储唯一的元素。
  • 集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。
  • 在 Python 中,集合使用大括号{} 表示,元素之间用逗号,分隔。
  • 另外,也可以使用 set() 函数创建集合。 创建一个空集合必须用set() 而不是 { },因为 { } 是用来创建一个空字典。

    创建格式:parame = {value01,value02,...} 或者 set(value)

六、Dictionary(字典)

  • 字典(dictionary)是Python中另一个非常有用的内置数据类型
  • 列表是有序的对象集合,字典是无序的对象集合。

    两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
  • 字典是一种映射类型,字典用 { } 标识,它是一个无序的键(key) : 值(value) 的集合。

    键(key)必须用不可变类型。同一个字典,键(key)唯一
  • 字典元素是键值对
  • 字典类型也有一些内置的函数,例如 clear()、keys()、values() 等。

此外 布尔类型只有两个值:True 和 False

七、bool(布尔类型)

  • 布尔类型只有两个值:True 和 False
  • Python中,True 和 False 都是关键字,表示布尔值。
  • 布尔类型可以用来控制程序的流程
  • 布尔类型可以和其他数据类型进行比较或者转换时,True 会被转换成 1,False 会被转换成 0

一些高级的数据类型

八、bytes类型

  • Python3中,bytes 类型表示不可变的二进制序列(byte sequence)。通常用于处理二进制数据
  • bytes元素是整数值(0到255之间的整数),不是 Unicode 字符。
  • 创建 bytes 对象的方式有多种,最常见的方式是使用 b前缀
  • bytes()函数其他类型的对象转换为bytes类型。 bytes() 函数的第一个参数是要转换的对象第二个参数是编码方式如省略第二个参数,则默认UTF-8 编码

九、总结:列表 元组,集合,字典

  • 创建空列表 空元组,空集合,空字典

    (dict = {} #空字典 (注意区分空集合 set() 而不是set= {}))
  • 搞清楚元素类型可以相同吗 ,元素可以改变吗?

十、Python数据类型转换

  • 数据类型的转换,你只需要将数据类型作为函数名即可

  • 不同数据类型之间不一定能随意转化

    取决于原始数据是否能够提供足够的信息来表示目标类型。

整数可转换为字符串,因为每一个整数都有一个明确的字符串表示(例如,整数123可以表示为字符串"123")。
对于一个非数字字符串(如"Hello"),它无法被转换为一个整数或浮点数,因为这个字符串并不包含任何可以表示一个数字的信息。
  • 高和低数据类型表示数据精度。即数据类型能够表示的信息量或详细程度

  • Python 数据类型转换可以分为两种:

    (1)隐式类型转换 - 自动完成 。(Python会自动将一种数据类型转换为另一种,不需要我们去干预)

    数据类型(整数)就会换为较数据类型(浮点数)以避免数据丢失。

    (2)显式类型转换 - 需要使用类型函数来转换。高转低

x =1
s= [1,12]
d = {}
float( x ) # 将x转换到一个浮点数将x转换到一个浮点数
str(x) #将对象 x 转换为字符串
tuple(s) #将序列 s 转换为一个元组
list(s) #将序列 s 转换为一个列表
set(s) #转换为可变集合
dict(d) #创建一个字典。d 必须是一个 (key, value)元组序列。

Python3 算术运算符

算术运算符
比较(关系)运算符
赋值运算符
逻辑运算符
位运算符
成员运算符
身份运算符
运算符优先级
(详情见https://www.runoob.com/python3/python3-basic-operators.html)

一、python3 数字 Number

数据类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间。

可以使用del语句删除一些数字对象的引用。

#del语句的语法是:
del var1[,var2[,var3[....,varN]]]

1、Python 支持三种不同的数值类型:

整型(int)

  • 通常被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型。布尔(bool)是整型的子类型
  • 可以使用十六进制和八进制来代表整数

浮点型(float)

  • 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)

复数( (complex))

  • 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型

2、Python 数字类型转换

3、Python 数字运算

只读变量

在交互模式中,最后被输出的表达式结果被赋值给变量 _ 。例如:

>>> tax = 12.5 / 100
>>> price = 100.50
>>> price * tax
12.5625
>>> price + _
113.0625
>>> round(_, 2)
113.06

此处, _ 变量应被用户视为只读变量

4、数字函数

函数 返回值(描述)
abs(x) 返回数字的绝对值,如abs(-10) 返回 10
max(x1,x2,...) 返回给定参数的最大值,参数可以为序列。
min(x1,x2,...) 返回给定参数的最小值,参数可以为序列。
sqrt(x) 返回数字x的平方根。

5、随机数函数

函数 描述
choice(seq) 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。
uniform(x,y) 随机生成下一个实数,它在[x,y]范围内。
random() 随机生成下一个实数,它在[0,1)范围内。

6、三角函数

7、数字常量

常量 描述
pi 数学常量 pi(圆周率,一般以π来表示)
e 数学常量 e,e即自然常数(自然常数)。

二、Python3 字符串

字符串是 Python 中最常用的数据类型。我们可以使用引号( ' 或 " )来创建字符串。

创建字符串很简单,只要为变量分配一个值即可。

1、Python 访问字符串中的值

Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。

Python 访问子字符串,可以使用方括号 [] 来截取字符串。

索引值以 0 为开始值,-1 为从末尾的开始位置。

#字符串的截取的语法格式如下:
变量[头下标:尾下标]

2、Python 字符串更新

var1 = 'Hello World!'

print ("已更新字符串 : ", var1[:6] + 'Runoob!')

3、Python 转义字符

反斜杠 \ 转义字符

r不发生转义

4、 Pyhton 字符串运算符

实例变量 a 值为字符串 "Hello",b 变量值为 "Python":

操作符 描述 实例
+ 字符串连接 a + b 输出结果: HelloPython
* 重复输出字符串 a*2 输出结果” HelloHello
[:] 截取字符串中的一部分,遵循左闭右开原则,str[0:2] 是不包含第 3 个字符的。 a[1:4] 输出结果 ell

5、Python 字符串格式化

最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。

6、Python三引号

python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。

7、f-string字面量格式化字符串

f-string 是 python3.6 之后版本添加的,称之为字面量格式化字符串,是新的格式化字符串的语法。

之前我们习惯用百分号 (%):

name = 'Runoob'
print('Hello %s'%name)

f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去,实例如下:

name = 'Runoob'
f'Hello{name}'

8、Python3 Unicode字符串

在Python3中,所有的字符串都是Unicode字符串。

Unicode字符串则存储为16位unicode字符串

9、Python 字符串内建函数


三、Python3 列表

访问列表中的值

1.更新列表,删除列表元素

2.列表比较

列表比较需要引入 operator 模块的 eq 方法

import operator

a = [1,2]
b = [2,3]
c = [2,3]
print(operator.eq(a, b))
print(operator.eq(b, c))

3.Python列表函数&方法

Python 包含以下函数

序号 函数 描述
1 len(list) 返回列表元素个数
2 max(list) 返回列表元素最大值
3 min(list) 返回列表元素最小值
4 list(seq) 将元组转换为列表

Python 包含以下方法

序号 方法 描述
1 list.append(obj) 在列表末尾添加新的对象
2 list.insert(index,obj) 将对象插入列表
3 list.pop([index= -1]) 移除列表中的一个元素,(默认最后一个元素),并且返回该元素的值
4 list.sort(key= None,reverse = False) 对原列表进行排序
4 list.clear() 清空列表
4 list.copy 复制列表

四、 Python3 元组

1.元组创建(单个元素元组,空元组),访问, 修改 ,截取,删除元组

元组创建只需要在括号()中添加元素,使用逗号,隔开。

元组使用小括号 ( ),列表使用方括号 [ ]

元组的元素不能修改(但我们可以对元组进行连接组合),列表的元素可以修改。

创建空元组

tup1 = ()

元组中只包含一个元素时,需要在元素后面添加逗号, ,否则括号会被当作运算符使用:

2.元组的索引,截取

因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素,

3. 元组运算符

与字符串一样,元组之间可以使用 ++=* 号进行运算。

这就意味着他们可以组合和复制,运算后会生成一个新的元组。

4.元组内置函数

len(tup)

max(tup)


五、Python3 字典

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {}中 ,

格式如下所示:

d = {key1 : value1, key2 : value2, key3 : value3 }

值可以取任何数据类型,但键必须是不可变的,如字符串,数字。

键必须是唯一的,但值则不必。

不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住

键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行

1. 创建空字典

使用大括号 { } 创建空字典

emptyDict = {}

2.查看字典的数量

print("Length:", len(emptyDict))

3.查看类型

print(type(emptyDict))

4.访问字典里的值

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print ("tinydict['Name']: ", tinydict['Name'])
print ("tinydict['Age']: ", tinydict['Age'])

5.修改字典,删除字典

向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对

能删单一的元素也能清空字典,清空只需一项操作。

显式删除一个字典用del命令,如下实例:

6.字典内置函数&方法


六、集合

集合(set)是一个无序的不重复(元素重复会自动删除)元素序列。

可以进行交集、并集、差集等常见的集合操作。

集合对 list 和 tuple 具有排序(升序)

1. 集合的创建

可以使用大括号{} 创建,元素之间用逗号 ,分隔

也可以使用 set() 函数创建集合。

#语法格式
parame = {value01,value02,...}
#或者
set(value)

2. 集合的基本操作

添加元素

#两种函数,注意区别
s.add( x )
#或
s.update( x ) s.update( "字符串" ) 与 s.update( {"字符串"} ) 含义不同,注意区别

删除元素

#两种函数,注意区别
s.remove( x )
#或
s.discard( x ) #随机删除集合中的一个元素
s.pop()
#set 集合的 pop 方法会对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除

3.计算集合元素个数

len(s)

4. 清空集合

s.clear()

5. 判断元素是否在集合中存在

x in s

随机推荐

  1. ARHUD驾车导航技术概览

    ​ ARHUD (Augmented Reality Head Up Display),即增强现实与抬头显示的结合,是一种将渲染元素投影在真实世界的技术,也是目前用户理解成本最低的展示方式. HUD功 ...

  2. ElasticSearch - 批量更新bulk死锁问题排查

    一.问题系统介绍 监听商品变更MQ消息,查询商品最新的信息,调用BulkProcessor批量更新ES集群中的商品字段信息; 由于商品数据非常多,所以将商品数据存储到ES集群上,整个ES集群共划分了2 ...

  3. ASP.NET MVC4 学习笔记-4

    添加验证--Adding Validation 现在我们要为程序增加数据验证.如果不增加数据验证的话,我们的用户可能会输入错误的数据或者提交一个空白的表格. 在MVC应用程序中,数据验证通常要在域模型 ...

  4. 【Kubernetes】yaml文件编写 -- 持续更新

    K8S通过yaml格式的声明式API与资源对象交互 API版本由apiVersion字段指定,API对象类型由kind字段指定 除此之外,每个API对象有三大类属性: metadata:元数据 spe ...

  5. kbuild系统中最简单的目标 -- help(三)

    当你学完help目标后你会发现它与我们的代码基本没有什么直接的关系,仅仅是用来生成kbuild的简短使用说明,但是用它来作为学习掌握kbuild编译系统的开篇,不管是从难度还是学习感受上真的是再适合不 ...

  6. 懒人的百宝箱「GitHub 热点速览」

    本周 GitHub Trending 除了 lazydocker 之外,还有多个 lazy 项目上线,比如大家熟悉的 lazyvim,可见,这个世界对懒人还是很友好的.除此之外,主打一个密码免输入,绕 ...

  7. mysql根据.frm和.ibd文件恢复数据表

    忠人之事受人之托 起因是因为一位朋友的数据库服务器被重装了,只剩下一个zbp_post.frm和zbp_post.ibd文件.咨询我能不能恢复,确实我只用过mysqldump这种工具导出数据 然后进行 ...

  8. 2021-7-6 new tcpip

    using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Ne ...

  9. VUE3、ElementPlus 重构若依vue2 表单构建功能

    Vue3 + ElementPlus + Vite 重构 若依Vue2 表单构建功能 若依官方的Vue3 版本发布已经有段时间了,就是这个表单构建功能一直没有安排计划去适配到Vue3! 前段时间公司需 ...

  10. 自治系统/自治域和自治系统编号(ASN)

    定义: 自治系统或自治域(英文:Autonomous system, AS)是指在互联网中,一个或多个实体管辖下的所有IP网络和路由器的组合,它们对互联网执行共同的路由策略.参看RFC 1930中更新 ...