Python 数据类型入门:数字/字符串/列表 元组/字典/ 集合/字节/布尔,新手能直接用的代码指南

卡里笔记
• 阅读 5

数据类型:了解数据类型及其区别

“Python 的数据类型就像工具箱里的不同工具,各有各的用法~ 先问问大家:你平时写代码时
最常用哪种数据类型?遇到过‘明明看着没错,却报类型错误’的情况吗?跟着文章往下看,或许
能找到答案!”

@[toc]

数字类型(Number)

a=1        #整数类型
b=1.2      #浮点数类型
c=True     #布尔类型
d=2+1j     #复数类型
print(type(a), type(b), type(c), type(d))
print(isinstance(a, int), isinstance(b, float), isinstance(c, bool),  isinstance(c, int),isinstance(d, complex))
#用type()和isinstance()判断数据类型
#输出:<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
#输出:True True True True True

注意:

  • 复数类型书写规范:基本格式为 实部 + 虚部j,但当虚部为1或-1时,不能省略1和-1
  • isinstance 和 type 区别: type() 只认 "具体类型",不考虑继承; isinstance() 会认 "家族关系",子类算父类的一种。 例:苹果(子类)用 type() 看只是苹果,用 isinstance() 看既是是苹果也是水果(父类)。
  • Python中的常见继承关系:Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加, True== 1、False== 0 会返回 True,但可以通过 is 来判断类型。
    • is比较整数和True会触发SyntaxWarning,因应比较值而非身份,且源于Python 2用0/1表布尔值的历史,推荐使用"=="

字符串类型(Str)

hello = "Hello,World!"
print(hello + hello)          # 拼接   输出:Hello,World!Hello,World!
print(hello * 2)              # 重复   输出:Hello,World!Hello,World!
print(hello[1:-1:2])          # 切片   输出:el,ol
print("This ""is ""Python!")  # 自动拼接   输出:This is Python!
print("hello,\nworld!")       # 转义生效   输出:hello,
                                             #world!
print(r"hello,\nworld!")      # 原始字符串(转义无效)   输出:hello,\nworld!
print ("已更新字符串 : ", hello[:6] + 'Runoob!')   #更新字符串   输出:已更新字符串 :  Hello,Runoob!
print ("我叫 %s 今年 %d 岁!" % ('小明', 10))       #字符串格式化   输出:我叫 小明 今年 10 岁!

注意:

  • 对字符串的切片规则:字符串切片用[start:end:step],遵循左闭右开(含start,不含end);索引从左0开始、从右-1开始;步长正负定方向,缺省为1。
  • 字符串的格式化:同C语言的规则,字符串用“%s”,整数用“%d”,浮点数用“%f”

元组(Tuple)

num1 = (1, 2, 3, 4, 5)
num2 = (6, 7, 8, 9, 0)
num3 = (1,)           # 单元素元组(必须加逗号)
num4 = (1)
num5 = ()             # 空元组
print(num1)           # 输出完整元组   输出:(1, 2, 3, 4, 5)
print(type(num3))     # 查看类型   输出:<class 'tuple'>
print(type(num4))     # 查看类型   输出:<class 'int'>
print(num1[0:3])      # 切片访问   输出:(1, 2, 3)
del num1              # 删除元组(不能删除元素)
num2[1]="g"           # 不支持更改元素,因为元组是不可变数据类型

#元组推导式
#(表达式 for 元素 in 可迭代对象 if 条件) 
 a = (x for x in range(1,10))

注意:

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

    列表(List)

    color = ["red", "blue", "black", "green", "yellow", "white"]
    print(color[0])        # 访问第一个元素   输出:red
    print(color[-1])       # 访问最后一个元素   输出:white
    print(color[0:4])      # 切片访问   输出:['red', 'blue', 'black', 'green']
    color[2] = "pink"      # 更新元素,因为列表为可变数据变量
    color.append("brown")  # 添加元素
    del color[2]           # 删除元素
    print(color)           # 更新后的列表   输出:['red', 'blue', 'green', 'yellow', 'white', 'brown']
    

列表操作符

num1 = [1, 2, 3, 4, 5] num2 = [6, 7, 8, 9, 0] hi = ["hi"] print(len(num1)) # 长度 输出:5 print(num1 + num2) # 拼接 输出:[1, 2, 3, 4, 5, 6, 7, 8, 9, 0] print(hi * 3) # 重复 输出:['hi', 'hi', 'hi'] print(3 in num1) # 成员判断 输出:True for x in num1: print(x, end=" ") # 遍历 输出:1 2 3 4 5 print()

