流程控制<二>

上一篇: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教程

posted @ 2018-07-16 11:21  舒碧  阅读(255)  评论(0编辑  收藏  举报