Python笔记_模块一_05数据类型进阶

05-01-数字及字符串进阶

1.数字型的三种类型
整数int;浮点数float;
复数complex:a=1+3j

2.赋值运算符

运算符描述
=把右侧的运算对象赋值给左侧的运算对象
+=a+=b等同于a=a+b
-=a-=b等同于a=a-b
*=a*=b等同于a=a*b
/=a/=b等同于a=a/b
**=a**=b等同于a=a**b
//=a//=b等同于a=a//b
a=1
b=2
a+=b #a=a+b
print(a)
3

3.字符串中字符的获取
获取单个字符:print(name[0])
切片获取子字符串

1print(name[n:m]),取n~m-1子字符串
l='happynewyear'
print(l[0:5]) #包括0不包括5
print(l[3:6]) #包括3不包括6
happy
pyn

(2print(name[n:m:s]),在n-m之间,以s为步进的子字符串
n之后是n+s,n+2s,n+3s.
l='happynewyear'
print(l[1:6:2])
apn

(3print(name[::-1])
冒号前不加任何值,则默认从第一个元素开始取值;
冒号后不使用任何下标值,则切片操作一直执行至字符串末尾;
以-1位步进值,则以倒序的方式输出;
l='happynewyear'
print(l[:6]) #左边省,从0开始到6
happyn
l='happynewyear'
print(l[3:]) #右边省,从3开始到结尾
pynewyear
l='happynewyear'
print(l[::2]) #左右都省且有2,从第一个开始,每2个取一个
hpyeya

4.字符串的不可变性
不可以改变字符串中的任何元素,如需改变则需要新建一个字符串

s='abcdefg'
s[0]='p' 
因为字符串不可更改,以上不正确

5.字符串的转义

转义字符含义
\反斜杠符号
\b退格
\n换行
\t制表符
\000
s='hello\npython' #反斜杠代表换行
print(s)
hello
python

s='I\'m lilei' #反斜杠加单引号为表示引号,作区分
print(s)
I'm lilei

05-02-列表及字典进阶

1.切片获取列表中连续的几个元素

1[起始位置:结束位置] 
注意:不包括结束位置那个元素
l=[1,2,3,4,5,6]
print(l[2:5])
[3, 4, 5]2[起始位置:结束位置:步长]
l=[1,2,3,4,5,6,7,8,9]
print(l[::-1]) #倒过来取
[9, 8, 7, 6, 5, 4, 3, 2, 1]

2.将字符串转换成列表

l=list('python')
print(l)
['p', 'y', 't', 'h', 'o', 'n']

3.列表的分片赋值

l=list('python')
l[2:]=['a','b','c']
print(l)
['p', 'y', 'a', 'b', 'c']

l=[1,5]
l[1:1]=[2,3,4]
print(l)
[1, 2, 3, 4, 5]

4.用dict函数创建字典

1)根据其他序列新建字典
d=dict([('limei',98),('hanmeimei',99)])
print(d)
{'limei': 98, 'hanmeimei': 99}2)根据关键字参数新建字典
d=dict(lilei=98,hanmeimei=99)
print(d)
{'lilei': 98, 'hanmeimei': 99}

5.嵌套字典
嵌套:将一系列字典存储在列表中,或将列表作为值存在字典中
字典列表;
在字典中存储列表;
在字典中存储字典;

在字典中存储列表;
student1={'name':'李雷','age':18,'grade':98}
student2={'name':'韩梅梅','age':19,'grade':99}
student3={'name':'马冬梅','age':18,'grade':95}
student=[student1,student2,student3]
print(student) 
print(student[1]['age']) #取student2中韩梅梅的age值
[{'name': '李雷', 'age': 18, 'grade': 98}, {'name': '韩梅梅', 'age': 19, 'grade': 99}, {'name': '马冬梅', 'age': 18, 'grade': 95}]
19

6.字典总结

创建字典花括号/dict()
访问字典里的元素利用中括号加要查询的key
更新字典里的元素通过key更改value
字典里的删除操作删除某个元素: del 字典[key];删除每个元素:字典.clear();删除字典本身:del字典;
字典嵌套字典列表;在字典里存储列表;在字典里存储字典

7.列表和字典的引用
python中的赋值可以理解为贴标签,创建数据时相当于把数据放到一个盒子里,进行赋值时相当于在这个盒子上贴一个标签,故以下更改l2,l1也会变。

l1=[1,2,3,4] 
l2=l1 
l2[0]=5 
print(l1)
[5, 2, 3, 4]

解决办法:用.copy()克隆一个数据
(列表、集合、字典都可用)

l1=[1,2,3,4] 
l2=l1.copy()
l2[0]=5 
print(l1)
print(l2)
[1, 2, 3, 4]
[5, 2, 3, 4]

05-03-元组及集合

1.元组与列表
元组创建出来以后,只能读/取/切片,不能改(不可变)
列表中的元素可修改、添加、删除(可变)

a=[1,'hanmeimei',18] ———列表list[]
b=(2,'lilei',19)——元组tuple()

2.创建集合
集合:元素与元素之间不可重复

1)直接用花括号创建集合
set1={1,1,2,2,3,4,5}
print(set1)
{1, 2, 3, 4, 5}2)使用set()方法
set1=set([1,2,4,1,2,8,5,5]) #注意set()里要加上[],否则将默认集合里只有一个元素
print(set1)
{1, 2, 4, 5, 8}

3.集合的交集(intersection)
用&运算符实现

set1={1,2,4,5,8}
set2={1,2,3,5,9}
print(set1&set2) #用&取交集
{1, 2, 5}

4.集合的并集(Union)
用|运算符实现

set1={1,2,4,5,8}
set2={1,2,3,5,9}
print(set1|set2)
{1, 2, 3, 4, 5, 8, 9}

5.集合的差集(Difference)
在set1中但不在set2中的元素
用-运算符实现

set1={1,2,4,5,8}
set2={1,2,3,5,9}
print(set1-set2)
{8, 4}

6.集合的对称差集(Symmeteic Difference)
在set1中或在set2中,但不同时存在于两个集合中的元素
用^运算符实现

set1={1,2,4,5,8}
set2={1,2,3,5,9}
print(set1^set2)
{3, 4, 8, 9}

7.集合操作回顾总结

操作运算符
并集l
交集&
差集-
对称差集^

思考:对称差集可以用其他三种集合操作来实现吗?如何实现?

set1={1,2,4,5,8}
set2={1,2,3,5,9}
print((set1|set2)-(set1&set2)) #先取并再取交,再做差集
{8, 9, 3, 4}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值