<p data-source-line="1">#函数使用
<h3 id="零碎知识" data-source-line="3">零碎知识
<ul data-source-line="5">
灵活的if-else
a = 3 False 5
= 3
= 5
灵活的and/or
b = True 3
<span style="color: #008000">#
<span style="color: #008000"> 当前面的值为真,后面就不需要了<span style="color: #008000"> <span style="color: #008000"> a = True or 5<span style="color: #008000"> <span style="color: #008000"> 当前面的值为假,才会进行后面的运算a = False <span style="color: #0000ff">or
5类型的判断
a = 10
type(a) == type(1(a,<span style="color: #008000">#<span style="color: #008000"> 判断一个对象是否是一个类的实例(对象)<span style="color: #008000">
<span style="color: #008000"> 是返回True,不是返回False
<span style="color: #0000ff">print<span style="color: #000000">(isinstance(a,float)) <span style="color: #008000">#<span style="color: #008000"> 判断一个对象能否调用
<span style="color: #0000ff">print(callable(test))
<span style="color: #0000ff">print
<span style="color: #000000">(isinstance(a,int))<span style="color: #0000ff">print<span style="color: #000000">(isinstance(a,float)) <span style="color: #008000">#<span style="color: #008000"> 判断一个对象能否调用
<span style="color: #0000ff">print(callable(test))
函数" data-source-line="47">匿名函数
-
a +<span style="color: #008000">#<span style="color: #008000"> 将函数作为参数<span style="color: #008000"> <span style="color: #008000"> 可以使函数的功能更加灵活多变
<span style="color: #0000ff">def<span style="color: #000000"> calc(a,b,func):
<span style="color: #0000ff">return<span style="color: #000000"> func(a,b)<span style="color: #0000ff">print(calc(3,5,add))
-
匿名函数的出现
- 将函数作为参数时,若函数只使用一次,没有必要单独定义,然后再传递
- 定义匿名函数需要使用关键字
- 定义格式:
参数列表:表达式
- 以
lambda开头
- 后面跟需要的参数,多个参数使用逗号隔开
- 最后一个参数后跟上':'
- 冒号后跟上表达式,这个表达式就是返回值,不需要使用return
- 以
- 示例1:
(calc(5,2, a,b: a - b))- 示例2:
lt =: ,: 20,: 170: ,: 22,: 167: ,: 18,: 160: ,: 25,: 180<span style="color: #0000ff">def<span style="color: #000000"> key(d):
<span style="color: #0000ff">return d[<span style="color: #800000">'<span style="color: #800000">age<span style="color: #800000">'<span style="color: #000000">] <span style="color: #008000">#<span style="color: #008000"> lt.sort(key=key)<span style="color: #008000"> <span style="color: #008000"> 使用匿名函数lt.sort(key=<span style="color: #0000ff">lambda
d: d[<span style="color: #800000">'<span style="color: #800000">height<span style="color: #800000">'<span style="color: #000000">])
<span style="color: #0000ff">for i <span style="color: #0000ff">in<span style="color: #000000"> lt:
<span style="color: #0000ff">print(i)- 练习:实现列表的sort方法,要求可以指定key,可以逆序
函数可以像普通变量一样进行赋值
(<span style="color: #008000">#<span style="color: #008000"> name是函数的名字
<span style="color: #0000ff">print(hello.<span style="color: #800080">name<span style="color: #000000">) <span style="color: #008000">#<span style="color: #008000"> 可以像普通变量一样进行赋值
a =<span style="color: #000000"> hello
<span style="color: #0000ff">print(hello.<span style="color: #800080">name<span style="color: #000000">) <span style="color: #008000">#<span style="color: #008000"> 可以像普通变量一样进行赋值
a =<span style="color: #000000"> hello
<span style="color: #0000ff">print(a.<span style="color: #800080">name<span style="color: #000000">)
hello()
a()
定义:
-
示例:
n *f1 = wai(3<span style="color: #000000">)
f2 = wai(2<span style="color: #000000">)
<span style="color: #0000ff">print<span style="color: #000000">(f1())
<span style="color: #0000ff">print<span style="color: #000000">(f2())
<span style="color: #0000ff">def wai(*<span style="color: #000000">args):
<span style="color: #0000ff">def<span style="color: #000000"> nei():
ret =<span style="color: #000000"> 0
<span style="color: #0000ff">for i <span style="color: #0000ff">in<span style="color: #000000"> args:
ret +=<span style="color: #000000"> i
<span style="color: #0000ff">return<span style="color: #000000"> ret
<span style="color: #0000ff">return<span style="color: #000000"> nei
f1 = wai(1,3<span style="color: #000000">)
<span style="color: #0000ff">print(f1())
作用:当我们想要增加原有函数的功能,但是不想(或无法)改变原来的函数,可以通过装饰器来实现
-
使用:
-
示例:
((@zhuangshiqi <span style="color: #008000">#<span style="color: #008000"> 等价于test = zhuangshiqi(test)
<span style="color: #0000ff">def<span style="color: #000000"> test():
<span style="color: #0000ff">print(<span style="color: #800000">'<span style="color: #800000">hello<span style="color: #800000">'<span style="color: #000000">)
test()
方法)
定义:
示例:
n *f1 = wai(3<span style="color: #000000">)
f2 = wai(2<span style="color: #000000">) <span style="color: #0000ff">print<span style="color: #000000">(f1())
<span style="color: #0000ff">print<span style="color: #000000">(f2()) <span style="color: #0000ff">def wai(*<span style="color: #000000">args):
<span style="color: #0000ff">def<span style="color: #000000"> nei():
ret =<span style="color: #000000"> 0
<span style="color: #0000ff">for i <span style="color: #0000ff">in<span style="color: #000000"> args:
ret +=<span style="color: #000000"> i
<span style="color: #0000ff">return<span style="color: #000000"> ret
<span style="color: #0000ff">return<span style="color: #000000"> nei
f2 = wai(2<span style="color: #000000">) <span style="color: #0000ff">print<span style="color: #000000">(f1())
<span style="color: #0000ff">print<span style="color: #000000">(f2()) <span style="color: #0000ff">def wai(*<span style="color: #000000">args):
<span style="color: #0000ff">def<span style="color: #000000"> nei():
ret =<span style="color: #000000"> 0
<span style="color: #0000ff">for i <span style="color: #0000ff">in<span style="color: #000000"> args:
ret +=<span style="color: #000000"> i
<span style="color: #0000ff">return<span style="color: #000000"> ret
<span style="color: #0000ff">return<span style="color: #000000"> nei
f1 = wai(1,3<span style="color: #000000">)
<span style="color: #0000ff">print(f1())
-
使用:
-
示例:
((@zhuangshiqi <span style="color: #008000">#<span style="color: #008000"> 等价于test = zhuangshiqi(test)
<span style="color: #0000ff">def<span style="color: #000000"> test():
<span style="color: #0000ff">print(<span style="color: #800000">'<span style="color: #800000">hello<span style="color: #800000">'<span style="color: #000000">)test()
作用:当我们想要增加原有函数的功能,但是不想(或无法)改变原来的函数,可以通过装饰器来实现