<h1 id="函数基础" data-source-line="1">函数基础
<h3 id="函数简介" data-source-line="3">函数简介
<ul data-source-line="5">
函数使用" data-source-line="13">函数使用
函数分类参数与返回值" data-source-line="33">函数分类(参数与返回值)
<span style="color: #0000ff">def
<span style="color: #000000"> print_n_hello(n):<span style="color: #0000ff">for i <span style="color: #0000ff">in<span style="color: #000000"> range(n):
<span style="color: #0000ff">print(<span style="color: #800000">'<span style="color: #800000">Hello world!<span style="color: #800000">'<span style="color: #000000">)
<span style="color: #008000">#<span style="color: #008000"> print_n_hello(5)
<span style="color: #008000">#<span style="color: #008000"> 带参有返回值
<span style="color: #0000ff">def<span style="color: #000000"> add(m,n):
c = m +<span style="color: #000000"> n
<span style="color: #008000">#<span style="color: #008000"> 使用return返回需要返回的值,不返回默认为None
<span style="color: #0000ff">return<span style="color: #000000"> c
<span style="color: #0000ff">print(add(3,5))
分类的标准是按照有无参数,以及有无返回值。
函数参数" data-source-line="61">函数参数
-
位置参数:也叫必传参数,没有默认值的参数
-
默认参数:定义时有默认值,调用时可以不传,必须写在最后
-
可变长度参数:函数调用时可以传递比定义处更多的参数,多出来的参数会保存在args和kwargs中
var_len_args(a,b,name=,*args,** var_len_args(1,2,3,4,age=10)
形参:形式参数,就是写在函数定义出的参数
*的使用:
<span style="color: #008000">#<span style="color: #008000"> 需要从列表根据下表获取元素,然后作为参数传递<span style="color: #008000">
<span style="color: #008000"> show(lt[0],lt[1])
show(*<span style="color: #000000">lt)
<span style="color: #0000ff">def show2(aa=11,bb=22<span style="color: #000000">):
<span style="color: #0000ff">print<span style="color: #000000">(aa,bb)
d = {<span style="color: #800000">'<span style="color: #800000">aa<span style="color: #800000">': 123,<span style="color: #800000">'<span style="color: #800000">bb<span style="color: #800000">': 456<span style="color: #000000">}
<span style="color: #008000">#<span style="color: #008000"> show2(aa=d['aa'],bb=d['bb'])<span style="color: #008000">
<span style="color: #008000"> 上下等价
show2(**d)
函数进阶" data-source-line="109">函数进阶
块级作用域
=
<span style="color: #008000">#
<span style="color: #008000"> 能够在块的外部使用,说明没有块级作用域
<span style="color: #0000ff">print(name)
-
局部作用域
= 10
<span style="color: #008000">#
<span style="color: #008000"> 不能再函数外部使用,此处会报错
<span style="color: #0000ff">print(a)
-
全局作用域
num = 10
<span style="color: #0000ff">def<span style="color: #000000"> show():
<span style="color: #008000">#<span style="color: #008000"> 声明使用的时外部的同名变量
<span style="color: #0000ff">global<span style="color: #000000"> num
<span style="color: #008000">#<span style="color: #008000"> 只能使用,不能修改,若想修改协议进行全局声明
num = 20
<span style="color: #0000ff">print<span style="color: #000000">(num)
show()
<span style="color: #0000ff">print(num)
-
nonlocal使用
= 10
函数的局部变量
= 20
wai()
函数了解" data-source-line="182">递归函数(了解)
定义:函数内部调用函数本身的函数叫递归函数。
- 组成:
- 特点:
- 练习:(可以做个小练习来巩固)
- 求n的阶乘
- 斐波那契数列的第n项
- 前两项都为1,从第三项开始,每一项都等于前两项的和
- 如:
1,1,5,8,13,21,...
函数" data-source-line="201">常用函数
内置函数(无需导入)
输出
input:输入
abs:求绝对值
type:获取变量的类型
chr:将ASCII数值转换为字符
ord:将字符转换为对应的ASCII
id:获取变量地址
len:统计元素个数
range:产生连续整数的可迭代对象
enumerate:枚举可迭代对象
强制类型转换:
int
float
str
list
tuple
set
dict
max:求多个参数的最大值,或可迭代对象中的最大元素
min:最小值
sum:求和,可迭代对象元素求和
pow:求幂,pow(
2,3)等价于2 ** 3<span style="color: #000000">
round:四舍五入,可以指定保留位数
hex:16进制
oct:8进制
bin:2进制
-
模块函数(需要导入)
文件名
练习:完成一个计算器,支持加、减、乘、除运算
<pre data-source-line="239"><code class="hljs"><span class="hljs-built_in">
块级作用域
<span style="color: #008000">#
<span style="color: #008000"> 能够在块的外部使用,说明没有块级作用域<span style="color: #0000ff">print(name)
局部作用域
<span style="color: #008000">#
<span style="color: #008000"> 不能再函数外部使用,此处会报错<span style="color: #0000ff">print(a)
全局作用域
<span style="color: #0000ff">def<span style="color: #000000"> show():
<span style="color: #008000">#<span style="color: #008000"> 声明使用的时外部的同名变量
<span style="color: #0000ff">global<span style="color: #000000"> num
<span style="color: #008000">#<span style="color: #008000"> 只能使用,不能修改,若想修改协议进行全局声明
num = 20
<span style="color: #0000ff">print<span style="color: #000000">(num)
show()
<span style="color: #0000ff">print(num)
nonlocal使用
- 求n的阶乘
- 斐波那契数列的第n项
- 前两项都为1,从第三项开始,每一项都等于前两项的和
- 如:
1,1,5,8,13,21,...
内置函数(无需导入)
强制类型转换:
int
float
str
list
tuple
set
dict
max:求多个参数的最大值,或可迭代对象中的最大元素
min:最小值
sum:求和,可迭代对象元素求和
pow:求幂,pow(
round:四舍五入,可以指定保留位数
hex:16进制
oct:8进制
bin:2进制
模块函数(需要导入)
<pre data-source-line="239"><code class="hljs"><span class="hljs-built_in">