Python3学习(2)-中级片


  • 切片:取数组、元组中的部分元素

    •  L=[‘Jack‘,‘Mick‘,‘Leon‘,‘Jane‘,‘Aiden‘]
    • 取前三个:使用索引
    • 取2-4个元素:索引
    • 取最后2个元素:索引,倒序
    • 取前3个元素:索引
  • N=[0,1,2,3,4,5,6,7,8,9]
    • 前8个中每2个取1个

    • 每3个中取1个
  • 高阶函数:map/reduce/filter/sorted
    • map:map()函数接收两个参数,一个是函数,一个是Iterablemap将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。

      • >>> def f(x):
        ...     return x*x
        ...
        >>> r = map(f,[0,1,2,3,4,5,6,7,8,9])
        >>> list(r)
        [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
    • reduce:reduce把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算
    • >>> from functools import reduce
      >>> def add(x,y):
      ...     return x+y
      ...
      >>> reduce(add,[1,3,5,7,9])
      25
    • filter:filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。
    • >>> def is_odd(n):
      ...     return n % 2 == 1
      ...
      >>> list(filter(is_odd,[1,2,4,5,6,9,10,15]))
      [1, 5, 9, 15]
    • sorted:接收一个key函数来实现自定义的排序,例如按绝对值大小排序
    • >>> sorted([36,5,-12,9,-21],key=abs)    #按abs的结果升序排列
      [5, 9, -12, -21, 36]
      >>> sorted([‘BOB‘,‘aBOUT‘,‘zoo‘,‘Credit‘])    #按首字母的ASICC码
      [‘BOB‘, ‘Credit‘, ‘aBOUT‘, ‘zoo‘]
  • 匿名函数
    • 关键字lambda表示匿名函数,冒号前面的x表示函数参数
    • 只能有一个表达式,不用写return,返回值就是该表达式的结果
    • >>> f = lambda x:x*x
      >>> f(5)
      25
  • 面向对象
    • 对象

      • 万物皆为对象
      • 所有事物均可封装为对象
    •  1 #定义一个Student的对象
       2 class Student(Object):
       3     #初始化对象的属性
       4     def __init__(self,name,score):
       5         self.name = name
       6         self.score = score
       7
       8     #定义一个对象的方法print_score
       9     def print_score(self):
      10         print(‘%s: %s‘%(self.name,self.score))
    • 访问限制
      • 属性前加‘__‘(双下划线)表示私有的属性,仅可内部访问,外部无法访问
      •  1 #定义一个Student的对象
         2 class Student(Object):
         3     #初始化对象的属性
         4     def __init__(self,name,score):
         5         #私有属性
         6         self.__name = name
         7         self.__score = score
         8
         9     #定义一个对象的函数print_score
        10     def print_score(self):
        11         print(‘%s: %s‘%(self.__name,self.__score))
    • 继承和多态
      • 继承:儿子会直接继承父亲的属性
      • 多态:可重写父类的方法
    • 获取对象信息
      • type(Object):输出对象的类型。

        • >>> a=‘AAA‘
          >>> type(a)
          <class ‘str‘>
      • isinstance(Object,Type):判断对象的类型
        • >>> isinstance(‘a‘,str)
          True
          >>> isinstance(123,int)
          True
          >>> isinstance(123,str)
          False
      • dir(Object):显示对象的所有属性和方法
        • >>> dir(‘a‘)
          [‘__add__‘, ‘__class__‘, ‘__contains__‘, ‘__delattr__‘, ‘__dir__‘, ‘__doc__‘, ‘__eq__‘, ‘__format__‘, ‘__ge__‘, ‘__getattribute__‘, ‘__getitem__‘, ‘__getnewargs__‘, ‘__gt__‘, ‘__hash__‘, ‘__init__‘, ‘__iter__‘, ‘__le__‘, ‘__len__‘, ‘__lt__‘, ‘__mod__‘, ‘__mul__‘, ‘__ne__‘, ‘__new__‘, ‘__reduce__‘, ‘__reduce_ex__‘, ‘__repr__‘, ‘__rmod__‘, ‘__rmul__‘, ‘__setattr__‘, ‘__sizeof__‘, ‘__str__‘, ‘__subclasshook__‘, ‘capitalize‘, ‘casefold‘, ‘center‘, ‘count‘, ‘encode‘, ‘endswith‘, ‘expandtabs‘, ‘find‘, ‘format‘, ‘format_map‘, ‘index‘, ‘isalnum‘, ‘isalpha‘, ‘isdecimal‘, ‘isdigit‘, ‘isidentifier‘, ‘islower‘, ‘isnumeric‘, ‘isprintable‘, ‘isspace‘, ‘istitle‘, ‘isupper‘, ‘join‘, ‘ljust‘, ‘lower‘, ‘lstrip‘, ‘maketrans‘, ‘partition‘, ‘replace‘, ‘rfind‘, ‘rindex‘, ‘rjust‘, ‘rpartition‘, ‘rsplit‘, ‘rstrip‘, ‘split‘, ‘splitlines‘, ‘startswith‘, ‘strip‘, ‘swapcase‘, ‘title‘, ‘translate‘, ‘upper‘, ‘zfill‘]
      • 实例属性和类方法
        • >>> class Student(object):
          ...     name = ‘Student‘
          ...
          >>> s = Student()
          >>> print(s.name)
          Student
          >>> print(Student.name)
          Student
          >>> s.name = ‘Jack‘
          >>> print(s.name)
          Jack
          >>> print(Student.name)
          Student
  • 单元测试
    • 用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。
    • 被测试模块mydict.py
      •  1 class Dict(dict):
         2
         3     def __init__(self,**kw):
         4         super().__init__(**kw)
         5
         6
         7     def __getattr__(self,key):
         8         try:
         9             return self[key]
        10         except KeyError:
        11             raise AttributeError(r"‘Dict‘ object has no attribute %s" %key)
        12
        13     def __setattr__(self,key,value):
        14         self[key] = value
    • 测试模块TestDict.py
      •  1 import unittest
         2
         3 from mydict import Dict
         4
         5 class TestDict(unittest.TestCase):
         6
         7     def test_init(self):
         8         #完成数据初始化
         9         d = Dict(a=1,b=‘test‘)
        10         #判断d.a是否为1,为1则PASS,否则FAIL
        11         self.assertEqual(d.a,1)
        12         #判断d.b是否为‘test‘
        13         self.assertEqual(d.b,‘test‘)
        14         self.assertTrue(isinstance(d,dict))
        15
        16
        17
        18 if __name__ == ‘__main__‘:
        19     unittest.main()
    • 执行及结果:仅测试一个方法test_init(),且执行通过
      • ?  Python  python3 TestDict.py
        .
        ----------------------------------------------------------------------
        Ran 1 test in 0.000s
        
        OK
    • 说明
      • 测试模块需要继承unittest.TestCase
      • 测试方法命名需要以test开头
      • 使用断言来测试结果
      • setUp():在测试模块执行前,执行的方法
      • tearDown():在测试模块执行结束后,执行的方法
时间: 2024-07-31 06:42:32

Python3学习(2)-中级片的相关文章

python3学习之字符串

s='this is test message' s.capitalize()    首字母大写,其它小写 s.find(sub[, start[, end]])      在指定范围内(默认全部字符串),查找sub是否包含在字符串中,包含时                                             返回第一次匹配的index,否则返回-1 s.rfind(sub[, start[, end]])    在指定范围内(默认全部字符串),查找sub是否包含在字符串中,

Python3学习笔记(urllib模块的使用)转http://www.cnblogs.com/Lands-ljk/p/5447127.html

Python3学习笔记(urllib模块的使用) 1.基本方法 urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None) -         url:  需要打开的网址 -         data:Post提交的数据 -         timeout:设置网站的访问超时时间 直接用urllib.request模块的urlopen()

