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'>

posted on 2021-05-06 15:26  射手九个半  阅读(110)  评论(0编辑  收藏  举报

导航