概述
本篇文章将会讲述python的数据类型,以下是大框架,请对照并确认自己掌握相关知识点,若有不清楚的可以用python自行进行实践或者搜索其它资料辅助理解,本文只对标橙部分进行补充理解。
对于上述框架,需要:
1. 了解python的四种数据类型,类型的转换与获取方法
2. 了解python的运算符号,优先级
3. 掌握python的五种数据结构:列表、元组、字符串、字典、集合,重点掌握它们的创建、访问、更新、插入、删除、复制基本操作。
目录
一、 数据类型
1. 字符串转义
(1) 在字符串内部用反斜杠'\'表示转义
#下列代码的/对'进行了转义
> 'Let/'s go'
Let's go
(2) 用在字符串外部加上r表示转义。
#下面代码对整个字符串进行了转义,则字符串中的/n不表示换行
> r'C:/now/...'
C:/now/...
(3) 于长字符串(即包含很多次换行)可以用三个双引号括起来表示转义
#下述代码对长字符串自动进行换行
> print("""我喜欢python
我要努力学习python
所以每天要学学习个小时""")
我喜欢python
我要努力学习python
所以每天要学学习个小时
三、数据封装(结构)
1. 列表
1.1 分片与复制
(1)分片:
列表[起始索引:终止索引:步长]----将会以步长连续拷贝一个从起初索引到终止索引的列表(注意:①不包含终止索引对应的值;②步长为负的时候则将列表从后往前复制)
#分片复制
> number = [2,4,6,3,5,6,7]
> number[1:5:1]
[4,6,3,5]
> number[1:5:-1]
[6,5,3,6]
(2)赋值、浅复制与深复制
① 赋值----完全共享数据,变动是相关联的
#赋值
> a = [3,2,5,1,7]
> b = a
> b[1] = 55
> b
[3, 55, 5, 1, 7]
> a
[3, 55, 5, 1, 7]
②列表.copy() 或者分片→浅复制----只可以拷贝第一层,则第一层的数据更改不会互相影响;更深层次的为赋值,即数据完全共享。
#浅复制
#深层次同赋值,是完全的数据共享
> l1 = [1,2,3,[11,22,33]]
> l2 = l1[:]
> l1[3][2] = 'aaa'
> l1
[1, 2, 3, [11, 22, 'aaa']]
> l2
[1, 2, 3, [11, 22, 'aaa']]
#第一层则为拷贝,数据不互相影响
> l2[1] = 111
> l1
[1, 2, 3, [11, 22, 'aaa']] #值不变
③列表.deepcopy()→深赋值----数据完全不共享
#深复制
> l1 = [1,2,3,[11,22,33]]
> l2 = l1.deepcopy()
> l1[3][2] = 'aaa'
> l2
[1,2,3,[11,22,33]] #l2的值不变
1.2 比较运算符
# 比较运算符
> num1 = [123,234]
> num2 = [234,22]
> num1 > num2
False
> alpha1 = ['abc']
> alpha2 = ['zaa']
> alpha1 < alpha2
True
Tips:
① 当列表有多个元素的时候只比较第一个元素
② 列表为字符串的时候,只比较字符串的第一个字母
2. 元组
2.1 通过拼接的方式进行插入与删除
#想在a下标为2的位置插入111
> a = [3,2,5,1,7]
> a = a[:2]+[111]+a[2:]
> a
[3, 2, 111, 5, 1, 7]
3. 字符串格式化
3.1 format()
#format()
> "{0} loves {1},{a} loves {1}".format("prince", "princess", a="everybody")
'prince loves princess,everybody loves princess'
Tips:
(1)字符串中相应的部分用变量替换并用大括号括起来。
(2){0},{1}这些在format内部叫做位置关键数,{a}叫做关键字参数(需要赋值左右),位置参数必须在关键字参数前面。
3.2 格式化操作符
格式化操作符如下所示:
在字符串内部加入格式化操作符,紧跟字符串加上%和传入数据,使用方法可以用下面概括:
#操作符
> a = 5
> 'There are %d cat in the garden'%a
'There are 5 cat in the garden'
格式化辅助操作符如下:
#for example
> '%5.1f'%27.5681354
' 27.6'
3.3 转义符
下面是转义符以及其含义:
*序列的内置函数——迭代
*.1 enumerate()
enumerate可以结合for语句一起使用,返回下标和值组成的二元组:
#example
> a = [2,4,5,8,3,7,4]
> for i,num in enumerate(a):
> print(i,num)
0 2
1 4
2 5
3 8
4 3
5 7
6 4
*.2 zip(结构1,结构2,结构3)
结合for语句,可以返回一个多个结构元素遍历的元组:
#example
> a = [6,3,2,6,7]
> b = 'Lovely'
> c = [5,3,2,6,7]
> for i in zip(a,b,c):
> print(i)
(6, 'L', 5)
(3, 'o', 3)
(2, 'v', 2)
(6, 'e', 6)
(7, 'l', 7)
**文章参照了小甲鱼的python教程