python函数进阶小结_47-Python进阶小结

这篇博客总结了Python编程中的异常处理,包括通用的异常捕获方法;深入探讨了深浅拷贝的区别,并通过实例展示了它们在列表操作中的应用;还详细介绍了整型、浮点型、字符串、列表、元组、字典和集合等数据类型的内置方法及其特性。内容涵盖了可变与不可变类型、有序与无序的概念,以及各类数据类型的常用操作方法。
摘要由CSDN通过智能技术生成

Python进阶小结

一.异常TODO

万能捕捉异常公式

try:

# 逻辑代码

1/0

except Exception as e:

print(e)

division by zero

二、深浅拷贝

拷贝/浅拷贝/深拷贝都是针对可变类型数据而言的

2.1拷贝

l1 = ['a','b','c',['d','e','f']]

l2 = l1

l1.append('g')

print(l1)

print(l2)

# ['a', 'b', 'c', ['d', 'e', 'f'], 'g']

# ['a', 'b', 'c', ['d', 'e', 'f'], 'g']

如果l2是l1的拷贝对象,则l1内部的任何数据类型的元素变化,则l2内部的元素也会跟着改变,因为可变类型值变id不变

2.2 浅拷贝

import copy

l1 = ['a','b','c',['d','e','f']]

l2 = copy.copy(l1)

l1.append('g')

print(l1)

print(l2)

l1[3].append('g')

print(l1)

print(l2)

# ['a', 'b', 'c', ['d', 'e', 'f'], 'g']

# ['a', 'b', 'c', ['d', 'e', 'f']]

# ['a', 'b', 'c', ['d', 'e', 'f', 'g'], 'g']

# ['a', 'b', 'c', ['d', 'e', 'f', 'g']]

如果l2是l1的浅拷贝对象,则l1内的不可变元素发生了改变,l2不变;如果l1内的可变元素发生了改变,则l2会跟着改变

2.3 深拷贝

import copy

l1 = ['a','b','c',['d','e','f']]

l2 = copy.deepcopy(l1)

l1.append('g')

print(l1)

print(l2)

l1[3].append('g')

print(l1)

print(l2)

# ['a', 'b', 'c', ['d', 'e', 'f'], 'g']

# ['a', 'b', 'c', ['d', 'e', 'f']]

# ['a', 'b', 'c', ['d', 'e', 'f', 'g'], 'g']

# ['a', 'b', 'c', ['d', 'e', 'f']]

如果l2是l1的深拷贝对象,则l1内的不可变元素发生了改变,l2不变;如果l1内的可变元素发生了改变,l2也不会变,即l2永远不会因为l1的变化而变化

三、数据类型内置方法

3.1 数字类型内置方法

3.1.1 整型

作用:定义年龄/身高/体重/id号

定义方式:

age = 18

age = int('18')

方法: + - * / % // **

多个值or一个值:一个值

有序or无序:压根没有有序无序这一说

可变or不可变:不可变

可变:值变id不变,值变id也变

3.1.2 浮点型

作用:定义薪资/价格

定义方式:

salary = 3.2

salary = float('3.2')

方法:+ - * / % // **

多个值or一个值:一个值

有序or无序:压根没有有序无序这一说

可变or不可变:不可变

3.2 字符串类型内置方法

name = 'nick'

name = "lwx"

name = '''

lwx

lwx

'''

name = """

lwx

lwx

"""

name = "'lwx'"

name = '"lwx"'

3.2.1方法

优先掌握

索引取值

切片

长度

切分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:居中填充/居左填充/居右填充/填充0

expantabs:扩展tab键

capitalize/swapcase/title:大写/大小写转换/首字母大写

is系列:略

多个值or一个值:一个值

有序or无序:有序

可变or不可变:不可变

3.3 列表类型内置方法

friends_list = ['longzeluola','canglaoshi','qiaobenai','nick']

lis = list('abcd')

3.3.1 方法

方法:

优先掌握

索引取值(即可取又可改)

切片

长度

append

成员运算

for循环

需要掌握

count:元素个数计数

remove:移除元素

reverse:反转列表

pop:删除元素

insert:插入元素

sort:列表排序

index:索引元素

del:删除元素

extend:扩展列表

clear:清除列表

多个值or一个值:多个值

有序or无序:有序

可变or不可变:可变

3.4 元祖类型内置方法

friends_tuple = ('longzeluola','canglaoshi','qiaobenai','nick')

tup = tuple('abcd')

3.4.1 方法

方法

优先掌握

索引取值(无法更改)

切片

长度

成员运算

for循环

count:元素个数计数

index:元素位置索引

多个值or一个值:多个值

有序or无序:有序

可变or不可变:无可变不可变这一说

3.5 字典类型内置方法

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)

3.5.1 方法

方法

优先掌握

按键取值

长度

keys/values/items

for循环

成员运算

需要掌握

pop:删除元素

fromkeys:由一个列表生成一个字典,默认值为None

setdefault:有指定key不会改变值;无指定key则改变值

get:通过key获取value,无key默认获取None

update:扩展字典

del:删除字典键值对

多个值or一个值:多个值

有序or无序:无序

可变or不可变:可变

3.6 集合类型内置方法

s = set()

s = {1,2,3,4,5,1}

3.6.1方法

方法:

优先掌握

去重

并集 |

交集 &

差集 -

对称差集 ^

父集 > >=

子集 <&emsp;<=

==

需要掌握

add:添加元素

difference_update:更新该集合没有的元素

isdisjoint:如果两个元素交集为空返回True,否则返回False

remove:移除元素 # 值不存在会报错

discard :移除元素 # 不会报错

多个值or一个值:多个值

有序or无序:无序

可变or不可变:可变

3.7 布尔类型

四、数据类型分类

4.1 按值个数

一个值

多个值

整型/浮点型/字符串

列表/元祖/字典/集合/

4.2 按有序无序

4.3 按可变不可变

可变

不可变

列表/字典/集合

整型/浮点型/字符串

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值