一、概念
当函数作为参数被调用时不需要加括号
例如:map(upper),upper 是一个函数
1、定义
def 函数名 (参数列表):#注意参数个数,冒号
函数体
[return返回值列表]
2、调用
通过函数名称调用函数
对函数的形式参数赋予实际的赋值
1)位置传参,传参顺序不能乱
2)关键字传参
3)默认值传参,形式参数可以直接设定默认值,没有实参时默认执行
3、函数的返回值
函数的结果需要再另一个函数中使用时,就需要返回值
使用return关键字返回
return可以出现在函数的任意位置,用于结束函数
函数的返回值可以是一个值,或多个值,如果返回的值是多个,那个返回的值是一个元组
4、变量的作用域
当全局变量和局部变量名称相同时,局部变量优先级高
global:声明全局变量,假如在函数内部声明也算全局变量
匿名函数 lambda,函数体只有一句话的时候可以用。格式: lambda 形参:函数体
5、递归函数
在一个函数的函数体内调用该函数本身
包含两部分:递归调用、递归终止条件
二、代码练习
1、累加求和
def get_sum(num):
sum=0
for i in range(1,num+1):
sum+=i
print(f'1-{num}之间的和为{sum}')
get_sum(10)
get_sum(100)
get_sum(40)
结果:

2、递归方法实现阶乘
def fun(n):
if n==1:
return 1
else:
return n*fun(n-1)
print(fun(5))
结果

3、计算斐波拉契数
def fun(n):
if n==1 or n==2:
return 1
else:
return fun(n-1)+fun(n-2)
for i in range(1,10):
print(fun(i),end='\t')
print()
运行结果:

4、输入一个带数字、大小写字母的字符串,将大小写转换,数字不变
def zh(str):
lst=[]
for i in str:
if 'A'<=i<='Z':
lst.append(chr(ord(i)+32))
elif 'a'<=i<='z':
lst.append(chr(ord(i)-32))
else:
lst.append(i)
return ''.join(lst)#难点,这里写成了str
str1=input('请输入一个带大小写字母的字符串:')
newstr=zh(str1)
print(newstr)
结果:

2706

被折叠的 条评论
为什么被折叠?



