版权声明:请点击关注 https://blog.csdn.net/weixin_42914677/article/details/89370809
'''
2019年4月16日10:13:04
一、内容:
1、什么是函数?
2、怎么定义函数?
3、怎么调用函数?
4、怎么定义带参数的函数?
5、怎么区分可变和不可变参数?
6、怎么理解必需参数、关键字参数、默认参数、不定长参数?
7、什么是匿名函数?
8、如何理解return语句
9、如何理解变量作用域
10、下列代码输出的结果是否正确?
class_name='16计本2班'
def changeName():
class_name='16计本1班'
changeName()
print(class_name);
输出结果:
16计本1班
11、如果使用global 和 nonlocal关键字?
12、下列代码,回答问题
name='童小明'
age=20
def changeName():
name='龙斌'
age=19
changeName()
print(name,age);
问题:
如果想通过changeName函数改变name和age的值,该如何编写?
二、练习
1、为一次方程0=kx+b(其中k和b是常数,x是未知数)设计一个函数,当给函数传递k和b之后,求出方程的解
2、设计一个计算器,要求有加减乘除,输入运算的两个数和一个加减乘除的符号(+,-,*,/),输出计算结果
'''
print("1、什么是函数?")
ans1="""
1)函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。\n
2)函数能提高应用的模块性,和代码的重复利用率
"""
print(ans1)
print("2、怎么定义函数?")
def defname():
print("这是我定义的方法")#方法体
def defname1():
print("这是我定义的方法1")#方法体
return 1
def defname2(csa):
print("这是我定义的方法2")#方法体
def defname3(csa,csb):
print("这是我定义的方法3")#方法体
print("3、怎么调用函数?")
defname()#方法的调用
defname1()
defname2(csa=1)
defname3(csa=1,csb=0)
print("4、怎么定义带参数的函数?")
def defname4(csa,csb):
sum=csa+csb
print("这是我定义带参数的函数4sum=",sum)#方法体
defname4(1,9)
print("5、怎么区分可变和不可变参数?")
#不可变(不可变的参数类型,strings, tuples, 和 numbers)
a=(2,3)
def change(a):
a=16
change(a)
print(a)
#可变(可变的参数类型,list,dict 等则是可以修改的对象)
a=[1,2,3]
def change(a):
a[0]=16
change(a)
print(a)
print("6、怎么理解必需参数、关键字参数、默认参数、不定长参数?")
#调用change(),不带参数就会发生错误,所以叫必须参数
#change()
#关键字参数(在调用方法的时候,传参数名直接和定义的方法参数名一致)
def printinfo(age,name):
print("age=",age,"name=",name)
printinfo(20,"龙斌")
#与上面一样的效果
printinfo(name="龙斌",age=20)
#默认参数,在定义函数的同时,就给参数赋值
def printinfon(name,age=12):
print("age=",age,"name=",name)
printinfon(name="龙斌")
#不定长参数,参数的个数不确定(一个*的时候,是元组,两个**时是集合){a:1,b:3,c:3}
#一个*参数
def printinfo( arg1, *vartuple ):
"打印任何传入的参数"
print ("输出: ")
print (arg1)
print (vartuple)
# 调用printinfo 函数
printinfo( 70, 60, 50,35,68,90)
#两个*参数
def printinfo2( arg1, **vardict ):
print ("输出: ")
print (arg1)
print (vardict)
# 调用printinfo2 函数
printinfo2(1, a=2,b=3,c=3)
print("9、如何理解变量作用域")
#作用域的理解
g_count = 0 # 全局作用域
def outer():
o_count = 1 # 闭包函数外的函数中
def inner():
i_count = 2 # 局部作用域
#全局变量与局部变量
schoolname='凯里师范学院'
def changeschool():
global schoolname
schoolname='凯里学院'
#调用changeschool函数
changeschool()
print(schoolname)
print("10、下列代码输出的结果是否正确?")
class_name='16计本2班'
def changeName():
class_name='16计本1班'
changeName()
print(class_name);
'''
输出结果:
16计本1班
错误,输出的是16计本2班
'''
print("11、如果使用global 和 nonlocal关键字?")
def outer():
num = 10
def inner():
nonlocal num # nonlocal关键字声明
num = 100
print(num)
inner()
print(num)
outer()
print("12、下列代码,回答问题")
print("练习、1、为一次方程0=kx+b(其中k和b是常数,x是未知数)设计一个函数,当给函数传递k和b之后,求出方程的解")
'''
0=kx+b
-b=kx
-b/k=x
x=-b/k
'''
def qiujie(k,b):
x=-b/k
print("求得方程的解x=",x)
#0=x+1
qiujie(1,1)
#0=-3x+9
qiujie(-3,9)
print("练习、2、设计一个计算器,要求有加减乘除,输入运算的两个数和一个加减乘除的符号(+,-,*,/),输出计算结果")