常用数据类型
- 计算机能处理的远远不止数值,还可以处理文本,图形,音频,视频,网页等各种各样的数据,而处理不同的数据,需要使用不同的数据类型来进行表示:
- 数字型:整型【int】,浮点型【float】,复数【complex】
- 布尔型:bool,只有两个值,True和False,注意:True可以被当做1使用,False可以被当做0使用
- 字符串型:str,单引号双引号都一样。
- 列表:list
- 元组:tuple
- 字典:dict
- 集合:set
- 字节:bytes
- 空值:NoneType,只有一个值:None
变量
#一般:变量名 = 变量值
num = 3
#特殊的:说明数据类型,不常用
num : int = 3
#定义多个变量
m1 = m2 = m3 = 100
m1,m2,m3=10,3,1
- 变量的本质:变量是一种存储数据的载体【容器】
- 变量相关函数
#获取变量x在内存中的地址
id(x)
#获取之前定义数据在内存中地址
id(数据)
#获取变量x的数据类型
type(x)
- 与变量相对应的是“常量”,常量中有很多约定的规范
定义:一个变量当中的值无需发生改变,则将该变量定义为常量。
命名规范:所有字母大写,不同单词之间下划线链接。
- python中交换两个变量值的方法
1、普通:找中间变量
2、特殊只适合python:
a,b=b,a
3、智慧型:
a=a+b
b=a-b
a=a-b
- python当中的拆包和打包
# a.拆包:将一个容器中的多个数据进行拆分,拆分成不同的部分,拆包就是用“*”实现分的思想。
x,y,*z = 234,45,65,7,8
print(x,y,z) # 234 45 [65, 7, 8]列表
x,*y,z = 234,45,65,7,8
print(x,y,z) # 234 [45, 65, 7] 8
*x,y,z = 234,45,65,7,8
print(x,y,z) # [234, 45, 65] 7 8
a,b,c = [45,7,78]
print(a,b,c) #45 7 78
# b.打包:将多个零散的数据转换为一个容器,打包就是用“*”实现和的思想。
def test(*num):
print(num,type(num)) # (34, 56, 56, 67, 8, 8, 89, 89, 80) <class 'tuple'>
test(34,56,56,67,8,8,89,89,80)
- 变量的删除:如果一个变量被删除,则相当于该变量从内存空间中被销毁
"""
变量的定义:从无到有
变量的删除:从有到无
"""
# 1.定义【开辟空间】
num = 10
print(num)
# 2.删除【销毁变量】
# 注意1:如果一个变量被删除,则相当于该变量从内存空间中被销毁
# 语法:del 变量名 (delete v. 删除)
del num
# print(num) # NameError: name 'num' is not defined
# 3.内存中的变量
name = '小明'
print(name)
name = 'jack'
print(name)
- python中内存工作原理:
- 1、python中有个检测器,每隔一段时间就会去回收那些创建之后没有被变量指向的内存空间。
- 2、当定义一个变量,会在内存中开辟一份空间,当该变量被删除或某个数据没有变量指向它,
则这些数据都会被系统的垃圾回收机制回收,该被删除的变量或数据所占用的空间会被释放掉,后期可以重复利用,del删除掉的变量所指向空间也会被回收。
- 变量的类型转换:类型的转换,是为了将一种类型转换为另一种类型
- str(x):将x转换为字符串
- int(x):将x转换为整型
- float(x):将x转换为浮点型
- bool(x):将x转换为布尔型
# 1.str(x):将x转换为字符串,x可以是任意类型
a1 = 10
print(a1,type(a1)) #10 <class 'int'>
r1 = str(a1)
print(r1,type(r1)) #10 <class 'str'>
# print(str('abc'))
# 2.int(x):将x转换为整型,x可以是float,bool,str
# 如果x是字符串,则x只能由数字和正负号组成,且正负号只能出现在字符串的开头
print(int(34.6)) #34
print(int(34.1)) #34
print(int(True),int(False)) # 1 0 (一般没必要)
print(int('110')) #110
print(int('+110')) #110
print(int('-110')) #-110
# print(int('a110')) # ValueError: invalid literal for int() with base 10: 'a110'
# print(int('1+10')) # ValueError: invalid literal for int() with base 10: '1+10'
# 3.float(x):将x转换为浮点型(有点有数字或者有数字就可以转),x可以是int,bool,str
# 如果x是字符串,则x只能由数字,小数点和正负号组成,且正负号只能出现在字符串的开头
print(float(34)) #34.0
print(float(True),float(False)) #1.0 0.0
print(float("234")) #234.0
print(float(".234")) #0.234
print(float("2.34")) #2.34
print(float("234.")) #234.0
print(float("+234.")) #234.0
print(float("-234.")) #-234.0
# print(float("a234.")) # ValueError: could not convert string to float: 'a234.'
# 4.bool(x):将x转换为布尔型,x可以是任意类型
# 结论:但凡是每种数据类型中表示空的情况,通过bool()转换,最终的结果都是False
# 应用:if语句和while循环中作为条件使用
print(bool(0),bool(6)) #False True
print(bool(0.0),bool(46.7)) #False True
print(bool(""),bool("fahjga24")) #False True
print(bool([])) #False 空列表
print(bool(())) #False 空元组
print(bool({})) #False 空字典
print(bool(None)) #False 空值