Python3学习笔记04-函数和模块

1. 用def来定义函数

可以有参或无参,有返回值或无返回值,更奇葩的是,可以有多个返回值。
def hello():
    print('hello!')
hello()  #调用上面的函数,打印出hello!


函数体用缩进来标记,而C语言中用{}来标记。一旦顶格写,说明函数体结束。

 
 

2. 实参、形参、引用、多态

def add(a,b)  #a,b是形参
    return a+b
add(2,3)  #2,3是实参
add('hello,','world')
add([1,2],[3,4])  #以上3行显示了函数的多态性,不同类型参数的返回情况

def f(a):
    a[0]='abc'
x=[1,2]
print(x)
f(x)  #函数将列表第1个元素改为了'abc'
print(x)  #打印出['abc',2]
f(x[:])  #为了避免x被改写,可以传入一个引用
print(x)

3. lambda函数

lambda参数提供了一种简便的创建函数的方式,但只能是一行表达式,不能太复杂,否则仍然要用def来定义函数。

add2=lambda a,b:a+b
print(add2(2,6))  #这里注意,光写add2(2,6)是没反应的,要写到交互控制台中才行,代码中则加上print等来调用它的函数或表达式

4. 变量作用域

作用域分全局的和局部(本地)的,和C语言类似,不再赘述,只说一下注意点:

(1)在局部(如函数体)中使用全局变量时,要用global a来说明a是全局变量;

(2)在嵌套结构中使用上一级变量时,使用nonlocal a

5. 模块及其引入

    模块是指一系列函数、表达式和类等的集合,有时表现有一个py文件。

import math
print(math.fabs(-5))

也可以只引用fabs函数:

from math import fabs  #如果是import *则是导入所有全局变量和函数
print(fabs(-6))

自己也可以定义一个test.py用以被调用的模块。模块被import时将被执行一次。



猜你喜欢

转载自blog.csdn.net/asanscape/article/details/80181816