内容正文:
3.2.5函数与模块
1
2
自定义函数
可以复用的代码
def 函数名(参数):
函数体
[return 返回值]
函数名:命名规则和变量名一样
参数:即形式参数,简称形参,是调用该函数需要提供的数据。
函数体:是函数需要执行的具体代码(计算过程)
函数值:函数执行完后,由return语句将表达式值返回给调用者。
函数名:命名规则和变量名一样
参数集合:即形式参数,简称形参,是调用该函数需要提供的数据
函数体:是函数需要执行的具体代码(计算过程)
函数值:是函数执行完毕以后计算的结果,需要返回值就用return
def Area(a,b,c):
p=(a+b+c)/2
s=(p*(p-a)*(p-b)*(p-c))**0.5
return s
s1=Area(3,4,5)
s2=Area(5,12,13)
print(s1+s2)
完成函数的构造后,在程序中就可以根据需要调用该函数。
def 函数名(参数):
函数体
[return 返回值]
完成函数的构造后,在程序中就可以根据需要调用该函数。
2
自定义函数
可以复用的代码
(1)无参数
def x1():
s=1
for i in range(1,5):
s=s*i
return s
print(x1())
(2)无返回值
def x1():
s=1
for i in range(1,5):
s=s*i
print(x1())
讨论:自定义函数x1的功能以及输出的值。
24
None
2
自定义函数
可以复用的代码
(3)有1个参数
(4)有多个参数时,参数间用逗号分隔开。
def x1(n):
s=1
for i in range(1,n+1):
s=s*i
return s
print(x1(4))
print(x1(3)+x1(5))
def x2(h1,h2):
s=h1*h2
return s
print(x2(2,3))
print(x2(3,4)+x2(5,6))
讨论:自定义函数x1、x2的功能以及输出的值。
>>> %Run dn.py
24
126
>>> %Run dn.py
6
42
默认(行)形参
def func(x, y=2):
print (x, y)
func(3)
func(3, y=4)
如果没有传递实参,则会使用默认参数,当然也可以通过传递实参来替换它的默认值。
1、形参:在定义函数阶段定义的参数, 叫形式参数(相当于变量名)
2、实参:再调用函数的阶段传入的值, 叫实际参数(相当于变量值)
3、默认形参: 在定义阶段就已经被赋值的,称之为默认参数;在调用时可以不赋值
3
典例分析:输入年份输出生肖
【编程】输入一个农历年份(>=1900),输出该年对应的生肖,直到输入0结束,运行结果如下所示:
请输入农历年份,输入0结束:2004
生肖是:猴
请输入农历年份,输入0结束:
3
典例分析:输入年份输出生肖
def shengxiao(y):
L1=["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"]
i=(y-1900)%12
return L1[i]
year=int(input("请输入出生年份,输入0结束:"))
while year!=0:
print("你的生肖是:",shengxiao(year))
year = int(input("请输入出生年份,输入0结束:"))
在所有函数之外定义的变量称为全局变量,它可以在多个函数中被引用。
x = 30
def func():
x = 20
print('x的值是', x)
return x+1
func()
print('x的值是', x)
print(func())
2. 全局变量
变量的作用域
x的值是 20
x的值是 30
x的值是 20
21
1. 局部变量
在一个函数内定义的变量称为局部变量。作用域仅限于定义它的函数体或语句块中。
赋值前引用的局部变量“x”
报local variable ‘x‘ referenced before assignment错误 通常是两种原因:
一是函数试图修改全局变量; 二是内部函数试图修改外部函数变量。
def myfun(b):
print('b=',b)
return a+1
a=10
print