Python之函数(8)

1定义

1.1 语法


def functionname( parameters ):
"函数_文档字符串"
function_suite
return [expression]

1.12释义

函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始,并且缩进。
return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

1.13示例


def my_abs(x):
if x >= 0:
return x
else:
return -x

自定义一个求绝对值的函数

1.2空函数


def nop():
pass

就是一个占位符的作用

1.3返回多个值

import math

def move(x, y, step, angle=0):

nx = x + step * math.cos(angle)
ny = y - step * math.sin(angle)
return nx, ny

pss:import math语句表示导入math包

输出

x, y = move(100, 100, 60, math.pi / 6)
print(x, y)
151.96152422706632 70.0

2函数的参数

2.1位置参数

计算x的平方

def power(x):
return x * x

2.2默认参数

def power(x, n=2):
s = 1

 while n > 0:
    n = n - 1
   s = s * x

return s

一是必选参数在前,默认参数在后,否则Python的解释器会报错(思考一下为什么默认参数不能放在必选参数前面);

二是如何设置默认参数。
当函数有多个参数时,把变化大的参数放前面,变化小的参数放后面。变化小的参数就可以作为默认参数。

我们可以把年龄和城市设为默认参数:

def enroll(name, gender, age=6, city=’Beijing’):
print(‘name:’, name)
print(‘gender:’, gender)
print(‘age:’, age)
print(‘city:’, city)

可见,默认参数降低了函数调用的难度,而一旦需要更复杂的调用时,又可以传递更多的参数来实现。无论是简单调用还是复杂调用,函数只需要定义一个。

有多个默认参数时,调用的时候,既可以按顺序提供默认参数,比如调用enroll(‘Bob’, ‘M’, 7),意思是,除了name,gender这两个参数外,最后1个参数应用在参数age上,city参数由于没有提供,仍然使用默认值。

也可以不按顺序提供部分默认参数。当不按顺序提供部分默认参数时,需要把参数名写上。比如调用enroll(‘Adam’, ‘M’, city=’Tianjin’),意思是,city参数用传进去的值,其他默认参数继续使用默认值。
定义默认参数要牢记一点:默认参数必须指向不变对象

猜你喜欢

转载自blog.csdn.net/MyheartMylove/article/details/79482434