博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python_day3
阅读量:35193 次
发布时间:2020-01-31

本文共 3995 字,大约阅读时间需要 13 分钟。

一.  集合操作

  •     去重,把一个列表变成集合,就去重了
  •       关系测试 ,测试两组数据之前的交、差、并、关系

   

1 #assemble 去重   关系测试 2  3 list1=[1,2,3,4,5,6,2,3] 4 list2=[3,4,5,6,7,8,7,8] 5 list3=set([1,2,5]) 6 list4=set([1,2,3,4,5,6,7,8,9]) 7  8 list1=set(list1)   #变成集合后就自动去重 9 list2=set(list2)10 11          #交集   intersection12 print(list1 .intersection(list2))13 print(list1 & list2)14 15             #并集  union16 print(list1.union(list2))17 print(list1 | list2)18 19           #差集  difference20 print(list1.difference(list2))21 print(list1 - list2)      # in list1 but no in list222 print(list2 - list1)      # in list2 but no in list123 24         #对称差集 symmetric difference25 print(list1.symmetric_difference(list2))26 print(list1 ^ list2)                      #把两个集合都重复的去掉27 28           #子集  issubset29 print(list1.issubset(list4))          #list1是list4的子集30 31          #父集  issuperset32 print(list4.issuperset(list1))       #list4是list1的父集33 34 list1.add(123)             #在集合中添加一项35 list2.update([12,34])     #在集合中添加多项36 print(list1)37 print(list2)38 39 list3.remove(5)      #删除一项40 print(list3)41 42 43 print(len(list4))      #集合的长度44 45 print(5 not in  list3) #5不在集合3中?
assemble

 

二.文件操作  (重点!)

  

1 #Author : Felix Li 2 # 文件的操作 3  4               #基础操作 5  6 #f=open("yesterday","r",encoding="utf-8")  #文件句柄 7  8 #f.write("\n--------------------\n我爱济南!\n") 9 #data=f.read()10 #f.close()11 #print(data)12 13 14 15 '''16 17            #高效 的写法  打开文件,读取文件18         19 f=open("yesterday","r",encoding="utf-8")20 21 count=022 for line in f:      #一行行的读 ,内存里只有一行代码   ,f变成了迭代器23     if count== 9:24         print("------我不打印这一行!--------")25         count+=126         continue27     print(line)28     count += 129 30 31 32 33              #low loop34 35 for index,line in enumerate(f.readlines()): #把文件变成一个列表  适合读小文件36     if index == 9:37         print("------我不打印这一行")38         continue39     print(line.strip())40 41 for i in range(5):            #读前五行42     print(f.readline())43 44 #print(f.encoding) #打印文件编码45 46 47 48 49 import sys,time                 #进度条50 for i in range(50):51     sys.stdout.write(">")52     sys.stdout.flush()53     time.sleep(0.1)54 55 56 57 f=open("yesterday","r+",encoding="utf-8")58 print(f.readline())59 print(f.readline())60 print(f.readline())61 print(f.readline())62 print(f.tell())63 f.write(".............")64 print(f.readline())65 '''
file

 

三.字符编码与转码

    ASCII只能存在英文或者特殊字符

 

1 #Author : Felix Li 2  3 import sys 4 print(sys.getdefaultencoding()) 5  6 s="我爱济南" 7 print(s) 8 s_gb2312=s.encode("gb2312")        #把unicode转成gb2312 9 print(s_gb2312)10 11 gb2312_to_unicode=s_gb2312.decode("gb2312")12 print(gb2312_to_unicode)             #把gb2312转成unicode13 14 gb2312_to_utf8=s_gb2312.decode("gb2312").encode("utf_8")15 print(gb2312_to_utf8)           #把gb2312转成utf8
encode_decode

py3中  的 encode还会把string--->bytes类型

 

四.函数与函数式编程

1、    编程方法:

  •       面向对象  类  class
  •       面向过程   过程  def
  •       函数式编程  函数   def

2、函数的优点

  •    可扩展
  •    可减少重复代码
  •  程序易维护 ,保持一致性

3. 形参与实参

   非固定参数

1 #Author : Felix Li 2  3 ''' 4 def text1(): 5     # text1 6      print("函数式编程输出") 7      return 0 8      print("出不来") 9 text1()10 x=text1()11 print(x)12 13 14 def text2(x,y,z):  #形参和实参15     print(x+2)16     print(y/2)17     print(z*x)18 19 text2(2,15,3)20 21 22 #*args:接受N个位置参数,转化成元组23 24 def test3(x,*args):25     print(x)26     print(*args)27 test3(1,2,3,4,5,6)28 29 '''30 31 32 33 34 #**kwargs:把N个关键字参数,转成一个字典的方式35 36 def test4(name,age=24,*args,**kwargs):37     print(name)38     print(age)39     print(args)40     print(kwargs)41 test4('felix',45,50,60,sex="man",ars='山东省')
形参实参 非固定参数

 

 

4.默认参数

   def  test(x,y=2)

         print(x)

         print(y)

  test(1)

#默认参数的特点:调用函数的时候,默认参数非必须传递

   默认参数的用途: 默认安装值

5、局部变量,全局变量

  列表 字典 集合  类  都可以 局部 改 全局

 

6、递归函数 (常用)

     特点:

  •      必须有一个明确的结束条件
  • 每次进入更深一层时,问题规模比上次递归应该减少
1 #Author : Felix Li 2 ''' 3 递归特性:(recursion) 4  5 1. 必须有一个明确的结束条件 6  7 2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少 8 ''' 9 10 # def rec(n):11 #     print(n)12 #     if int(n/2)>0:13 #         return rec(int(n/2))14 #     print("-->",n)15 # rec(10)
recursion

 

7、高阶函数

    

1 def calc(a,b,f):2     return f(a)+f(b)3 4 add=calc(2,-3,abs)5 print(add)
高阶函数

 

转载地址:http://mrtnmu.baihongyu.com/

你可能感兴趣的文章
漫画:HTTP 协议极简教程,傻瓜都能看懂!
查看>>
java高级应用:线程池全面解析
查看>>
Spring Boot 打包插件,真是太有用了!
查看>>
7 个棘手的 JavaScript 面试题!
查看>>
世纪之战:Python和Java,到底学哪个更好?
查看>>
String 也能做性能优化,我只能说牛逼!
查看>>
重磅!!Redis 6.0.0 已发布,有史以来改变最大的版本
查看>>
IntelliJ IDEA 内存优化最佳实践!
查看>>
Spring Boot Dubbo 应用启停源码分析
查看>>
LinkedHashMap 源码分析,底层竟这么简单!
查看>>
在滴滴和头条干了 2 年后端开发,太真实…
查看>>
IntelliJ IDEA 新版本又来了,修复严重 bug!
查看>>
程序员除了写代码,还应重视哪些方面?
查看>>
从 0 开始手写一个Tomcat,7 步搞定!
查看>>
实现java多线程的3种方式,99%人没用过第3种
查看>>
从入门到熟悉 HTTPS 的 9 个问题
查看>>
18 个示例带你掌握 Java 8 日期时间处理!
查看>>
IntelliJ IDEA For Mac 快捷键,够骚,速度收藏!
查看>>
一文搞懂 Java 中的枚举,写得非常好!
查看>>
为什么 TCP 建立连接是三次握手,关闭连接确是四次挥手呢?
查看>>