python函数默认参数的注意事项
几种情况:
func(p1,p2,/,p3,*,p4)
"/"和"\*": 有前后级关系,"/"的出现必须在"*"之前;
"/": 代表着它之前的参数项为仅限位置传递,出现在它之后的参数项则表示**可以是位置也可以关键字来**传递参数;
"\*": 代表着它之后的参数项为仅限关键字来传递参数。
示例:
def func(p1,p2,/,p3,*,p4)
调用方式:
func(1,2,3,p4=4)
func(1,2,p3=3,p4=4)
python3的『序列』数据类型包括以下3种:
1. list
列表是可变序列,通常用于存放同类项目的集合(其中精确的相似程度将根据应用而变化)
例:[1,*,*,3]
2. tuple
元组是不可变序列,通常用于储存异构数据的多项集(例如由 enumerate() 内置函数所产生的二元组)。 元组也被用于需要同构数据的不可变序列的情况(例如允许存储到 set 或 dict 的实例)。
例:((2,34,432,2,1,5),(2,34,1,5)) 2,34,5,34 (2,2,43,2,4)
3. range
range 类型表示不可变的数字序列,通常用于在 for 循环中循环指定的次数。
例:range(3,6)
python3函数的参数中星号(*)和双星号(**)的区别
python3中带(*)的注意点:
函数(*(元组))
函数(**{字典})
如下例子:
function(*("hello", "world"))
function(*(1, 2 ,3))
function(**{"aa":1111, "bb": "2222"})
python3中filter,map内置函数的使用注意方法
**lambda** 语法糖
用法:a = lambda x: x*x // 表示『:』之前的x为函数参数,『:』之后的x*x为函数体
----------
**filter**(function/None,iterable) 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。**如果要赋给另一个变量,得使用list()来转换,否则只会是一个临时的迭代器对象。**
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
例:p = [1,3,5,6,7,8]
temp = filter(lambda x: x<6, p) // temp为临时对象,读取一次后对象会清空
p2 = list(temp)
----------
**map**(function, *iterable) 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
**使用方法和注意事项同上**
python代码中函数的文档字符串标注
函数中的文档字符串的输入和输出,例:
def f():
"""hello world
(这里空一行)
hello world,are you OK?"""
pass
>>> print(f.__doc__)