嵌套列表

a = [1, 2, 3] b = [4, 5, 6] n = [a, b] print(n) # 输出完整嵌套列表 输出:[[1, 2, 3], [4, 5, 6]] print(n[0][1]) # 访问嵌套元素 输出:2

列表比较

import operator print(operator.eq(a, b)) # 等于 输出:False print(operator.lt(a, b)) # 小于 输出:True print(operator.le(a, b)) # 小于等于 输出:True print(operator.gt(a, b)) # 大于 输出:False print(operator.ge(a, b)) # 大于等于 输出:False print(operator.ne(a, b)) # 不等于 输出:True


### 字典(Dictionary)
```python
letter = {1: "a", 2: "b", 3: "c", 4: "d", 5: "e"}
print(letter)           # 输出完整字典   输出:{1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}
print("len: ", len(letter))  # 字典长度   输出:len:  5
print(letter[1])        # 访问键对应的值   输出:a
letter[2] = "f"         # 修改值
letter[6] = "g"         # 添加新键值对
print(letter)           # 输出更新后的字典   输出:{1: 'a', 2: 'f', 3: 'c', 4: 'd', 5: 'e', 6: 'g'}
for key in letter:
    print(key,end=" ")             # 遍历字典的键
for value in letter.values():
    print(value,end=" ")           # 遍历字典的值
for key, value in letter.items():
    print(f"{key}: {value}",end="")# 遍历字典的键值对
square_dict = {num: num * num for num in range(1, 6)}
print(square_dict)                # 用字典推导式生成一个数字到其平方的字典
del letter[1]           # 删除键值对
letter.clear()          # 清空字典

注意:

  • 字典的键具有两个特性:
  • 一是不允许同一个键重复出现,若重复赋值,后一个值会覆盖前一个;
  • 二是键必须为不可变类型(如数字、字符串、元组),不能是列表等可变类型。

    集合(Set)

    num1 = {1, 2, 3, 4, 5, 6}
    num2 = {7, 8, 9, 0, 1, 2}
    

集合运算

print(num1 | num2) # 并集 输出:{0, 1, 2, 3, 4, 5, 6, 7, 8, 9} print(num1 & num2) # 交集 输出:{1, 2} print(num1 - num2) # 差集 输出:{3, 4, 5, 6} print(num1 ^ num2) # 对称差集 输出:{0, 3, 4, 5, 6, 7, 8, 9}

元素操作

num1.add(45) # 添加元素 num1.update({4, 5, 6})# 批量添加元素 num1.remove(4) # 删除元素 num1.discard(3) num1.discard(6) print(num1) # 批量移除元素(不存在的元素不报错) frozen_num = frozenset({1, 2, 3}) print(frozen_num) # 冻结集合,可作为字典的键等场景使用 print(len(num1)) # 集合大小 输出:6 num1.clear() # 清空集合 print(1 in num2) # 存在判断 输出:True





### 布尔类型(Bool)
```python
# 布尔值和类型
a = True
b = False
print(type(a))  # <class 'bool'>
print(type(b))  # <class 'bool'>

# 布尔类型的整数表现
print(int(True))   # 1
print(int(False))  # 0

# 使用 bool() 函数进行转换
print(bool(0))         # False
print(bool(42))        # True
print(bool(''))        # False
print(bool('Python'))  # True
print(bool([]))        # False
print(bool([1, 2, 3])) # True

# 布尔逻辑运算
print(True and False)  # False
print(True or False)   # True
print(not True)        # False

# 布尔比较运算
print(5 > 3)  # True
print(2 == 2) # True
print(7 < 4)  # False

# 布尔值在控制流中的应用
if True:
    print("This will always print")

if not False:
    print("This will also always print")

x = 10
if x:
    print("x is non-zero and thus True in a boolean context")

注意:

  • 视为True:非零数字、非空字符串/列表/元组等
  • 视为False:0、空字符串、空列表、空元组等

最后的话

