函数
可变参数传递
例:求n的阶乘和某一些数的乘积
def fact(n
, *b
):
s
= 1
for i
in range(1, n
+ 1):
s
*= i
for item
in b
:
s
*= item
return s
print(fact
(10, 3, 5, 8))
返回值
return 可以返回多个结果, 也可以不返回结果
def fact(n
, m
= 1):
s
= 1
for i
in range(1, n
+ 1):
s
*= i
return s
// m
, n
, m
a
, b
, c
= fact
(10, 5)
print(a
, b
, c
)
局部变量与全局变量
三个使用规则
规则一:
函数运算结束后,局部变量将被释放
在函数内部使用全局变量,使用保留字global
规则二:局部变量为组合数据类型切未创建,等同于全局变量
注意:在函数中未被创建
lambda函数
谨慎使用lambda函数,推介使用def定义
递归实例:字符串翻转
def rvs(s
):
if s
== "":
return s
else:
return rvs
(s
[1:] + s
[0])
递归实例:汉诺塔问题
count
= 0
def hanoi(n
, src
, dst
, mid
):
global count
if n
== 1:
print("{}:{}->{}".format(1, src
, dst
))
count
+= 1
else:
hanoi
(n
- 1, src
, mid
, dst
)
print("{}:{}->{}".format(n
, src
, dst
))
count
+= 1
hanoi
(n
- 1, mid
, dst
, src
)
hanoi
(3, "A", "C", "B")
print(count
)
转载请注明原文地址:https://ipadbbs.8miu.com/read-1537.html