Python进阶小结
Posted nickchen121
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python进阶小结相关的知识,希望对你有一定的参考价值。
目录
异常TODO
万能捕捉异常公式
try:
# 逻辑代码
1/0
except Exception as e:
print(e)
division by zero
深浅拷贝
拷贝
拷贝/浅拷贝/深拷贝都是针对可变类型数据而言的
l1 = ['a','b','c',['d','e','f']]
l2 = l1
l1.append('g')
print(l1) # ['a','b','c',['d','e','f'],'g']
print(l2) # ['a','b','c',['d','e','f'],'g']
如果l2是l1的拷贝对象,则l1内部的任何数据类型的元素变化,则l2内部的元素也会跟着改变,因为可变类型值变id不变
浅拷贝
import copy
l1 = ['a','b','c',['d','e','f']]
l2 = copy.copy(l1)
l1.append('g')
print(l1) # ['a','b','c',['d','e','f'],'g']
print(l2) # ['a','b','c',['d','e','f']]
l1[3].append('g')
print(l1) # ['a','b','c',['d','e','f','g'],'g']
print(l2) # ['a','b','c',['d','e','f','g']]
如果l2是l1的浅拷贝对象,则l1内的不可变元素发生了改变,l2不变;如果l1内的可变元素发生了改变,则l2会跟着改变
深拷贝
import copy
l1 = ['a','b','c',['d','e','f']]
l2 = copy.deepcopy(l1)
l1.append('g')
print(l1) # ['a','b','c',['d','e','f'],'g']
print(l2) # ['a','b','c',['d','e','f']]
l1[3].append('g')
print(l1) # ['a','b','c',['d','e','f','g'],'g']
print(l2) # ['a','b','c',['d','e','f']]
如果l2是l1的深拷贝对象,则l1内的不可变元素发生了改变,l2不变;如果l1内的可变元素发生了改变,l2也不会变,即l2永远不会因为l1的变化而变化
数据类型内置方法
数字类型内置方法
整型
- 作用:定义年龄/身高/体重/id号
- 定义方式:
age = 18
age = int('18')
- 方法:
+ - * / % // **
- 多个值or一个值:一个值
- 有序or无序:压根没有有序无序这一说
- 可变or不可变:不可变
- 可变:值变id不变,值变id也变
浮点型
- 作用:定义薪资/价格
- 定义方式:
salary = 3.2
salary = float('3.2')
- 方法:
+ - * / % // **
- 多个值or一个值:一个值
- 有序or无序:压根没有有序无序这一说
- 可变or不可变:不可变
字符串类型内置方法
- 作用:姓名/
- 定义方式:
name = 'nick'
name = "nick"
name = '''
nick
nick
'''
name = """
nick
nick
"""
name = "'nick'"
name = '"nick"'
- 方法
- 优先掌握
- 索引取值
- 切片
- 长度
- 切分split
- 除两边空白strip
- 成员运算in not in
- for循环
- 需要掌握
- lstrip/rstrip
- rsplit
- upper/lower
- startstwith/endswith
- join
- replace
- isdigit
- 了解
- find/rfind/index/rindex/count
- center/ljust/rjust/zfill
- expantabs
- capitalize/swapcase/title
- is系列
- 优先掌握
- 多个值or一个值:一个值
- 有序or无序:有序
- 可变or不可变:不可变
列表类型内置方法
- 作用:多个女朋友/
- 定义方式:[]内用逗号隔开多个任意数据类型的元素
friends_list = ['longzeluola','canglaoshi','qiaobenai','nick']
lis = list('abcd')
- 方法:
- 优先掌握
- 索引取值(即可取又可改)
- 切片
- 长度
- append
- 成员运算
- for循环
- 需要掌握
- count
- remove
- reverse
- pop
- insert
- sort
- index
- del
- extend
- clear
- 优先掌握
- 多个值or一个值:多个值
- 有序or无序:有序
- 可变or不可变:可变
元祖类型内置方法
- 作用:类似于列表,可以取不可以存
- 定义方式:
friends_tuple = ('longzeluola','canglaoshi','qiaobenai','nick')
tup = tuple('abcd')
- 方法
- 优先掌握
- 索引取值(无法更改)
- 切片
- 长度
- 成员运算
- for循环
- count
- index
- 优先掌握
- 多个值or一个值:多个值
- 有序or无序:有序
- 可变or不可变:无可变不可变这一说
字典类型内置方法
- 作用:值太多列表存容易,取麻烦时使用字典
- 定义方式:
nick_info_dict =
'name':'nick',
'height':180,
'weight':140,
'hobby_list':['read','run','music','fishing','programming','coding','debugging']
for k,v in nick_info_dict.items():
print(k,v)
- 方法
- 优先掌握
- 按键取值
- 长度
- keys/values/items
- for循环
- 成员运算
- 需要掌握
- pop
- fromkeys
- setdefault
- get
- update
- del
- 优先掌握
- 多个值or一个值:多个值
- 有序or无序:无序
- 可变or不可变:可变
集合类型内置方法
- 作用:存多个值,为了集合之间做运算
- 定义方式:
s = set()
s = 1,2,3,4,5,1
- 方法:
- 优先掌握
- 去重
- 并集 |
- 交集 &
- 差集 -
- 对称差集 ^
- 父集 > >=
- 子集 <&emsp;<=
==
- 需要掌握
- add
- difference_update
- isdisjoint
- remove # 值不存在会报错
- discard # 不会报错
- 优先掌握
- 多个值or一个值:多个值
- 有序or无序:无序
- 可变or不可变:可变
布尔类型
- 作用:一般用于判断,除了0/None/空/False自带布尔值为False,其他的数据类型自带布尔值为True
数据类型分类
按值个数
一个值 | 多个值 |
---|---|
整型/浮点型/字符串 | 列表/元祖/字典/集合/ |
按有序无序
有序 | 无序 |
---|---|
字符串/列表/元祖 | 字典/集合 |
按可变不可变
可变 | 不可变 |
---|---|
列表/字典/集合 | 整型/浮点型/字符串 |
以上是关于Python进阶小结的主要内容,如果未能解决你的问题,请参考以下文章