Python笔记8 函数

简介: 本文是作者的Python复习笔记第八篇,全面介绍了Python中的函数定义与使用,包括函数的参数传递(位置参数、关键字参数、默认参数、列表参数、任意数量参数和关键字参数)、函数的返回值以及如何创建和调用函数库(模块),并提供了丰富的示例代码。

一、函数

函数是程序中一个个小小的功能模块,可以有输入和输出,输入过程中通常会将实参值赋给形参,形参在函数体内参与运算

def function_name(parameter1, parameter2):
    statement1
    statement2
    return something_or_nothing

① 传递实参

1. 位置传递

按照函数定义的形参顺序,在调用时依次输入实参变量

def add(number1, number2):
    sum = number1 + number2
    return sum

a = 3
b = 5
print(add(a, b))

2. 关键词传递

无需按照顺序输入实参变量

def pet(type, whos):
    print(type + " is " +whos + "'s pet.")

pet(whos = "Herman", type = "dog")
dog is Herman's pet.

3. 默认值

当为函数形参设置默认值时,可以省略它的实参传递,但是要注意,有默认值的需要放在没有默认值的形参后面,当需要为这个有默认值的形参设置参数时,采用关键词传递方式或位置传递,默认值的函数形参同样遵循位置传递的顺序

def pet(typename, whos="Herman"):
    print(typename + " is " + whos + "'s pet.")


pet("dog")
pet(whos="Bob", typename="cat")
dog is Herman's pet.
cat is Bob's pet.

② 传递列表

当传递列表时,同复制列表不可以直接使用list_new = list 一样,因为会使得新旧变量均指向同一个列表,因此当传递列表时,在函数体内对形式列表变量的操作也会影响到实际的列表,当需要保留原列表时,可以使用切片表示法,在向函数传递时,给函数传递一个列表的完全切片(复制品)

function_name(list_name[:])
def juice(food):
    while food:
        add_in_food = food.pop()
        print("Add " + add_in_food + " into juice")
        if food:
            print(str(food) + " remain in function")
        else:
            print("nothing in the food")


fruits = ['apple', 'orange', 'banana']
juice(fruits[:])
print(fruits)

③ 传递任意数量的实参

在形参名前加星号,让Python创建一个名为形参名的空元组,并将收到的所有值装入元组(不可修改的列表)
如果某个形参要接纳任意数量的实参,应该将其放在形参顺序的最后,将会在满足完全函数所有的无默认值参数、有默认值参数后,开始将剩下的值填入元组并存于最后一个形参变量中

def food(username, *pet_names):
    print(username + " has " + str(pet_names))


food("herman", "tomato", "banana")
herman has ('tomato', 'banana')

④ 使用任意数量的关键词实参

当需要向函数传递不定数量的键-值对时,可以在形参前添加双星号,使这个形参的形式为字典,将会把满足完前面参数剩下的关键词参数名及其对应的值,以键值对的形式存入字典

def person_info(name, **user_infos):
    profile = {
   }
    profile['name'] = name
    for key, value in user_infos.items():
        profile[key] = value
    return profile


herman_profile = person_info("herman", school= "ABC_School", age=18)
print(herman_profile)
{
   'name': 'herman', 'school': 'ABC_School', 'age': 18}

二、函数的库(模块)与库的调用

① 函数库的封装

在python中,函数的库以.py文件的形式存储,在函数库文件中只有函数

② 函数库的调用

当目录相同时可以这样调用

1. 调用整个库

import的本质是将代码copy到此处,在使用库内函数时,只需要在函数前加上库名并带一个点

import module_name
module_name.function()

2. 调用库中某些函数

直接调用库内某些函数时,使用函数时无需再带上库名

from module_name import function_name_1, function_name_2
function()

3. 为库指定别名

使用关键字as

import module_name as nickname
nickname.function()

4. 为库内函数指定别名

直接调用库内某些函数时,使用函数时无需再带上库名

from module_name import function_name as fn
fn()

5. 导入模块所有函数

通常不使用,因为容易和本文件内已经命名好的函数重名导致报错

from module_name import *
目录
相关文章
|
6天前
|
Python
【python从入门到精通】-- 第五战:函数大总结
【python从入门到精通】-- 第五战:函数大总结
29 0
|
3天前
|
Python
Python之函数详解
【10月更文挑战第12天】
Python之函数详解
|
4天前
|
存储 数据安全/隐私保护 索引
|
5天前
|
索引 Python
Python中的其他内置函数有哪些
【10月更文挑战第12天】Python中的其他内置函数有哪些
7 1
|
9天前
|
搜索推荐 Python
Leecode 101刷题笔记之第五章:和你一起你轻松刷题(Python)
这篇文章是关于LeetCode第101章的刷题笔记,涵盖了多种排序算法的Python实现和两个中等难度的编程练习题的解法。
15 3
|
15天前
|
存储 开发工具 Python
【Python项目】外星人入侵项目笔记
【Python项目】外星人入侵项目笔记
31 3
|
17天前
|
数据处理 Python
深入探索:Python中的并发编程新纪元——协程与异步函数解析
深入探索:Python中的并发编程新纪元——协程与异步函数解析
18 3
|
15天前
|
存储 Python
【免费分享编程笔记】Python学习笔记(二)
【免费分享编程笔记】Python学习笔记(二)
37 0
【免费分享编程笔记】Python学习笔记(二)
|
17天前
|
机器学习/深度学习 算法 C语言
【Python】Math--数学函数(详细附解析~)
【Python】Math--数学函数(详细附解析~)
|
5天前
|
开发者 索引 Python
Python中有哪些内置函数
【10月更文挑战第12天】Python中有哪些内置函数
9 0