首页IT科技廖雪峰老师的官方网站(跟着廖雪峰学python 005)

廖雪峰老师的官方网站(跟着廖雪峰学python 005)

时间2025-07-10 19:43:49分类IT科技浏览4504
导读:​ 函数的调用            ...

函数的调用              、定义                    、参数

编辑

#######命名关键字参数没完

abs()函数:绝对值

>>> abs(100) 100 >>> abs(-20) 20

max()函数:接收任意多个参数             ,并返回最大的那个

>>> max(1, 2) 2 >>> max(2, 3, 1, -5) 3

数据类型转换函数:

int():整数

float():浮点型

str():字符型

bool():布尔型

定义函数

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

执行到return时                     ,函数就执行完毕       ,并将结果返回

如果已经把my_abs()的函数定义保存为abstest.py文件了             ,那么                    ,可以用from abstest import my_abs来导入my_abs()函数       ,注意abstest是文件名(不含.py扩展名):

空函数

如果想定义一个什么也不做的空函数       ,可以用pass语句:

def nop(): pass

pass 用来作为占位符                    ,比如没想好写什么函数代码              ,可以先放个pass让整体代码正常运行

pass也可以用在其他语句

if age >= 18: pass

这句缺少pass       ,代码就会有语法错误

返回多个值

比如在游戏中经常需要从一个点移动到另一个点                    ,给出坐标       、位移和角度              ,就可以计算出新的坐标:

import math #表示导入math包,并允许后续代码引用包里的sin       、cos等函数 def move(x, y, step, angle=0): nx = x + step * math.cos(angle) ny = y - step * math.sin(angle) return nx, ny

python多值返回就是返回一个tuple

编辑

函数参数

位置参数

计算<span class="cke_reset cke_widget_drag_handler_container"><img src="https://img2023.cnblogs.com/blog/1975815/202302/1975815-20230219151815511-72735130.gif" class="cke_reset cke_widget_drag_handler" title="点击并拖拽以移动" data-cke-widget-drag-handler="1" data-mce-src="https://img2023.cnblogs.com/blog/1975815/202302/1975815-20230219151815511-72735130.gif"><span class="cke_image_resizer" title="点击并拖拽以改变尺寸">​<span class="cke_widget_edit_container" title="编辑图片">编辑的函数:

def power(x): return(x*x)

计算<span class="cke_reset cke_widget_drag_handler_container"><img src="https://img2023.cnblogs.com/blog/1975815/202302/1975815-20230219151815511-72735130.gif" class="cke_reset cke_widget_drag_handler" title="点击并拖拽以移动" data-cke-widget-drag-handler="1" data-mce-src="https://img2023.cnblogs.com/blog/1975815/202302/1975815-20230219151815511-72735130.gif"><span class="cke_image_resizer" title="点击并拖拽以改变尺寸">​<span class="cke_widget_edit_container" title="编辑图片">编辑的函数:

def power(x, n): s = 1 while n > 0: s = s * x n = n - 1 return x

x和n都是位置参数                    ,调用函数时                     ,传入的两个值按照位置顺序依次赋给参数x和n

把第二个参数n的默认值设定为2:

def power(x, n = 2): s = 1 while n > 0: s = s * x n = n - 1 return x

此时,power(5)和power(5,2)等价

若n>2             ,就必须明确地传入n                     ,比如power(5,3)

注意:

必选参数在前       ,默认参数在后             ,否则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) enroll(Adam, M, city=Tianjin)

编辑

可变参数

传入的参数个数是可以变的

如:给一组数字                    ,计算平方和(作为一个list或tuple传进来)

def calc(numbers): sum = 0 for n in nmumbers: sum = sum + n * n return sum

若函数参数为可变参数:

def calc(*numbers): sum = 0 for n in numbers: sum = sum + n * n return sum

定义可变参数和定义一个list或tuple参数相比              ,只是在参数前面加一个 *号       ,参数numbers接收到的是一个tuple              。调用该函数时                    ,可以传入任意个参数              ,包括0个参数

关键参数:

关键字参数允许你传入0个或任意个含参数名的参数:

def person(name, age, **kw): print(name:, name, age:, age, other:, kw)

也可以传入任意个数的关键字参数:

>>> person(Michael, 30) name: Michael age: 30 other: {} >>> person(Bob, 35, city=Beijing) name: Bob age: 35 other: {city: Beijing} >>> person(Adam, 45, gender=M, job=Engineer) name: Adam age: 45 other: {gender: M, job: Engineer}

关键参数可以扩展函数功能                    。比如,person函数name和age两个参数是必选项                    ,但如果提供更多的参数就需要利用关键字参数

可以把字典转换为关键字参数传进去:

>>> extra = {city: Beijing, job: Engineer} >>> person(Jack, 24, city=extra[city], job=extra[job]) name: Jack age: 24 other: {city: Beijing, job: Engineer}

声明:本站所有文章                     ,如无特殊说明或标注,均为本站原创发布       。任何个人或组织             ,在未征得本站同意时                     ,禁止复制                    、盗用             、采集       、发布本站内容到任何网站                     、书籍等各类媒体平台       。如若本站内容侵犯了原著者的合法权益       ,可联系我们进行处理                    。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
javascript中的this(javascript中的this分析) zblog收录排名怎样(Zblog获取文章最后一个ID的神奇功能)