zoukankan      html  css  js  c++  java
  • 【python3】关于《python进阶》1~10章的内容基本知识点

    原文章地址:https://www.ctolib.com/docs/sfile/interpy-zh/index.html

    第一章 *args 和 **kwargs

    *args**kwargs仅仅是一个通俗的命名约定,我们也可以称他们为*he**she,只有星号才是他们的本体。

    运用*args**kwargs我们可以将不定数量的参数传递给函数。*args形成元祖,**kwargs形成字典。

    def test(num, *args, **kwargs):
        print('这是个正常数量的参数:', num)
    print('这是个不定数量的args参数:', args)
    print('看下*args和args有什么区别', *args)
    print('这是个不定数量的kwargs参数:', kwargs)
    print('看下*kwargs和kwargs有什么区别', *kwargs)


    test(1, 2, 'java', 'python', 'shell', 'php', name='Ton', sex=0, age=25)


    # 输出(打印**kwargs会报错https://www.yangyanxing.com/article/kwargs_in_python.html):
    # 这是个正常数量的参数: 1
    # 这是个不定数量的参数: (2, 'java', 'python', 'shell', 'php')
    # 看下*args和args有什么区别 2 java python shell php
    # 这是个不定数量的kwargs参数: {'name': 'Ton', 'sex': 0, 'age': 25}
    # 看下*kwargs和kwargs有什么区别 name sex age

      

    第二章 调试(Debug)

    此处的debug并非开发工具的调试功能(如pycharm中的debug),而是调用模块pdb。其中pdb.set_trace()可以实现在某些特定点查看变量信息和各种执行时信息

    • c: 继续执行
    • w: 显示当前正在执行的代码行的上下文信息
    • a: 打印当前函数的参数列表
    • s: 执行当前代码行,并停在第一个能停的地方(相当于单步进入)
    • n: 继续执行到当前函数的下一行,或者当前行直接返回(单步跳过)

    第三章 生成器

     先来了解一下循坏、遍历、迭代、遍历的区别

    循环(loop),指的是在满足条件的情况下,重复执行同一段代码。比如,while语句。[ 循环则技能对应集合,列表,数组等,也能对执行代码进行操作。]                      
    迭代(iterate),指的是按照某种顺序逐个访问列表中的每一项。比如,for语句。[迭代只能对应集合,列表,数组等。不能对执行代码进行迭代。]                
    遍历(traversal),指的是按照一定的规则访问树形结构中的每个节点,而且每个节点都只访问一次。 [遍历同迭代一样,也不能对执行代码进行遍历。]
    递归(recursion),指的是一个函数不断调用自身的行为。比如,以编程方式输出著名的斐波纳契数列。[线性递归和尾递归。]
    

      

    第四章 Map,Filter 和 Reduce

    Map

    Map会将一个函数映射到一个输入列表的所有元素上 

    map(函数名, 数组, [数组], [数组]...),数组数量要和函数中的传递参数的数量所对应。

    map还可以和匿名函数组合,如:list(map(lambda x: x*2, 数组))

    匿名函数其实就是没有命名的函数,lambda后的x其实就是传递的参,x*2就是返回的值。

    Filter

    filter过滤列表中的元素,并且返回一个由所有符合要求的元素所构成的列表,即改元素的返回值为True。

    Reduce

    当需要对一个列表进行一些计算并返回结果时,Reduce 是个非常有用的函数。举个例子,当你需要计算一个整数列表的乘积时。

    from functools import reduce
    product = reduce( (lambda x, y: x * y), [1, 2, 3, 4] )
    
    # Output: 24
    

      

    第五章 set(集合)数据结构

    set与列表(list)的行为类似,区别在于set不能包含重复的值。

    some_list = ['a', 'b', 'c', 'b', 'd', 'm', 'n', 'n']
    duplicates = set([x for x in some_list if some_list.count(x) > 1])
    print(duplicates)
    ### 输出: set(['b', 'n'])
    

    取交集

    valid = set(['yellow', 'red', 'blue', 'green', 'black'])
    input_set = set(['red', 'brown'])
    print(input_set.intersection(valid))
    ### 输出: set(['red'])  

     取差集

    valid = set(['yellow', 'red', 'blue', 'green', 'black'])
    input_set = set(['red', 'brown'])
    print(input_set.difference(valid))
    ### 输出: set(['brown'])
    


    第六章 三元运算符

    第七章 装饰器

    第八章 Global和Return

    global可以定义一个全局变量

    python中的return可以返回多个值

    第九章 对象变动(Mutation)

    每当你将一个变量赋值为另一个可变类型的变量时,对这个数据的任意改动会同时反映到这两个变量上去。新变量只不过是老变量的一个别名而已。这个情况只是针对可变数据类型。

    第十章 __slots__魔法

     __slots__可以对class指定属性,如果使用指定外的其他属性就会报错。

    子类不会继承父类的__slots__属性,每个子类需要重新定义__slots__属性。

  • 相关阅读:
    curl crt
    test with nmap
    C#查询XML解决“需要命名空间管理器”问题
    Dapper实用教程
    javascript 计算两个日期的差值
    Glib学习笔记(二)
    安装osquery笔记
    Golang多线程简单斗地主
    PHP扩展开发之Zephir
    zabbix 安装记录
  • 原文地址:https://www.cnblogs.com/CSgarcia/p/11766767.html
Copyright © 2011-2022 走看看