Python函数练习

#抽象:函数

"""
#1 计算斐波拉契函数
fib=[0,1]
for i in range(10):
fib.append(fib[-2]+fib[-1])
print(fib)
#2创建函数
def fibs(num):
'计算前10个斐波拉契数'#文档字符串
result = [0,1]
for i in range(num-2):
result.append(result[-2]+result[-1])
return result
print(fibs(10))# 函数调用
print("访问文档字符串",fibs.__doc__)
"""
#-------------------------输出结果----------------------------------#
"""
C:python3.7python.exe D:/Python-Test/qiubai/qiubai/Test5.py
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
访问文档字符串 计算前10个斐波拉契数
"""

"""
#3 字符串不可变
def try_to_change(n):
n = "Hello world"#局部变量
print(n)
name = "HeHe"#字符串不能更改
try_to_change(name)
print(name)
#4 列表可变
def change(n):
n[0] = 'Mr.change'
names = ['Hello World',"New Year"]#可变列表
change(names)
print(names)

#5关键字参数
def helllo(name = "Hello",age = 5):
print(age,name)
helllo()
"""
#-------------------------输出结果----------------------------------#
"""
C:python3.7python.exe D:/Python-Test/qiubai/qiubai/Test5.py
Hello world
HeHe
['Mr.change', 'New Year']
5 Hello
"""

"""
#6*pramas收集多个参数 **para收集x=1,y=2,z=3
def Print_params(title,*params,**para):
print(title)
print(params)
print(para)
Print_params('hello',1,2,3,4,5,6,7,x=1,y=2,z=3)
"""

#-------------------------输出结果----------------------------------#
"""
C:python3.7python.exe D:/Python-Test/qiubai/qiubai/Test5.py
hello
(1, 2, 3, 4, 5, 6, 7)
{'x': 1, 'y': 2, 'z': 3}
"""
'''
#7 调用时参数带*
def add(x, y):
return (x + y)
param = (1,2)
print(add(*param))

#8 def start_with() *号只在定义或者调用时才有用
def star_with(**star):
print(star['name'] , "is" ,star['age'])
def star_without(star):
print(star['name'] , "is" ,star['age'])
args ={'name':'zhangsan','age':58}
star_with(**args)
star_without(args)
'''
#-------------------------输出结果----------------------------------#
"""
C:python3.7python.exe D:/Python-Test/qiubai/qiubai/Test5.py
3
zhangsan is 58
zhangsan is 58
"""

#8 函数内部引用全局变量
def glooa(params):
print(params +":"+ globals()['params'])
params = "hello"#全局
glooa("world")
#9 重新绑定全局变量
x = 1
def global_test():
global x
x = x + 1
global_test()
print(x)

#-------------------------输出结果----------------------------------#
"""
C:python3.7python.exe D:/Python-Test/qiubai/qiubai/Test5.py
world:hello
2
"""

#10 递归
#求阶乘
def multi(n):
result = n
for i in range(1,n):
result *= i
return result
print(multi(4))
def multi_digui(n):
if n == 1:
return 1
else:
return n * multi_digui(n-1)#大于1的数n为n*(n-1)的阶乘
print(multi_digui(4))


#-------------------------输出结果----------------------------------#
"""
C:python3.7python.exe D:/Python-Test/qiubai/qiubai/Test5.py
24
24
"""


原文地址:https://www.cnblogs.com/acer-haitao/p/7284835.html