北风留影 发表于 2018-8-7 08:39:56

python第三天学习总结

  1.集合
  集合主要对里面的元素进行去重和关系运算,元素排列是无序的。
  a.集合的操作
  #############去重
  set1 = {1,1,2,2,3,4,4,5}
  print(set1)#输出set1 = {1,2,3,4,5}
  ##############增加值
  set1 = {1,1,2,2,3,4,4,5}
  set1.add(6)
  print(set1)#输出set1 = {1,2,3,4,5,6}
  set1.update('abc')
  print(set1)#输出set1 = {1,2,3,4,5,6,'a','b','c'}
  ###############删除
  set1.pop()#随机删除
  set1.remove('a')# 按照元素删除,如果无此元素会报错
  set1.clear()#清空集合
  del set1      #删除集合
  #################查询
  用for循环查询,因为集合的元素是无序的
  b.集合的关系运算
  set1 = {1,2,3,4,5}   set2 = {1,2,3,7,8}
  print(set1 & set2) #交集。输出{1, 2, 3}
  print(set1 | set2) #并集。输出{1, 2, 3, 4, 5, 7, 8}
  print(set1 - set2) #差集。输出{4, 5}
  print(set2 - set1) #差集。输出{7, 8}
  print(set1 ^ set2) #反交集。输出{4, 5, 7, 8}
  print(set1 < set2) #子集。输出False
  print(set2 > set1) #超集。输出False
  2.深浅copy
  ######浅copy 第一层各自独立,从第二层开始,共用一个内存地址
  s1 = ]
  s2 = s1.copy()
  s1[-1].append(666)
  print(s1, s2)   #s1和s2一样的值

  print(id(s1),>
  print(id(s1[-1]),>  深copy 无论多少层,都是互相独立的
  import copy
  s1 = ]
  s2 = copy.deepcopy(s1)
  s1.append(4)
  print(s1, s2)#只有s1增加了4,s2并没有增加4,说明第一层不是同一内存地址
  s1[-1].append(33) #在内层的列表增加值33
  print(s1, s2) #只有s1内层列表增加了33,s2并没有增加33,说明内层不是同一内存地址
  3.文件操作
  文件操作的执行流程: 打开文件,产生文件句柄(f1)--- 对文件句柄进行操作(open())---关闭文件句柄(f1.close())
  ########文件的读
  r模式:
  f1 = open('123.txt',encoding='utf8',mode='r')   #123.txt要存在当前目录,否则会报错
  print(f1.read())                              #打印读取的内容
  f1.close()                                    #关闭文件句柄
  f1.read(n)                                    #按照字符读取,n代表n个字符
  f1.readline()                                    #按行读取
  f1.readlines()                                     #返回列表,包含所有的行
  rb模式(读取非文字类):
  f1 = open('1.jpg',mode='rb')            #1.jpg要存在当前目录,否则会报错
  print(f1.read())
  f1.close()
  f1.read(n)                                    #按照字节读取,n代表n个字节
  for循环模式:一次循环占用一块内存,循环完后释放。
  r+模式和r+b模式和以上模式类似。
  ##############文件的写
  f1 = open('456.txt',encoding='utf-8',mode='w')   #没有文件,新建文件写入内容,有原文件,先清空内容,再写入新内容
  print(f1.write('456'))
  f1.close()
  wb模式(非文字类的写入)
  f2 = open('2.jpg', mode='wb')
  f2.write(f1.read())          #f1.read()是读取一个图片内容
  f2.close()
  w+模式和w+b模式和以上模式类似.
  ###############文件的追加
  f1 = open('456.txt',encoding='utf-8',mode='a')   #没有文件,新建文件写入内容,有原文件,在源文件的基础上增加
  print(f1.write('789'))
  f1.close()
  ab模式 a+模式 a+b模式和以上模式类似
  #########文件的其它常用操作
  f1.seek() #调整光标的位置
  f1.tell() # 告诉光标的位置
  with open('123.txt', encoding='utf-8') as f1    #不用主动关闭文件句柄
  4.初识函数
  函数:以功能为导向,解决重复代码多 可读性差的问题
  函数的定义:
  def 关键字 函数名():
  函数体
  函数执行:函数名()
  函数的return:终止函数或给函数的执行者返回值。
  函数的参数:
  #########实参角度
  a.位置参数按照顺序一一对应
  def func1(a, b, c):
  print(a, b, c)
  func1(1, 2, 3)    #a=1 b=2 c=3
  b.关键字传参 一一对应
  def func1(a, b, c):
  print(a, b, c)
  func1(c=1,b=2,a=3)
  c.混合参数(同时包含位置参数和关键字传参),关键字参数必须在位置参数后面
  def func1(a, b, c):
  print(a, b, c)
  func1(1,2,c=3)
  ############形参角度
  a.位置参数按照顺序一一对应
  def func1(a, b, c):
  print(a, b, c)
  func1(1, 2, 3)    #a=1 b=2 c=3
  b.默认参数,默认参数在位置参数的后面。
  def func1(a, b, c=3):
  print(a, b, c)
  func1(1,2)
  #############动态参数 args:所有的位置参数,放在一个元组中.kwargs:所有的关键字参数,放在一个字典中
  def func1(*args, kwargs):#函数的定义的时候 代表聚合
  print(args)
  print(kwargs)
  func1(,{'name':'cc', 'age':'18'})   #函数的执行的时候 代表打散
  形参的顺序:位置参数--args--默认参数--**kwargs
页: [1]
查看完整版本: python第三天学习总结