python中的函数

定义函数

函数即代码块,用于完成具体的工作。可多次调用

def greet_user():
      """显示简单的问候语。"""
      print('Hello!')

greet_user()

python中的函数定义是通过def关键字,需要指定函数名,比如greet_user;
def greet_user():后面所有缩进的行构成函数体;
三个引号的部分叫做“文档字符串”,描述函数时干啥的,后期可用来生成文档。

函数的参数

参数分为实参和形参,形参是定义函数时传入的变量,实参是调用函数时传入的值或变量

def greet_user(username):
      """显示简单的问候语。"""
      print(f'Hello {username}!')

greet_user('哈利波特')

形参:username
实参:哈利波特

实参分类

  • 位置实参
    注:顺序很重要
  • 关键字实参
    名称值对

可以给形参指定默认值
注意:使用默认值时,先列出没有默认值的形参,再列出有默认值的实参。
好处是:py可以正确的解析位置实参

传递任意数量的实参

def make_pizza(*toppings):
      """概述要制作的比萨。"""
      print(f'制作比萨需要下面的配料:')
      for topping in toppings:
            print(f"- {topping}")

make_pizza('pepperoni')
# toppings is ('pepperoni',)
make_pizza('mushrooms', 'green peppers', 'extra cheese')
# toppings is ('mushrooms', 'green peppers', 'extra cheese')

注意:形参*toppings,将创建一个名为toppings空的元组

如果要结合使用位置实参和任意数量的实参,位置实参在前

注意:通用形参名*args,它也收集任意数量的位置实参

使用任意数量的关键字实参

def build_profile(first, last, **user_info):
	"""创建一个字典,其中包括我们知道的有关用户的一切"""
	user_info['first_name'] = first
	user_info['last_name'] = last
	return user_info

形如**user_info这种形参,两个星号让python创建一个名为user_info的空字典

注意:常用形参名:**kwargs,它用于收集任意数量的关键字实参。

编写函数指南

  • 使用描述性名称,且只使用小写字母和下划线
  • 函数应包含阐述其功能的注释
  • 指定形参默认值时,等号两边不要有空格(函数调用中关键字实参,也要如此)
  • 建议代码行长度不要超过79字符,形参很多时,可在下一行使用2个tab建,和函数体做区分
  • 程序或模块包含多个函数时,用2个空格将相邻的函数分开
  • 所有import语句都应放在文件开头(除非开头使用了注释描述整个程序)

函数和模块

  • 函数写在一个文件中,可以作为独立模块,被另一个文件引入

引入方式有以下几种

  • import module_name
  • from module_name import function_name
  • from module_name import function_name as fn
  • import mudule_name as mn
  • from module_name import *

编码模块的好处

  • 模块,让程序文件更简单、更易于理解。
  • 编写一次,尽情重用,只需执行调用函数的代码。
  • 需要修改函数,只需修改一个代码块,所做修改将影响调用这个函数的每一个地方。
  • 更容易测试和调试

总结:

  • 参数顺序:位置实参,任意数量的位置实参,关键字实参,任意数量的关键字实参
  • *args中args是一个空元组
  • **kwargs中kwargs是一个空字典
  • 使用函数和模块让程序更容易理解和阅读

参考书籍:

-《python编程 从入门到实践》第8章 函数

posted @ 2021-02-10 01:52  人在囧途呢  阅读(161)  评论(0)    收藏  举报