美文网首页
2019实战第二期-函数读书打卡

2019实战第二期-函数读书打卡

作者: tipire | 来源:发表于2019-03-19 09:28 被阅读0次

抽象之函数

函数可以尽量避免重复的代码,简化代码。函数式结构化编程的核心。

函数执行特定的操作并返回一个值

def hello(name):
    return 'Hello, ' + name + '!'

print(hello('world))

运行这些代码后,将有一个名为 hello 的新函数。它返回一个字符串,其中包含向唯一参数
指定的人发出的问候语

给函数编写文档:以确保其他人能够理解,可添加注释(以#打头的内容)

def square(x):
'Calculates the square of the number x.'
return x * x
# 可以像下面这样访问文档字符串:
print(square.__doc__)
'Calculates the square of the number x.'
#__doc__ 是函数的一个属性。属性将在第7章详细介绍。属性名中的双下划线表示这是一个特殊的属性

有些函数什么都不返回,可以称为过程。如果没有声明其返回值,则默认返回None

参数魔法

在函数内部给参数赋值对外部没有任何影响

>>> def try_to_change(n):
... n = 'Mr. Gumby'
...
>>> name = 'Mrs. Entity'
>>> try_to_change(name)
>>> name
'Mrs. Entity'

字符串(以及数和元组)是不可变的(immutable),这意味着你不能修改它们(即只能替换
为新值)。

1.为何要修改参数

在提高程序的抽象程度方面,使用函数来修改数据结构(如列表或字典)是一种不错的方式。

def store(data, full_name):
    names = full_name.split()
    if len(names) == 2: names.insert(1, '')
    labels = 'first', 'middle', 'last'
    for label, name in zip(labels, names):
        people = lookup(data, label, name)
        if people:
            people.append(full_name)
        else:
            data[label][name] = [full_name]

函数 store 执行如下步骤。
(1) 将参数 data 和 full_name 提供给这个函数。这些参数被设置为从外部获得的值。
(2) 通过拆分 full_name 创建一个名为 names 的列表。
(3) 如果 names 的长度为2(只有名字和姓),就将中间名设置为空字符串。
(4) 将 'first' 、 'middle' 和 'last' 存储在元组 labels 中(也可使用列表,这里使用元组只是为
了省略方括号)。
(5) 使用函数 zip 将标签和对应的名字合并,以便对每个标签名字对执行如下操作:
获取属于该标签和名字的列表;
将 full_name 附加到该列表末尾或插入一个新列表。

2.如果参数是不可变的

如果一定要修改参数,可玩点花样,比如将值放在列表中

3.关键字参数和默认值

有时候,参数的排列顺序可能难以记住,尤其是参数很多时。为了简化调用工作,可指定参
数的名称。主要优点是有助于澄清各个参数的作用。

参数指定默认值后,调用函数时可不提供它!可以根据需要,一个参数值也不提供、
提供部分参数值或提供全部参数值。

4.收集参数

允许用户提供任意数量的参数很有用。

def print_params(*params):
    print(params)
def print_params_4(x, y, z=3, *pospar, **keypar):
    print(x, y, z)
    print(pospar)
    print(keypar)
其效果与预期的相同。
>>> print_params_4(1, 2, 3, 5, 6, 7, foo=1, bar=2)
1 2 3
(5, 6, 7)
{'foo': 1, 'bar': 2}
>>> print_params_4(1, 2)
1 2 3
()
{}

相关文章

  • 2019实战第二期-异常读书打卡

    -----学习《Python基础教程第3版》读书笔记----- 2019实战第二期-异常读书打卡 异常是什么 使用...

  • 2019实战第二期-时间读书打卡

    2019实战第二期-时间读书打卡 --读《Python编程快速上手—让繁琐工作自动化》 Python里面的并发分2...

  • 2019实战第二期-文件格式读书打卡

    2019实战第二期-文件格式读书打卡 读《Python编程快速上手—让繁琐工作自动化 PDF中文高清晰完整版》笔记...

  • 2019实战第二期-函数读书打卡

    抽象之函数 函数可以尽量避免重复的代码,简化代码。函数式结构化编程的核心。 函数执行特定的操作并返回一个值 运行这...

  • 2019实战第二期-异常实战打卡

    2019实战第二期-异常实战打卡 题目:编写一个迷你的计算器,支持两个数加,减,乘,除要求提示用户输入2个数字和一...

  • 20180708(日)

    做智慧父母,育卓越孩子。祥和父母学院21天打卡实战营第二期《高效沟通》打卡D4天 悦实战,悦成长 今天早上雷阵雨,...

  • 20180706(五)

    做智慧父母,育卓越孩子。祥和父母学院21天打卡实战营第二期《高效沟通》打卡D2天 悦实战,悦成长 冯老师高效沟通的...

  • 20180705(四)

    做智慧父母,育卓越孩子。祥和父母学院21天打卡实战营第二期《高效沟通》打卡D1天 悦实战,悦成长 冯老师高效沟通的...

  • 2019实战第二期-文件读书打卡

    -----学习《Python基础教程第3版》读书笔记----- 打开文件 ​ 要打开文件,使用open函数,不...

  • 2019实战第二期-控制读书打卡

    -----学习《Python基础教程第3版》读书笔记----- 条件 循环 while for 跳出循环

网友评论

      本文标题:2019实战第二期-函数读书打卡

      本文链接:https://www.haomeiwen.com/subject/pjvwmqtx.html