深浅拷贝
#_author: "PXH"
#date:2018/7/28 0028
#这种情况不改变a
# a = 1
# b = a
# b = 2
# print(a,b)
#这种情况改变a
# a = [[1,2],3,4]
# b = a
# b[2] = 5
# print(a,b) #全部影响
#结果[[1, 2], 3, 5] [[1, 2], 3, 5]
import copy
#深浅拷贝
a = [[1,2],3,4]
b = a.copy()
b[2] = 5
b[0][0] = 5
print(a,b) #浅拷贝会产生影响
#结果[[5, 2], 3, 4] [[5, 2], 3, 5]
a = [[1,2],3,4]
b = copy.deepcopy(a)
b[2] = 5
b[0][0] = 5
print(a,b) #深拷贝完全不影响
#结果[[1, 2], 3, 4] [[5, 2], 3, 4]
定义域
#_author: "PXH"
#date:2018/7/28 0028
#创建列表
list_1 = [1,2,3]
list_2 = list([1,2,3])
#创建元组
tuple_1 = (1,2,3)
tuple_2 = tuple([1,2,3])
#创建集合
set_1 = set(["123456",1,2])
#print(set_1,type(set_1))#可以去除重复但是set()的元素一定要是不可变类型
#frozenset()
#判断元素是否在里面
# print("123456" in set_1)
# print("12345" in set_1)
# set_1.add(2) #增加元素
# print(set_1)
# set_1.update("assa") #更新元素分开
# print(set_1)
# set_1.update(["assa",1]) #更新元素分开
# print(set_1)
#set_1.remove()删除某一元素
#set_1.pop()#删除最后元素并返回
#set_1.clear()#清空
#del set_1#删除
#集合有比较关系
# print(set("pxh") == set("pxhhhh"))
# print(set("pxh") < set("pxhwww"))表示包含关系 issubset() 子集
# print(set("pxh") < set("pxh"))无包含关系
# print(set("pxh") > set("pxhhhh"))issuperset() 父集
#既然是集合那么就有交集和并集
print(set("p") and set("pxhsa")) #并集包含所有
print(set("pxhsa") or set("pxh")) #交集包含or前元素所有
print(set("pxhsa").intersection("pxh"))#并集 与 | 一样
print(set("pxhsa").union("pxh"))#交集 与 & 效果一样
print(set("pxhsa").difference("pxh"))#差集前面有而后面没有 与 - 效果一样
print(set("pxhaaaqqq").symmetric_difference("pxhaaxxx1"))#对称差集 与 ^ 效果一样
函数
#_author: "PXH"
#date:2018/7/28 0028
#计算机中的函数一、可以减少代码量,在执行重复工作时二、便于修改,更易扩展三、保持代码一致性
# def count(a,b) :#简单用法
# c = a + b
# return c
# print(count(1,2))
# def logger(n):
# print("start ancthon%d......" % n)
# with open("日志","a",encoding="utf8") as file:
# file.write("ancthon%d\n" % n)
# for i in range(1,101):
# logger(i)
#调用多参数是logger(n=2)这样就可以不按顺序
#也可以给函数设一个初值def logger(n=1)
#在python3默认参数要在最后
def add(*num):#有多少来多少以元组方式存储
Sum = 0
for i in num:
Sum += i
print(Sum)
add(1,2,3,4,5,6)
def add(**keyargs):#可以存放赋值,以字典存储
pass
#函数顺序设置参数->*args->**keyargs
#函数中还有个重要组成return return可以结束函数并且返回值,如果没写return则会返回null如果返回多个参数则会把参数存放到元组中返回
#函数中的变量与全局变量重名时只使用函数里面的变量,全局变量可以参与但不可以修改
# count = 100
# def other():
# count = 0
# count = count + 1
# print(count)
#
# other()
#如果想改全局变量则用 global + 变量嵌套用 nonlocal + 变量