原 跟我一起学python3 函数(三)

版权声明:请点击关注 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、设计一个计算器,要求有加减乘除,输入运算的两个数和一个加减乘除的符号(+,-,*,/),输出计算结果")



猜你喜欢

转载自blog.csdn.net/weixin_42914677/article/details/89370809