Python-Basis-11th

周二,晴,记录生活分享点滴

参考博客1:https://www.cnblogs.com/yuanchenqi/articles/5782764.html  

参考博客2:https://www.cnblogs.com/yuanchenqi/articles/5828233.html

参考博客3:https://www.cnblogs.com/alex3714/articles/5717620.html

参考博客4:https://www.cnblogs.com/alex3714/articles/5740985.html

Python版本:3.5

深浅拷贝

浅copy

只copy第一层

# 两个人使用同一银行卡  # 浅copy

father = ["BA", 10001, [5000, 1000]]  # 第一个账户 ,额度5000,余额1000
mother = father.copy()  # 第二个账户

mother[0] = "MA"  # 改变账户名
mother[1] = 10002  # 改变账户代号

father[2][1] -= 200  #第一个账户支出200

print(mother)  #第二个账户同步第一个账户的数据,即显示支出200后的结果

# ['MA', 10002, [5000, 800]]

深copy

完全克隆一份

# 三个人使用同一张银行卡  #深copy
import copy
father = ["BA",10001,[5000,1000]]

mother = father.copy()
mother[0] = "MA"
mother[1] = 10002

child = copy.deepcopy(father)  # 深拷贝 # 将father的钱完全拷贝一份,不走mother的流程
child[0] = "NI"
child[1] = 10003

child[2][1] -= 500 # child支出500
father[2][1] -= 400 # father支出400

print(mother) # ['MA', 10002, [5000, 600]]
# mother只能看到father支出的400,无法发现child支出的500,说明child进行了深拷贝
print(child) # ['NI', 10003, [5000, 500]]

 小结:

浅copy无论在字典还是列表中,都只copy第一层

深copy属于完全复制一层

在实际应用中,浅copy不常用

集合 set

定义及作用

定义:集合是一个无序的,不重复的数据组合。

作用:

去重,把一个列表变成集合,就自动去重了

关系测试,测试两组数据之前的交集、差集、并集等关系

常用操作

s = set([3,5,9,10])      #创建一个数值集合  
  
t = set("Hello")         #创建一个唯一字符的集合  


a = t | s          # t 和 s的并集  
  
b = t & s          # t 和 s的交集  
  
c = t – s          # 求差集(项在t中,但不在s中)  
  
d = t ^ s          # 对称差集(项在t或s中,但不会同时出现在二者中)  
  
   
  
基本操作:  
  
t.add('x')            # 添加一项  
  
s.update([10,37,42])  # 在s中添加多项  
  
   
  
使用remove()可以删除一项:  
  
t.remove('H')  
  
  
len(s)  
set 的长度  
  
x in s  
测试 x 是否是 s 的成员  
  
x not in s  
测试 x 是否不是 s 的成员  
  
s.issubset(t)  
s <= t  
测试是否 s 中的每一个元素都在 t 中  
  
s.issuperset(t)  
s >= t  
测试是否 t 中的每一个元素都在 s 中  
  
s.union(t)  
s | t  
返回一个新的 set 包含 s 和 t 中的每一个元素  
  
s.intersection(t)  
s & t  
返回一个新的 set 包含 s 和 t 中的公共元素  
  
s.difference(t)  
s - t  
返回一个新的 set 包含 s 中有但是 t 中没有的元素  
  
s.symmetric_difference(t)  
s ^ t  
返回一个新的 set 包含 s 和 t 中不重复的元素  
  
s.copy()  
返回 set “s”的一个浅复制
View Code
a = set([1, 2, 3, 4, 5])
b = set([4, 5, 6, 7, 8])

# intersection()  交集
print(a.intersection(b))  # {4, 5}
print(a & b)

# union()  并集
print(a.union(b))  # {1, 2, 3, 4, 5, 6, 7, 8}
print(a | b)

# difference()  差集
print(a.difference(b))  # {1, 2, 3}  # in a but not in b
print(b.difference(a))  # {8, 6, 7}  # in b but not in a
print(a - b)
print(b - a)

# symmetric_difference()  对称差集,即反向交集
print(a.symmetric_difference(b))  # {1, 2, 3, 6, 7, 8}
print(a ^ b)

# issuperset()  父集
print(a.issuperset(b))  # False
print(a > b)

# issubset()  子集
print(a.issubset(b))  # False
print(a < b)

函数

基本语法及特性

定义:

函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可

特性:

1. 减少重复代码

2. 方便修改,使程序变的可扩展

3. 保持代码一致性,使程序变得易维护

语法定义:

def sayhi():#函数名
    print("Hello, I'm nobody!")
 
sayhi() #调用函数

参数

形参:变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量

实参:可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值

小结:形参是模子,实参是例子

必需参数

 未完待续,明天补全...

 

 

 

 

猜你喜欢

转载自www.cnblogs.com/chungzhao/p/12964377.html
th