函数

一、定义函数

    函数就是把一段代码封装起来,如果要重复利用一个功能,此时用函数就比较方便;

  首先定义一个函数:

def say_hello():   #定义一个函数 say_hello
print('hello')
say_hello() #调用函数,才会执行函数

def say2(msg): #say2是函数名;msg是函数的形参
print(msg) #函数体
say2('lallalalaa') #传一个实参,调用函数,把变量传给形参,然后打印出来


二、全局变量、局部变量
函数里面定义的变量都是局部变量,只在函数体里面使用
def read_file(file_name):
with open(file_name,encoding='utf-8') as f:
res = f.read()
return res
read_file('a.txt')
print(res)
读文件时,函数外面想要函数里面的返回值,不能子在函数外边直接使用,需要return一下才可以;如上例,如果我们直接print res的话,会报错
此时我们需要return一下res结果,然后定义一个变量来接收读出的文件内容,即可。代码如下:
def read_file(file_name):
with open(file_name,encoding='utf-8') as f:
res = f.read()
return res
content = read_file('b.txt')
print(content)
######声明全局变量###
函数外面的才是全局变量,全局变量如果要在函数中修改的话,需要加global关键字声明,如下例所示:
file_name = 'users.txt' #全局变量
def func():
global file_name
file_name = 'a.txt'
print(file_name)
func()

print(file_name) #没有声明全局变量结果是usr.txt;声明后打印的是abc.txt

三、参数

     1) 位置参数:

            位置参数,就是按照参数的位置来进行传参,位置参数是必传的,

        有几个位置参数在调用的时候就要传几个,否则就会报错,那如果有多个位置参数的话,记不住哪个位置传哪个了怎么办,可以使用位置参数的名字来指定调用

      

def abc(name,age,phone,addr,money):
print(name)
print(age)
print(phone)
print(addr)
print(money)
#abc('xiaohei',18,110,'beijing',9000) #位置参数,根据参数位置传参
#abc(age=18,addr='beijing',money=500,phone=111,name='111') #记不住参数位置,可以用位置参数的名字来指定调用
# abc(age=13,'xiaohei')#但是像这种传参方式是不对的

     2) 默认参数:

        默认参数就是在定义形参的时候,给函数默认赋一个值,比如说数据库的端口这样的,默认给它一个值,这样就算你在调用的时候没传入这个参数,它也是有值的

        默认参数不是必填的,如果给默认参数传值的话,它就会使用你传入的值。如果使用默认值参数的话,必须放在位置参数(必填参数)后面定义。

posted @ 2019-09-26 20:35  哈哈一笑~~~  阅读(189)  评论(0编辑  收藏  举报