python基础③-函数的使用方法

Auth:焱讲       Date:2019/07/23       Cat:文章精选       Word:共3120字

已关闭评论

主要内容:

函数的定义

函数的调用

参数的传递方式

一、函数

1.1    函数的定义

  • 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

  • 函数能提高应用的模块性,和代码的重复利用率。

  • 就像炒菜机可以封装好烹饪的各种步骤一样,函数也可以把我们要执行的代码放到一起,需要执行的时候,直接调用就可以。

方法一:
案例:平方函数,输入变量x返回其平方值x2
#定义函数
def test(a):      #定义一个函数为test
       z = a*a    #函数执行语句
       print(z)   #函数返回值


#调用函数
test(5)     #意思是a=5


方法二:
def a(x):
       s=x*x
       return s   #表示函数

print(a(4))
#案例2
def test2():   #定义函数
       print("你好")

test2()     #调用函数

1.2    函数的格式

  • python基础③-函数的使用方法 - 第1张图片

1.3    参数传递

  • 几种参数设定方法:顺序传入,关键词,默认参数、不定长参数

  • 函数默认按照输入参数列表的顺序传入

#顺序传参(s = 1+2*x+3*y+z*x+x*y)
def shunxu(x,y,z):
       s = 1+2*x+3*y+z*x+x*y
       return s

#按位置输出
print(shunxu(1,2,3))

#②关键字传入(s = 1+2*x+3*y+z*x+x*y)
def guanjian(x,y,z):
       s2=1+2*x+3*y+z*x+x*y
       return s2


print(guanjian(1,y=2,z=3))  
print(guanjian(1,z=3,y=2))
print(guanjian(x=1 , y=2 , z=3))   #关键字顺序传入


#可以将位置和关键词的方法混合使用,
#如果传入的第一个参数是用关键词传入的,
#那么后面每个参数都需要是关键词传入,否则会出现语法错误。


#③默认参数传入
#输入的参数可以是事先设定好赋值,也就是默认值。在调动函数的时候,可以不输入参数,函数内部会直接调用默认参数值。例如默认z=3
def moren(x,y,z=3):
       s3=1+2*x+3*y+z*x+x*y
       print(s3)
       return s3


moren(x=1,y=2)
#默认参数的默认值是可以修改的,将上面的z值传入设置为4,需要注意的是,默认参数必须放到参数列表的末位
moren(x=1,y=2,z=4)
————————————————————————————————————————————————————
#④不定长参数(*)
#案例一:不定长参数(引用多个函数)
def test(a,*b):
       print(b)
       print(b)
test(77,88,99)
————————————————————————————————————————————————————
#案例二:使用循环传参
def test2(c,*d):
       r = 0
       r += c
       for x in d:
              r += x
       return r


t = test2(1,2,3)
print(t)
————————————————————————————————————————————————————
#案例三:使用循环传参
def test3(x,*y):
       for i in y:
              print(x+i)
       return
print(test3(1,1,2,3))

————————————————————————————————————————————————————
#案例四:使用list列表传参
a =[1,2,3,4,5]
print(1,*a)
————————————————————————————————————————————————————
#④不定长参数(**)
#⑤不定长函数导入字典(**ags)
def test5(r,**dict5):
       print("输出:")   #
       print(r)             #输出r函数
       print(dict5)         #输出dict5中所有函数
       
test5(1,a=2,b=3)     #调用test5函数


返回值为:
输出:
1
{'a': 2, 'b': 3}
————————————————————————————————————————————————————
#④不定长参数(**)(案例2)
def a(**b):
       print(b)

a(a=1,b=2,c=True)

返回值:
{'a': 1, 'b': 2, 'c': True}
————————————————————————————————————————————————————
#⑥匿名函数
test = lambda z,x:z+100+x
print(test(1,2))

返回值:
103

第五讲.py第三讲 字典(2019年7月22日).py第四讲 if循环、while循环.pyif循环.py

1.4    匿名函数:

  • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。

  • lambda函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。

python基础③-函数的使用方法 - 第2张图片

二、全局变量与局部变量

2.1    编写方法

  • 定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域

  • 局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问:

  • Python中:模块(module),类(class)以及函数(def、lambda)都会引入新的作用域,其它的代码块(如if/elif/else/、try/except、for/while等)

  • 是不会引入新的作用域的,也就是说这些语句内定义的变量,外部也可以访问。

方法/类的编写方法
class 类名称():
      def 方法名/函数名称():
      def 方法名/函数名称():
      def 方法名/函数名称():



#方法编写案例(未实现)
#方法编写案例
class abc():
        def aaa():
            print("你今天真漂亮")
        def bbb():
            print("你真帅")

#调用
abc.aaa()   #你今天真漂亮
abc.bbb()   #你真帅

2.2    修改方法

  • 当内部作用域想修改外部作用域的变量时,就要用到global和nonlocal关键字了。

#修改全局变量案例global
num = 1
def fun1():
    global num  #需要使用global关键字声明
    print(num)      #修改前参数值(1)
    num = 123      #修改参数值
    print(num)      #修改后的参数值(123)


fun1()  #调用方法
print(num)   #调用参数值(123)
#修改嵌套作用域中的变量:

def outer():
    num =10
    def inner():
        nonlocal num #nonlocal关键字声明
        num = 100
        print(num)
    inner()
    print(num)
outer()

      

评论已关闭!