看完所有数据类型的用法,是不是发现‘可变 / 不可变’‘继承关系’这些细节特别重要?来分享
一下你的收获吧 —— 比如你最容易混淆的两种数据类型是什么?或者你有哪些自己总结的
‘避坑小技巧’?评论区交流起来,一起把 Python 基础打扎实!”
点赞
收藏
评论区
推荐文章
半臻 半臻
4年前
Python基础2——类型转换、深浅拷贝、函数
8、类型转换、深浅拷贝8.1数据转换数据类型int整型float浮点数bool布尔值complex复数str字符串list列表tuple元组dict字典set集合python类型转换int()numint("123")ifnum123:print("等于123")num123nstr(num)
Irene181 Irene181
4年前
简述Python中常见的数据结构
「数仓宝贝库」,带你学数据!导读:Python中常见的数据结构有列表(list)、元组(tuple)、集合(set)、字典(dict)等,这些数据结构表示了自身在Python中的存在形式,在Python中可以输入type(对象)查看数据类型。1列表(1)创建列表列表是Python内置的一种数据类型,它是一种有序的数据集合,是用于存储一连串
Gwendolyn62 Gwendolyn62
4年前
Python基本数据类型
在了解基本数据类型的时候,我们需要了解基本数据类型有哪些?数字int、布尔值bool、字符串str、列表list、元组tuple、字典dict等,其中包括他们的基本用法和其常用的方法,这里会一一列举出来,以便参考。然后我们还需要了解一些运算符,因为这些基本数据类型常常会用于一些运算等等。一、运算符  运算通常可以根据最终获得的值不同,可以
CuterCorley CuterCorley
4年前
商业数据分析从入门到入职(7)Python基础数据结构及其操作
一、列表之前的数据类型一般都是单个值,而不能再存储像矩阵、数组这种结构存储多个元素,要是需要达到这样的目标、需要使用新的数据类型,Python中提供了4种数据结构来存储多个对象,称它们为容器类型(ContainerTypes),包括如下几种类型:列表List元组Tuple字典Dictionary集合Set1.创建列表其实,
小万哥 小万哥
1年前
Python 集合(Sets)1
集合集合用于在单个变量中存储多个项。集合是Python中的4种内置数据类型之一,用于存储数据集合,其他3种是列表(List)、元组(Tuple)和字典(Dictionary),它们都具有不同的特性和用途。集合是一种无序、不可更改()、无索引的集合。创建一个
Stella981 Stella981
3年前
Python之dict详解
Python字典是另一种可变容器模型(无序),且可存储任意类型对象,如字符串、数字、元组等其他容器模型。本次主要介绍Python中字典(Dict)的详解操作方法,包含创建、访问、删除、其它操作等,需要的朋友可以参考下。字典由键和对应值成对组成。字典也被称作关联数组或哈希表。基本语法如下:1.创建字典1234567\
Stella981 Stella981
3年前
Python初识day2
本节内容:1.列表、元组操作2.字符串操作3.字典操作4.集合操作5.文件操作一、列表、元组操作1.列表:列表是我们使用频率最高的数据类型之一,由一个中括号\\括起来,里面的值可以是任何类型(也可以是一个列表)。  列
Wesley13 Wesley13
3年前
2.3 JavaScript 基本数据类型
我们在程序中所使用的任何值都是有类型的。JavaScirpt仅有几大基本数据类型。1:数字包括浮点数与整数,例如这些都是属于数字:1,100,3.14。2:字符串包括任意数量字符组成的序列,例如:"a","12","two","123helloworld"。3:布尔值包括true和false。4:unde
Stella981 Stella981
3年前
Python 的可变类型与不可变类型(即为什么函数默认参数要用元组而非列表)
Python的内建标准类型有一种分类标准是分为可变类型与不可变类型:可变类型:列表、字典不可变类型:数字、字符串、元组因为变量保存的实际都是对象的引用,所以在给一个不可变类型(比如int)的变量a赋新值的时候,你实际上是在内存中新建了一个对象,并将a指向这个新的对象,然后将原对象的引用计数–1.比如下面的示例:
小万哥 小万哥
1年前
Python 元组完全指南1
元组用于在单个变量中存储多个项目。mytuple("apple","banana","cherry")元组是Python中的4种内置数据类型之一,用于存储数据集合,另外还有列表、集合和字典,它们都具有不同的特性和用途。元组是有序且不可更改的集合。元组使用圆
卡里笔记
卡里笔记
Lv1
网络空间安全专业在读,专注Python开发与网络安全学习。记录Python报错调试过程,复盘CTF靶场实战案例。开发工具使用VSCode、Burpsuit与Kali系统。不定期更新学习笔记,欢迎讨论大学生技术成长路径。
文章
1
粉丝
0
获赞
0
热门文章

暂无数据