一、python
中or
和and
的使用
-
1、使用方式
result = a or b result = a and b 复制代码
-
2、
or
计算规则- 当
a
为真的时候就直接返回a
的值,否则返回b
的值
- 当
-
3、
and
计算规则- 当
a
为真的时候返回b
,当a
为假的时候返回a
- 当
-
4、
python
为False
的值None
False
- 0
''/()/[]
{}
二、python
中的三木运算
-
1、格式
result = 条件为真时返回的结果 if 条件 else 条件为假返回结果 复制代码
-
2、使用案例
result = '我是真的' if True else '我是假的' 复制代码
三、python
中函数的定义方式
-
1、常规函数定义方式
def 函数名(参数): pass 复制代码
-
2、
lambda
函数赋值接收的变量 = lambda 参数列表...: 函数返回值 f = lambda x, y: x + y 复制代码
四、函数传参的几种形式
-
1、无参函数
def foo(): pass 复制代码
-
2、固定参数(形参与实参一一对应)
def foo(name, age, gender): pass if __name__ == '__main__': foo('张三', 20, '男') 复制代码
-
3、可变参数(
python
中习惯使用关键词*args
来表示)在函数体中接收的是一个
tuple
元祖def foo(*args): print(args) if __name__ == '__main__': foo(1,2,3,4,5) 复制代码
-
4、关键字参数(
python
中习惯使用关键词**kwargs
来表示)关键字参数传递到函数中是以
dict
的方式展示def bar(**kwargs): print(type(kwargs)) print(kwargs) if __name__ == '__main__': bar(name='张三', gender='男', age=20) # <class 'dict'> #{'name': '张三', 'gender': '男', 'age': 20} 复制代码
-
5、固定参数、可变参数、关键字参数混合使用
原理
- 1.先会把实参不能少于形参固定参数的个数(少于会直接报错)
- 2.把实参优先给固定参数,多余的给可变参数
- 3.如果使用了关键词传递的参数就是关键字参数中
def test(name, age, *args, **kwargs): print(name, age) print(args) print(kwargs) if __name__ == '__main__': test(1, 2, 3, 4, 5, address='广东', mobile = '110') 复制代码
-
6、默认参数
def test(name, age=20): print(name, age) if __name__ == '__main__': test('哈哈') 复制代码
五、函数的返回值
- 1、如果没指定函数返回就返回
None
- 2、函数使用
return
的返回值只有一个 - 3、如果一个函数可以返回一个列表、元祖、字典
- 4、函数可以使用
yield
返回多个值
六、python
中常见的内置函数
-
1、
map
函数(遍历可迭代对象返回一个可迭代对象)-
使用格式
map(函数, iterable...) 复制代码
-
使用案例
list1 = [1, 2, 3, 4, 5] list2 = [6, 7, 8, 9, 10] result1 = map(lambda x: x ** 2, list1) print(list(result1)) result2 = map(lambda x, y: x + y, list1, list2) print(list(result2)) tuple1 = (1, 2, 3, 4) print(list(map(lambda x: x ** 2, tuple1))) 复制代码
-
-
2、
filter
函数(过滤数据)-
使用格式
filter(函数, iterable...) 复制代码
-
使用案例
list1 = [1, 2, 3, 4, 5] print(list(filter(lambda x: x % 2 == 0, list1))) print([x for x in list1 if x % 2 == 0]) 复制代码
-
过滤数据推荐使用列表推导式
list1 = [1, 2, 3, 4, 5] print([x for x in list1 if x % 2 == 0]) 复制代码
-
-
3、
reduce
函数(连续计算)注意需要先导包-
1、定义格式
from functools import reduce result = reduce(函数, iterable, 初始化值) 复制代码
-
2、使用案例
from functools import reduce if __name__ == "__main__": list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9] result = reduce(lambda x, y: x + y, list1) print(result) result2 = reduce(lambda x, y: str(x) + str(y), list1, '==') 复制代码
-
-
4、
sorted
排序函数-
列表排序
sorted([36, 6, -12, 9, -22]) 列表排序 复制代码
-
字符排序
sorted(['bob', 'about', 'Zoo', 'Credit']) #字符串排序,按照ASCII的大小排序 复制代码
-
逆向排序(相当于先升序排序后,然后在反向)
sorted([36, 6, -12, 9, -22], reverse=True) 复制代码
-
添加函数排序使用关键参数
key
(注意这个地方的函数只能传递一个参数的函数)L = [{1: 5, 3: 4}, {1: 3, 6: 3}, {1: 1, 2: 4, 5: 6}] print(sorted(L, key=lambda x: len(x))) 复制代码
-
key
函数需要传递多个函数的时候from functools import cmp_to_key if __name__ == "__main__": L = [{1: 5, 3: 4}, {1: 3, 6: 3}, {1: 1, 2: 4, 5: 6}] print(sorted(L, key=cmp_to_key(lambda x, y: x[1] > y[1]))) 复制代码
-
元祖、字典使用排序
a = [('b', 2), ('a', 1), ('c', 0)] print(sorted(a, key=lambda x: x[0])) print(sorted(a, key=lambda x: x[1])) b = [{'city': '深圳', 'tem': 40}, {'city': '广州', 'tem': 30}] print(sorted(b, key=lambda x: x['tem'])) 复制代码
-