八大基本数据类型
1.整型int
2.浮点型float
3.字符串型str
4.列表list
5.字典dict
6.布尔类型bool
7.元组tuple
8.集合set
(一)数字类型
【1】整型int
(1)作用
- 整数类型用于表示整数,是一种基本的数字类型,广泛用于表示计数、索引等整数值。
(2)整型定义
# 1.整型定义
number=18
# 查看内存地址
print(id(number))# 2830603059984
# 查看数据类型
print(type(number))# <class 'int'>
# 查看变量值
print(number)# 18
# 2.整型的运算
# 2.整型的运算
x=6
y=3
print(x+y)#9
print(x-y)#3
print(x*y)#18
print(x/y)#2
【2】浮点型float
(1)作用
- 浮点类型用于表示带有小数部分的数值,适用于需要更精确表示的情况。
(2)浮点型定义
# 1.浮点型定义
number=4.0
#查看内存地址
print(id(number))# 2340533952784
#查看数据类型
print(type(number))# <class 'float'>
#查看变量值
print(number)# 4.0
#2.浮点型运算
x=6.0
y=3.0
print(x+y)#9.0
print(x-y)#3.0
print(x*y)#18.0
print(x/y)#2.0
(二)字符串类型
(1)作用
- 字符串类型用于表示文本信息,是一种非常重要的数据类型,用于处理文字、字符等信息。
(2)定义方式
- 字符串可以用单引号、双引号或者三引号进行定义
#1.定义字符串
name='syh'
name_1="syh"
name_2='''syh'''
#查看内存地址
print(id(name))# 1889386765552
#查看数据类型
print(type(name))# <class 'str'>
#查看变量值
print(name)#syh
- 用引号引起来的部分就是对应变量的值(字符串类型),
- 并且对于变量名的值用单引号、双引号、多引号,都可以定义字符串本质上是没有区别的(这些引号定义字符串的方式是等价的)
(3)引号嵌套的配对问题
#单引号内部可以使用双引号,只支持单引号,不支持单个的引号
res='my name is syh,my age is 18.hope your life : "wonderful" '
#双引号内部可以使用单引号,并且可以使用多个单引号
res1="my name is syh,my age is 18.hope your life : 'wonderful '"
#错误示范:单引号内使用了单引号会导致语法错误
res2='my name is syh,my age is 18.hope your life : 'wonderful' '
(4)多行字符串
- 三个单引号或者三个双引号可以支持多行字符串
s1='''
哈哈哈
哈哈哈
哈哈哈
哈哈哈
'''
s2="""
哈哈哈
哈哈哈
哈哈哈
哈哈哈
"""
(5)字符串的使用
- 数字可以进行加减乘除等运算。
- 字符串也可以进行运算,但是只能进行相加和相乘运算。
-
相加
- 字符串通过加号 + 进行拼接。
- 字符串相加就是字符串拼接。
#字符串相加
res='hello'
res1='world'
print(res + res1)#helloworld
-
相乘
- 字符串可以使用乘号 * 进行重复
- 相乘相当于字符串进行了多次相加
#字符串相乘
s='hello'
print(s * 3)#hellohellohello
-
索引取值
- 字符串属于序列类型,所谓序列,指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们。
#字符串索引取值
ss='hello world'
#取索引为2的值
print(ss[2])# l
- Python 还支持索引值是负数,此类索引是从右向左计数,换句话说,从最后一个元素开始计数,从索引值 -1 开始。
#字符串索引取值还支持索引值是负数。
ss='hello world'
#取索引为+1的值
print(ss[-1])# d
(6)格式化输出
- %输出
- 使用
%
运算符进行格式化输出,可以在字符串中插入占位符,然后通过%
运算符传入相应的值。 - %s和%d是占位符,分别表示字符串和整数。
%s
:字符串%d
:整数- %f:浮点数
%x
:十六进制整数
- 使用
#%s格式化输出
name='syh'
age=18
gender='male'
print('my name is %s' % name)#my name is syh
print('my age is %s' % age)#my age is 18
print('my gender is %s' % gender)#my gender is male
#format格式化输出
name='syh'
age=18
gender='male'
print('my name is {},my age is {},my gender is {}'.format(name,age,gender))
#拓展 f+{}输出
name='syh'
age=18
gender='male'
print(f'my name is {name},my age is {age},my gender is {gender}')
(三)列表类型list
(1)作用
- 用来记录多个属性相同的值,方便存取。
(2)定义
#列表的定义
name_list=['syh','susu','haha']
#列表的内存地址
print(id(name_list))#2179628813888
#列表的数据类型
print(type(name_list))#<class 'list'>
# 列表的变量值
print(name_list)#['syh', 'susu', 'haha']
(3)使用
-
取值索引
- 列表类型是用索引来对应值,索引代表的是数据的位置,从0开始计数
# 索引取值
name_list=['syh','susu','haha']
print(name_list[0])#syh
print(name_list[1])#susu
print(name_list[2])#haha
-
列表的嵌套以及嵌套取值
- 列表可以嵌套在其他列表中,形成二维或多维数组,通过嵌套的方式可以方便地处理复杂的数据结构。
#列表嵌套
name_list=['syh','susu','haha']
list=[1,2,3,4,5]
name_list_list=[name_list,list]#[['syh', 'susu', 'haha'], [1, 2, 3, 4, 5]]
print(name_list_list)
#列表嵌套取值
#取值1
l=name_list_list[1][0]#1
print(l)
# 取值syh
l1=name_list_list[0][0]#syh
print(l1)
(四)字典类型dict
(1)作用
- 如果我们需要用一个变量记录多个值,但多个值是不同属性的
- 比如人的姓名、年龄、身高,用列表可以存,但列表是用索引对应值的,而索引不能明确地表示值的含义
- 这就用到字典类型,字典类型是用key:value形式来存储数据
- 其中key可以对value有描述性的功能,能够明确的描述详细信息
(2)定义
- 大括号内部可以放多个元素,元素与元素之间用逗号隔开,是以key:value键值对应的关系存储的。
- key:是对value的描述性信息,一般情况是字符串。
- value:真正的数据,相当于变量值,可以是任意的数据类型。
#字典定义
dict={'name':'syh','age':18,'gender':'male'}
#查看内存地址
print(id(dict))#2707770711104
#查看数据类型
print(type(dict))#<class 'dict'>
#查看变量值
print(dict['name'])#syh
(3)取值
- 字典不能通过索引进行取值,需要通过字典的key取值
#字典定义
dict={'name':'syh','age':18,'gender':'male'}
#查看内存地址
print(id(dict))#2707770711104
#查看数据类型
print(type(dict))#<class 'dict'>
#取值
print(dict['name'])#syh
(4)字典嵌套以及取值
#字典的嵌套以及取值
info = {
'name': 'Dream',
'addr': {
'国家': '中国',
'info': [666, 999, {'编号': 466722, 'hobby': ['read', 'study', 'music']}]
}
}
name=info['name']
print(name)
addr=info['addr']['国家']
print(addr)
number=info['addr']['info'][0]
print(number)
bc=info['addr']['info'][2]['编号']
print(bc)
hobby=info['addr']['info'][2]['hobby'][2]
print(hobby)
print(f'my name is {name},my country is {addr},my number is {number},my bc is {bc},my hobby is{hobby}')
(五)布尔类型bool
(1)作用
- 布尔类型用于表示逻辑值,只有两个取值:True 和 False。
- 在编程中,布尔类型经常用于控制程序的流程,例如条件判断、循环等。
(2)定义
#布尔定义
is_right=True
is_wrong=False
print(is_right)#True
print(is_wrong)#False
(3)使用
-
条件判断
- 布尔类型常常用于条件判断,例如 if 语句中
is_right=True
if is_right:
print('正确')#正确
else:
print("错误")
is_right=False
if is_right:
print('正确')
else:
print("错误")#错误
-
比较运算
- 布尔类型还可以用于表达式的判断,例如比较运算
print(3>5)#False
print(5>2)#True
补充Python中的真与假
- 假的:0 布尔值是False 空字符串'' 空列表[] 空字典{} 空集合set=set()等。
- 真的:非零数字 布尔值是True 非空字符串 非空列表 非空字典 非空集合等 。
(六)元组tuple
(1)作用
- 元组(tuple)是一种不可变的序列类型,类似于表格,用于存储多个有序元素。
- 元组的元素不能被修改、删除或者添加。
- 元组是不可变的数据类型。
- 元组通常用来存储相关联的数据,保持数据的完整性。
(2)定义
- 元组通过小括号定义,元组之间用逗号隔开。
- 元组可以使用索引来查看元组的元素。
- 元组中只有一个元素的时候,要在元素的后面加逗号,否则会改变元组的数据类型。
#1.元组的定义
t=(1,2,'syh',4,5)
#2.查看元组的元素
print(t[2])#syh
print(t[4])#5
#3.查看元组的数据类型
print(type(t))#<class 'tuple'>
t=('hello')
print(type(t))#<class 'str'>
t1=('hello',)
print(type(t1))#<class 'tuple'>
(3)使用
-
元组的不可变性
t=(1,2,3,4,5,6)
# 对元组内的元素进行改值,会报错
t[0]=666#TypeError: 'tuple' object does not support item assignment
#对元组内的元素进行删除,会报错
del t[1]#TypeError: 'tuple' object doesn't support item deletion
#添加元素到元组内,会报错
t.append('hello')#AttributeError: 'tuple' object has no attribute 'append'
-
元组的基本操作
- 元组支持的操作有:切片、拼接等。
#元组的切片
t=(1,2,3,4,5,6)
#切片
print(t[0:3])#(1, 2, 3)
print(t[3:])#(4, 5, 6)
#元组的拼接
t=(1,2,3,4,5,6)
t1=t+('hello','syh')#(1, 2, 3, 4, 5, 6, 'hello', 'syh')
print(t1)
-
元组解包
# 元组的解包
t=(1,2,'syh','hello','world')
a,b,c,d,e=t
print(a)#1
print(b)#2
print(c)#syh
print(d)#hello
print(e)#world
(七)集合set
(1)作用
- 集合set是一种无序、不重复的数据类型,可以用来存储多个独立的元素。
- 集合可以用来去重、执行集合运算(交集、并集、差集等)、检查成员资格。
(2)定义
- 集合是用大括号来定义的,集合的各个元素是不可重复的,可以放入不同的数据类型。
- set_1=set{}
# 1.集合的定义
set={1,2,3,4,5}
#查看集合的数据类型
print(type(set))#<class 'set'>
#查看集合
print(set)#{1, 2, 3, 4, 5}
(3)使用
(1)去重
s={'syh','susu','hello world',1,2,1,'hello world'}
#集合去重,去掉重复的元素
print(s)#{1, 2, 'susu', 'hello world', 'syh'}
(2)集合运算
-
集合支持多种集合运算
-
并集合集 union / |
-
交集 intersection / &
-
差集 difference / -
-
对称差集 ^
-
值是否相等 ==
-
父集 >
-
子集 <
-
"""集合运算"""
set1={1,2,3,4,5}
set2={1,2,3,6}
#1.合集等于并集 |/union 两个集合全部的元素
print(set1|set2)#{1, 2, 3, 4, 5, 6}
s=set1.union(set2)#两集合全部的元素{1, 2, 3, 4, 5, 6}
print(s)
#2.交集 &/intersection 两个集合都有的元素
s=set1.intersection(set2)#{1, 2, 3}
print(s)
print(set1&set2)#{1, 2, 3}
# #3.差集 -/diffrernce
s=set1.difference(set2)# set1独有的元素 {4, 5}
print(s)
print(set1-set2) #set1独有的元素#{4, 5}
print(set2-set1) #set2独有的元素#{6}
#4.对称差集 ^ 除了两人共有的之外的元素
print(set1^set2)#{4, 5, 6}
#5.值是否相等
print(set1==set2)#两个集合的元素是否一样 False
#6.父集
print({1,2,3,4,5}>{1,2,3})#前面集合是后面集合的父集True
#7.子集
print({1,2,3}<{1,2,3,4,5})#前面集合是后面集合的子集True
(3)集合的不重复性
-
集合中的元素是不可能重复的,就是相同的元素不会重复的存储的。
set={1,1,2,2,3,3,4,5,5,6,6,} print(set)#{1, 2, 3, 4, 5, 6}