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 *
目录
相关文章
|
5月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
346 1
|
5月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
682 1
|
5月前
|
Java 数据处理 索引
(numpy)Python做数据处理必备框架!(二):ndarray切片的使用与运算;常见的ndarray函数:平方根、正余弦、自然对数、指数、幂等运算;统计函数:方差、均值、极差;比较函数...
ndarray切片 索引从0开始 索引/切片类型 描述/用法 基本索引 通过整数索引直接访问元素。 行/列切片 使用冒号:切片语法选择行或列的子集 连续切片 从起始索引到结束索引按步长切片 使用slice函数 通过slice(start,stop,strp)定义切片规则 布尔索引 通过布尔条件筛选满足条件的元素。支持逻辑运算符 &、|。
297 0
|
6月前
|
设计模式 缓存 监控
Python装饰器:优雅增强函数功能
Python装饰器:优雅增强函数功能
318 101
|
6月前
|
缓存 测试技术 Python
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
262 99
|
6月前
|
存储 缓存 测试技术
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
314 98
|
6月前
|
缓存 Python
Python中的装饰器:优雅地增强函数功能
Python中的装饰器:优雅地增强函数功能
|
7月前
|
Python
Python 函数定义
Python 函数定义
695 155
|
8月前
|
PHP Python
Python format()函数高级字符串格式化详解
在 Python 中,字符串格式化是一个重要的主题,format() 函数作为一种灵活且强大的字符串格式化方法,被广泛应用。format() 函数不仅能实现基本的插入变量,还支持更多高级的格式化功能,包括数字格式、对齐、填充、日期时间格式、嵌套字段等。 今天我们将深入解析 format() 函数的高级用法,帮助你在实际编程中更高效地处理字符串格式化。
680 0
|
8月前
|
编解码 数据安全/隐私保护 Python
抖音批量发布视频工具,自动上传视频作品笔记,python发布软件
这个抖音批量发布工具包含三个主要模块:主上传程序、配置文件和视频预处理工具。主程序

推荐镜像

更多