跟着廖雪峰学python 005

科技资讯 投稿 7000 0 评论

跟着廖雪峰学python 005

 函数的调用、定义、参数 

​编辑

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扩展名):

空函数

def nop(:
    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" width="15" height="15" 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" width="15" height="15" 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

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

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

注意:

当函数有多个参数时,把变化大的参数放在前面,默认参数放在后面(降低调用函数的难度)

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个参数

 关键参数:

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, **extra
name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}
​​
>>> extra = {'city': 'Beijing', 'job': 'Engineer'}
>>> person('Jack', 24, city=extra['city'], job=extra['job']
name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}

编程笔记 » 跟着廖雪峰学python 005

赞同 (35) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