4.1 Python中函数和模块的使用

函数的作用

编程大师Martin Fowler先生曾经说过:“代码有很多种味道,重复是最坏的一种!”,所以,在Python中为了避免重复出现代码,我们可以讲一个函数功能封装到一个函数的功能模块中,有需要使用这个函数的地方我们只需要调用这个函数即可。

函数的定义

在Python中用def定义函数,在函数执行完后可以通过return关键字来返回一个值,所返回出来的值在后续的程序中可以被使用。

def 函数名():
	函数体
	renturn 要返回的值
函数名()		#调用函数

函数的参数

1、函数的参数可以有默认值,在调用函数时如果没有传入对应参数的值时系统将使用该参数的默认值。

def add(a=0,b=2,c=3):

2、函数还可以使用可变参数。

def add(*args):		#在参数名前的*表示args是一个可变参数,即在调用add函数时可以传入0个或多个参数

3、函数还可以不传入参数,即在函数名后的括号里不写任何东西。

def add():

函数的四种形式

没有参数没有返回值

def function1():
	print('这是一个没有参数没有返回值的函数')

没有参数有返回值

import random	
def function2():
	return random.ranint(1,100)

有参数有返回值

def function3(a = 3,b = 4):
	c = a + b
	print('这俩个数和为%d'%c)

有参数没有返回值

def function4(a = 3,b = 4):
	c = a + b
	print('这俩个数和为%d'%c)
	return c

函数的调用,必须等函数全部执行完后才能执行下一步

用模块管理函数

在Python中每个文件就代表了一个模块,在不同的模块中可以有同名的函数,在使用函数的时候我们通过import关键字导入指定的模块就可以区分到底要使用的是哪个模块中的函数,如下所示。

直接导入函数:

import module1 as foo		#module1为函数所在的文件名

导入模块:

import nodele1

需要说明,如果我们导入的模块除了定义函数之外还有其他的可以执行的代码时,Python解释器在导入这个模块时就会执行代码,但是事实上我们并不想这样,因此如果我们在模块中编写了其他的执行代码,最好时将这些执行代码放入如下所示的条件中,这样只有在我们直接运行该模块时 if 条件下的这些代码才会被执行,因为只有在直接执行该模块时名字才是"main"。
__name__是Python中一个隐含的变量,它代表了模块的名字,只有被Python解释器直接执行的模块的名字才是_main_

if __name__ == '__main__':
	print('hello world')

关于全局变量和局部变量

一般我们在函数中定义一个局部变量时,只能作用于函数的局部作用域,并不能作用于全局作用域。
我们可以使用global关键字来指示函数里的局部变量来源于全局作用域,如果全局作用域中没有这个变量,那么下面一行代码就会定义这个变量并将其作用域全局作用域。这样函数里的变量就可以同时作用与全局作用域了。如下所示,如果函数里的变量a发生变化时,函数外的值也会随之变化。

a = 200
def foo():
	global a

同理,如果我们希望函数内部的函数能够修改嵌套作用域中的变量,可以使用nonlocal关键字来指示变量作用域嵌套作用域。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值