zoukankan      html  css  js  c++  java
  • 流程控制<二>

    上一篇:Numbers、Strings、Lists 笔记<一>
    下一篇:数据结构-Python3.7<三>

    • 如果需要修改迭代中的数据,建议先赋值一个副本(e.g:序列,切片复制的副本作为迭代)
    >>> words=['dbibiubiubi']
    >>> for w in words[:]:
    ...     words.append('haha')
    ...     print(words)
    ...
    ['dbibiubiubi', 'haha']
    
    • 需要修改一系列数字,使用range函数很方便,该函数可以产生一个等差序列,正、负都可以
    >>> for i in range(0,8,3):
    ...     print(i)
    ...
    0
    3
    6
    >>> for i in range(0,-9,-3):
    ...     print(i)
    ...
    0
    -3
    -6
    >>>
    
    • pass语句什么都不做,当语法上需要语句时可以使用,但它不做任何操作
    >>> def myFunc(a):
    ...     pass
    ...
    >>>
    
    • 函数名可以被解释器识别为用户定义/内置函数的类型
    • 函数没有任何return,会返回一个None
    >>> def myFunc():
    ...     pass
    ...
    >>> print(myFunc())
    None
    >>>
    
    • in关键字,测试序列是否包含某个特定的值
    >>> 7 in [4.5,7]
    True
    >>> '5' in '34345'
    True
    >>>
    
    • 函数的参数默认值时在‘函数定义范围内’上进行评估的
    >>> test=5
    >>> def myFunc(a=test):
    ...     print(a)
    ...
    >>> test=7
    >>> myFunc()
    5
    >>>
    
    • 当函数的参数默认值是可变对象例如列表,在不同时候调用函数,会出现共享参数值情况,此时,建议把缺省值默认为None
    >>> def myFunc(value=[]):
    ...     value.append(6)
    ...     print(value)
    ...
    >>> myFunc()
    [6]
    >>> myFunc()
    [6, 6]
    >>> myFunc()
    [6, 6, 6]
    >>>
    
    >>> def myFunc(value=None):
    ...     if value==None:
    ...             value=[]
    ...     value.append(6)
    ...     print(value)
    ...
    >>> myFunc()
    [6]
    >>> myFunc()
    [6]
    >>> myFunc()
    [6]
    >>>
    
    •  在可变参数*args之后出现的参数都是关键字参数
    >>> def myFunc(*args,test=1):
    ...     print('args:',args)
    ...     print('test:',test)
    ...
    >>> myFunc(3,4,54,'enen')
    args: (3, 4, 54, 'enen')
    test: 1
    >>> myFunc(3,4,54,test='enen')
    args: (3, 4, 54)
    test: enen
    
    • 列表参数可以使用*,字典参数可以使用**
    >>> def myFunc(*args,**dicts):
    ...     print('args:',args)
    ...     print('dicts',dicts)
    ...
    >>> a=[3,4,5,56]
    >>> b={'A':'b','B':'b'}
    >>> myFunc(*a,**b)
    args: (3, 4, 5, 56)
    dicts {'A': 'b', 'B': 'b'}
    >>>
    
    • Lambda表达式可以作为函数的语法糖(e.g:作为函数的嵌套函数返回值、作为参数)
    >>> def make_incrementor(n):
    ...     return lambda x: x + n
    ...
    >>> f = make_incrementor(42)
    >>> f(0)
    42
    >>> f(1)
    43
    
    >>> pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
    >>> pairs.sort(key=lambda pair: pair[1])
    >>> pairs
    [(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]
    
    • 函数注释查看(e.g:查看文档注释,查看参数期待类型)
    >>> def myFunc():
    ...     """hahahhahah
    ...     hehehehehehe
    ...     """
    ...     pass
    ...
    >>> print(myFunc.__doc__)
    hahahhahah
            hehehehehehe
    
    >>>
    
    >>> def f(ham: str, eggs: str = 'eggs',apple:int=9):
    ...     pass
    ...
    >>> print(f.__annotations__)
    {'ham': <class 'str'>, 'eggs': <class 'str'>, 'apple': <class 'int'>}
    >>>
    

     阅读网址:Python3.7教程

  • 相关阅读:
    [斜率优化][DP]luogu P3648 序列分割
    [状压DP]luogu P1879 玉米田
    [最短路][期望DP]luogu P1850 换教室
    [DP]JZOJ 3046 游戏
    [组合数学]JZOJ 3013 填充棋盘
    [贪心]JZOJ 3012 购买
    [最大流][二分]JZOJ 1259 牛棚
    [数学][构造]JZOJ 3317 管道
    Cookie和Session
    XSS和CSRF的理解
  • 原文地址:https://www.cnblogs.com/bibi-feiniaoyuan/p/9316590.html
Copyright © 2011-2022 走看看