Python编程-数据类型
数据类型
分类:
可变数据类型:字典dict、列表list、集合set
不可变数据类型分类:数字number、字符串string,元组tuple
特点
可变数据类型特别:
不可变数据类型特点:内存地址的值不可以改变,(内存地址的值不可以改变,使用id()去打印内存地址),a的值发生了变化,内存地址就会重新分配一个id
1 a='abcd' 2 print(a,id(a)) 3 a='abcd1' 4 print(a,id(a))
#响应结果
abcd 1630294713008 abcd1 1630294713264
不可变数据类型
数字number
数字分类:整数int、小数float和bool
数字转换:int类型和float类型之间转换
1 # 数据类型进行装换 2 a5=1.5 3 b5=1 4 # 浮点型 5 print(a5,type(a5)) 6 print(b5,type(b5)) 7 # 整型 8 print(int(a5)) 9 print(float(b5))
#响应信息 1.5 <class 'float'> 1 <class 'int'> 1 1.0
运算符:+ - * %取余数 **乘方 // 整数除 / 浮点除
1 a1=19 2 print('a1=%d'%a1) 3 b1=8 4 print('b1=%d'%b1) 5 print('a1+b1=%d'%(a1+b1)) 6 print('a1-b1=%d'%(a1-b1)) 7 print('a1*b1=%d'%(a1*b1)) 8 9 print('a1/b1=%d'%(a1/b1)) 10 11 print('取余:a1%b1={}'.format(a1%b1)) 12 print('乘方:2**4={}'.format(2**4)) 13 print('整数除,结果只取整数:a1//b1={}'.format(a1//b1))
a1=19 b1=8 a1+b1=27 a1-b1=11 a1*b1=152 a1/b1=2 取余:a1%b1=3 乘方:2**4=16 整数除,结果只取整数:a1//b1=2
比较符 == != <= >= < >
1 print('1等于1:',(1==1)) 2 print('1大于等于1:',1>=1) 3 print('1小于等于1:',1<=1) 4 print('1大于1:',1>1) 5 print('1小于1:',1<1)
1 1等于1: True 2 1大于等于1: True 3 1小于等于1: True 4 1大于1: False 5 1小于1: False
备注: =赋值 ==相等
赋值运算符: = 、 += 、-= 、*=、 /=
1 a3=6 2 b3=7 3 a3+=b3 4 print('a3+=b3,a3=',a3) 5 a3-=b3 6 print('a3-=b3,a3=',a3) 7 a3*=b3 8 print('a3*=b3,a3=',a3) 9 a3/=b3 10 print('a3*=b3,a3=',a3)
#响应结果
a3+=b3,a3= 13 a3-=b3,a3= 6 a3*=b3,a3= 42 a3*=b3,a3= 6.0
数字的常用函数:abs绝对值、ceil向上取整、floor向下取整、round保留小数、random随机数
abs绝对值
ceil向上取整
floor向下取整
round保留小数
random随机数
1 from math import ceil, floor 2 import random 3 a=12.35 4 b=-6.81 5 print('a=',a) 6 print('b=',b,'\n') 7 print('a的绝对值:',abs(a)) 8 print('b的绝对值:',abs(b),'\n') 9 print('a向上取整:',ceil(a)) 10 print('b向上取整:',ceil(b),'\n') 11 print('a向下取整:',floor(a)) 12 print('b向下取整:',floor(b),'\n') 13 print('a保留1位小数:',round(a,1)) 14 print('a保留2位小数:',round(a,2),'\n') 15 print('取0到1之间的随机数',random.random()) 16 print('取20到30之间的随机数',random.randint(20,30))
#响应信息
D:\Python\Python38\python.exe "E:/PycharmProjects/practice/vvipclass01 (1)/vvipclass01/class02/demo3.py" a= 12.35 b= -6.81 a的绝对值: 12.35 b的绝对值: 6.81 a向上取整: 13 b向上取整: -6 a向下取整: 12 b向下取整: -7 a保留1位小数: 12.3 a保留2位小数: 12.35 取0到1之间的随机数 0.8471229714443532 取20到30之间的随机数 23 Process finished with exit code 0
字符串String
定义:通过单引号,双引号,三引号 'xxx' "xxx" """xxx"""
1 str1='小明' 2 str2="小明" 3 str3="""小明""" 4 print(str1,type(str1)) 5 print(str2,type(str2)) 6 print(str3,type(str3))
D:\Python\Python38\python.exe "E:/PycharmProjects/practice/vvipclass01 (1)/vvipclass01/class02/demo3.py" 小明 <class 'str'> 小明 <class 'str'> 小明 <class 'str'> Process finished with exit code 0
字符串切片
作用:由一个大的字符串切成一个小的字符
格式:str[开始值:结束值:步长],左闭右开,包含开始值,不包含结束值
开始值 :从0开始
从左往右取:0开始取
从右往左取 :-1开始取
1 str4='python123' 2 print('输出整个字符串:',str4) 3 print('输出thon:',str4[2:6]) 4 print('正向输出123:',str4[6:9]) 5 print('反向输出123:',str4[-3:]) 6 print('正向输出最后一个字符:',str4[8]) 7 print('反向输出最后一个字符:',str4[-1]) 8 print('正向输出字符串12:',str4[6:8]) 9 print('反向输出字符串12:',str4[-3:-1])
D:\Python\Python38\python.exe "E:/PycharmProjects/practice/vvipclass01 (1)/vvipclass01/class02/demo3.py" 输出整个字符串: python123 输出thon: thon 正向输出123: 123 反向输出123: 123 正向输出最后一个字符: 3 反向输出最后一个字符: 3 正向输出字符串12: 12 反向输出字符串12: 12 Process finished with exit code 0
1 # 隔一个字符取一个,设置间隔为2 2 str4='python123' 3 print('隔一个字符取一个:',str4[::2])
1 # 字符串的翻转,设置间隔为-1 2 str4='python123' 3 print(str4[::-1])
字符串运算符:+ 拼接、 *(次数) 复制
1 # 字符串中运算符 + 拼接 * 复制 *几次 2 str8='a' 3 print(str8+'b') 4 print(str8*9)
D:\Python\Python38\python.exe "E:/PycharmProjects/practice/vvipclass01 (1)/vvipclass01/class02/demo3.py" ab aaaaaaaaa Process finished with exit code 0
特殊字符 \n换行 \t制表符 可以进行缩进
1 a='aaaa' 2 b='bbbb' 3 #输出a和b 4 print(a,b) 5 #拼接a和b 6 print(a+b) 7 #在a和b之间加空格 8 print(a,'\t',b) 9 #在a和b之间换行 10 print(a,'\n',b)
换行和路径
反斜杠\:换行
双反斜杠:路径
r加地址:路径
1 str10='D:\\vip\\vipclass01' 2 print(str10) 3 str10=r'D:\vip\vipclass01' 4 print(str10)
D:\Python\Python38\python.exe "E:/PycharmProjects/practice/vvipclass01 (1)/vvipclass01/class02/demo3.py" D:\vip\vipclass01 D:\vip\vipclass01 Process finished with exit code 0
占位符占位
print('%s真漂亮,今年%d岁'%('秋水',18))
D:\Python\Python38\python.exe "E:/PycharmProjects/practice/vvipclass01 (1)/vvipclass01/class02/demo3.py" 秋水真漂亮,今年18岁 Process finished with exit code 0
format格式占位
print('{}真漂亮,今年{}岁'.format('虚竹',3))
D:\Python\Python38\python.exe "E:/PycharmProjects/practice/vvipclass01 (1)/vvipclass01/class02/demo3.py" 虚竹真漂亮,今年3岁 Process finished with exit code 0
format格式占位指定顺序
print('{0}真漂亮,今年{1}岁'.format('虚竹',3))
D:\Python\Python38\python.exe "E:/PycharmProjects/practice/vvipclass01 (1)/vvipclass01/class02/demo3.py" 虚竹真漂亮,今年3岁 Process finished with exit code 0
f-string
format格式的改良版
1 name='虚竹' 2 age=4 3 print(f'{name}真漂亮,今年{age}岁')
D:\Python\Python38\python.exe "E:/PycharmProjects/practice/vvipclass01 (1)/vvipclass01/class02/demo3.py" 虚竹真漂亮,今年4岁 Process finished with exit code 0
字符串的分割和连接
字符串的分割
spilt分割
格式:spilt(分割内容,次数)
split()分割空白或者说\t \n进行分割
#split()分割空白或者说\t \n进行分割
1 str10='ab-sv\nddf\tssf-dsd=sfd=ssdfs' 2 print(str10.split())
D:\Python\Python38\python.exe "E:/PycharmProjects/practice/vvipclass01 (1)/vvipclass01/class02/demo3.py" ['ab-sv', 'ddf', 'ssf-dsd=sfd=ssdfs'] Process finished with exit code 0
#spilt(分割内容,次数)
1 str10='ab-sv\nddf\tssf-dsd=sfd=ssdfs' 2 print(str10.split('-',1))
D:\Python\Python38\python.exe "E:/PycharmProjects/practice/vvipclass01 (1)/vvipclass01/class02/demo3.py" ['ab', 'sv\nddf\tssf-dsd=sfd=ssdfs'] Process finished with exit code 0
元组Tuple
可变数据类型
字典dict
列表list
集合set
数据类型的转换
元组转换成功列表,通过强制转换list(元组)
1 #元组转换成功列表,通过强制转换list(元组) 2 3 up10=(1,'er') 4 5 print((up10),type(up10)) 6 #打印结果是元组:(1, 'er') <class 'tuple'> 7 print(list(up10),type(list(up10))) 8 #打印结果是列表:[1, 'er'] <class 'list'>
列表转换成元组,通过强制转换 元组=tuple(列表)
1 # 列表转换成元组,通过强制转换 元组=tuple(列表) 2 list8=[1,'2'] 3 print(list8,type(list8)) 4 #打印结果为列表:[1, '2'] <class 'list'> 5 print(tuple(list8),type(tuple(list8))) 6 #打印结果为元组:(1, '2') <class 'tuple'>
字典转成字符串,通过强制转换str(字典)
1 # 字典转成字符串,通过强制转换str1=str(字典) 2 dict5={'name':'xiaoming','age':18} 3 print(dict5,type(dict5)) 4 # 打印结果:{'name': 'xiaoming', 'age': 18} <class 'dict'> 5 print(str(dict5),type(str(dict5))) 6 #打印结果:{'name': 'xiaoming', 'age': 18} <class 'str'>
字符串转为字典,通过eval(字符串)来转换
1 # 字符串转为字典,通过eval(字符串)来转换 2 str5="{'name':'qiushui','age':18}" 3 print(str5,type(str5)) 4 # 打印结果为字符串:{'name':'qiushui','age':18} <class 'str'> 5 print(eval(str5),type(eval(str5))) 6 #打印结果为字典:{'name': 'qiushui', 'age': 18} <class 'dict'>
字符转换为列表,通过split切割
1 # 字符转换为列表,是通过split切割
2 str1='100101,数据100101,1001' 3 print(str1,type(str1)) 4 # 打印结果是字符串:100101,数据100101,1001 <class 'str'> 5 6 #通过split切割,打印结果为列表 7 split1=str1.split(',') 8 print(split1,type(split1)) 9 #打印结果为列表:['100101', '数据100101', '1001'] <class 'list'>