Python3学习之异常处理详解

本文和大家分享的主要是python3中的异常及相关解决方法,一起来看看吧,希望对大家学习python3有所帮助. 一.错误和异常 1.错误 代码运行前的语法或者逻辑错误 . 语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) def test: ^ SyntaxError: invalid syntax #语法错误示范def test: pass #语法错误示范class Foo pass #语法错误示范 print(haha 其他语法错误 . 逻辑错误 #用户

Python3学习

要做一个儿童搜索引擎的项目(www.kidsearch.cn),所以开始接触各种新的语言,觉得python的爬虫确实很厉害,确实有必要学习. 学习网站:廖雪峰的python3教程http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000 同样,有点难记,可以用这个:www.selflink.cn/links/python 以下是学习笔记.因为语言基本都差不多,所以记的内容大多数是一些细小的知

python3学习笔记(1)

#python学习笔记 17/07/07# !/usr/bin/evn python3# -*- coding:utf-8 -*- #r"" 引号当中的字符串不转义 #练习#打印 '\\\t\n'print(r'\\\t\n') #打印 n = 123print('n = 123') # 打印 f = 456.789print("f = 456.789") #打印 s1 = 'Hello, world!'print("s1 = 'Hello, world!

python3学习笔记(3)

一.内置函数补充1.callable()检测传递的参数是否可以被调用.def f1() pass可以被调用 f2 = 123不可以被调用 2.chr()和ord()chr()将ascii码转换成字符,ord()将字符转换成acsii码在2.7中chr()和ord()用来翻译参数和ascii码的对应关系.例:r = chr(65)print(r)和r = ord("B")print(r) 实例:随机验证码import random #用来生成随机数的模块li = []for i in r

python3学习笔记(0)

一.编程语言主要从以下几个角度分类:1.编译型和解释型2.静态语言和动态语言3.强类型定义语言和弱类型定义语言 编译型:程序运行前先由负责翻译的程序将代码转换成可执行代码进行执行.例如C/C++.Pascal/Delphi.VB.其优点为运行速度快,对系统要求低,适用于开发操作系统.大型应用程序.数据库系统等.解释型:程序运行时每直行到一条指令就由解释程序将所执行到的代码转换成可执行代码进行执行,如此反复,直至程序直行完毕.例如Java.JavaScript.VBScript.Perl.Pyth

Python3学习(1)-基础片

安装(MAC) 直接运行: brew install python3 输入:python3 --version,查看验证安装是否成功 (一定是python3) Python解释器 CPython 官网下载的安装包中,会自带此解释器.也是使用最多的解释器.使用C编写的解释器 IPython使用 在CPython的基础上增强了交互的解释器,执行Python代码与CPython一致. PyPy 使用JIT技术,对Python进行动态编译,从而提升Python的执行速度. Jython 运行在Java平

python3学习笔记(2)

一.面向对象(初识)由类和方法组成,类里面封装了很多功能,根据这个类,可以创建一个这个类的对象,即对象是根据这个类创建的,以后这个对象要使用某个功能的时候就从这个类里面的找.例:str -功能一 -功能二 -功能三 -... s1 = 'alex'str即是类,s1即是根据这个类创建的一个对象. 二.set集合set是一个无序.不重复.可嵌套的集合. 1.语法:se = {}或se = set()或se = set((11,22,33,33)),set()时其实是调用这个类里面的__init__