【Python 基础篇】Python 函数:代码重用的利器

news2024/12/24 0:14:46

文章目录

    • 导言
    • 一、创建函数
    • 二、函数参数
      • 1、位置参数
      • 2、关键字参数
      • 3、默认参数
    • 三、函数返回值
    • 四、函数的高级用法
      • 1、递归函数
      • 2、匿名函数
      • 3、内置函数
    • 总结

导言

函数是一种在Python中定义和封装可重用代码的重要机制。它们使我们能够将复杂的任务分解为更小的部分,并通过调用函数来执行这些部分。本篇博客将详细介绍Python函数的创建、参数传递、返回值以及一些常见的用法。

一、创建函数

在Python中,使用def关键字来创建一个函数。函数的基本语法如下:

def function_name(parameters):
    # 函数体
    # 执行任务
    # 返回结果(可选)

其中,function_name是函数的名称,parameters是函数的参数,函数体是一组语句,用于执行特定的任务。函数体的代码块必须使用缩进。

下面是一个示例,展示如何定义一个简单的函数并调用它:

def greet():
    print("Hello, World!")

# 调用函数
greet()  # 输出:Hello, World!

二、函数参数

函数可以接收参数,参数是在调用函数时传递给函数的值。参数有三种类型:位置参数、关键字参数和默认参数。

1、位置参数

位置参数是按照参数的顺序传递数值。函数在定义时需要指定参数的顺序和数量,并且在调用函数时需要按照相同的顺序传递对应的数值。

下面是一个示例,展示函数接收位置参数的用法:

def greet(name, message):
    print(f"{message}, {name}!")

# 位置参数调用
greet("Alice", "Welcome")  # 输出:Welcome, Alice!

2、关键字参数

关键字参数是使用参数名和对应的数值进行传递,可以改变参数的顺序。在调用函数时,我们可以直接指定参数名,并为其赋值。

下面是一个示例,展示函数接收关键字参数的用法:

def greet(name, message):
    print(f"{message}, {name}!")

# 关键字参数调用
greet(message="Hello", name="Bob")  # 输出:Hello, Bob!

3、默认参数

默认参数是在函数定义时为参数指定的默认值。如果在调用函数时没有提供该参数的数值,函数将使用默认值作为参数的值。

下面是一个示例,展示函数接收默认参数的用法:

def greet(name, message="Hello"):
    print(f"{message}, {name}!")

# 调用函数,未指定message参数,使用默认值
greet("Alice")  # 输出:Hello, Alice!

# 调用函数,指定message参数,覆盖默认值
greet("Bob", "Hi")  # 输出:Hi, Bob!

三、函数返回值

函数可以返回一个或多个值,这些值可以供调用函数的地方使用。使用return关键字来指定函数的返回值。

下面是一个示例,展示函数返回值的用法:

def add_numbers(x, y):
    return x + y

# 调用函数并将返回值存储在变量中
result = add_numbers(3, 4)
print(result)  # 输出:7

函数可以返回任意类型的值,包括数字、字符串、列表等。

四、函数的高级用法

除了上述基本概念,Python函数还有一些高级用法,包括递归函数、匿名函数和内置函数。

1、递归函数

递归函数是指函数调用自身的函数。它们用于解决可以被分解为较小子问题的问题。

下面是一个示例,展示递归函数的用法:

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)

print(factorial(5))  # 输出:120

2、匿名函数

匿名函数是没有名称的函数,也称为lambda函数。它们通常用于简单的、一次性的操作。

下面是一个示例,展示匿名函数的用法:

square = lambda x: x**2
print(square(4))  # 输出:16

3、内置函数

Python提供了许多内置函数,这些函数可以直接使用,无需额外的导入。它们提供了常见的功能和操作。

下面是一个示例,展示内置函数的用法:

numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5]
sorted_numbers = sorted(numbers)
print(sorted_numbers)  # 输出:[1, 1, 2, 3, 4, 5, 5, 6, 9]

总结

函数是Python中的重要概念,它们提供了一种组织和重用代码的强大工具。通过函数,我们可以将复杂的问题分解为更小的部分,使代码更加模块化和可读性更强。在本篇博客中,我们详细介绍了函数的创建、参数传递、返回值以及一些常见的用法。希望这些内容能够帮助你理解和应用Python函数的基本概念和用法,提升你的编程技能。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/673321.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【算法与数据结构】15、LeetCode三数之和

文章目录 一、题目二、双指针法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、双指针法 思路分析:我们使用双指针法,但这道题因为要求数组三个元素的和,一共用到了三个指…

新人拿到一个web项目如何使用idea发布运行

本文描述的是一个新手,拿到一个web项目,使用idea如何发布运行。项目中没有非常复杂的元素,只是试着描述应该如何配置相关内容。 内容描述前提,首先请您确认tomcat已经安装,其次确认jdk已经安装,并明确他们在…

基于Java农产品仓库管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

管理类联考——逻辑——技巧篇——论证推理(10-12 道左右)——五大秒杀思路

逻辑考试出题思路分类 论证推理(10-12 道左右) 论证推理细分思路 假设——补全逻辑假设——引入前提前真后假 - 前假后真建立联系型支持由果推因的削弱由因推果 / 直接引入他因指出不同 / 指出相同五大固定秒杀思路解释类题目评价类题目 论证推理题目…

C语言学习(二十四)---递归与冒泡排序法

在前面几节的内容中,我们学习了指针的相关概念,至此,指针的内容就暂时告一段落了,今天我们将继续向下学习,主要内容为递归和冒泡排序法,好了,话不多说,开整!!…

【AndroidUI设计】主界面设计-Toolbar的简单使用

文章目录 一、引言二、了解三、编码1、UI设计2、编码 一、引言 描述:需要设计一个主界面,菜单通过主界面的左边界划入,实现点击跳转修改主界面内容的一个效果,并且点击非内容区域恢复原界面的一个效果。做到菜单的弹出&#xff0…

Vue3 One Piece Study

目录 脚手架安装vue3 使用vue-cli创建 使用vite创建 setup 介绍 示例使用 ref函数 介绍 代码示例 reactive函数 介绍 代码示例 脚手架安装vue3 使用vue-cli创建 vue create 项目名 安装完成 进入到刚才创建的项目目录中 cd vue3_test 输入npm run serve测试 使用…

基于Java健康综合咨询问诊平台设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

STM32 HAL库开发——入门篇(2):定时器

目录 一、TIMER定时器概述 1.1 软件定时原理 1.2 定时器定时原理 1.3 STM32定时器分类 1.4 STM32定时器特性表 1.5 STM32基本、通用、高级定时器功能整体的区别 二、基本定时器 2.1 基本定时器简介 2.3 STM32定时器计数模式及溢出条件 2.4 定时器中断实验相关寄存器 …

MySQL创建商品订单数据库

目录 一、商品分类表 ProductClass1. 创建 ProductClass表2. 插入数据3. 展示 二、客户表 Customer记录1. 创建 Customer表2. 插入数据3. 展示 三、商品表 Product1. 创建 Product表2. 插入数据3. 展示 四、员工表Employee1. 创建 Employee表2. 插入数据3. 展示 五、订单主表 O…

kubernetes_核心组件_KubeProxy_KubeProxy三种模式和参数解析

系列文章目录 文章目录 系列文章目录前言一、kube-proxy三种服务负载模式1.1 userspace 模式1.2 iptables 模式1.3 ipvs 模式 二、kube-proxy 启动参数基本参数目录挂盘kubeproxy配置项(ConfigMap)kube-proxy 启动参数 三、kube-proxy 常用命令四、宿主机上的iptables规则&…

数据结构链表(C语言实现)

绪论 机遇对于有准备的头脑有特别的亲和力。本章将讲写到链表其中主要将写到单链表和带头双向循环链表的如何实现。 话不多说安全带系好,发车啦(建议电脑观看)。 附:红色,部分为重点部分;蓝颜色为需要记忆的…

【微服务】一文了解Nginx网关搭建教程

一文了解Nginx网关搭建教程 Nginx网关搭建nginx配置Nginx网关搭建 那么什么是Nginx呢? nginx是一个高性能HTTP服务器,反向代理服务器,邮件代理服务器,TCP/UDP反向代理服务器。 单个系统主要用于处理客户端请求,一个系统处理客户端的请求量是有限的,当客户端的并发量超…

CROSSROADS: 1实战演练

文章目录 CROSSROADS: 1实战演练一、前期准备1、相关信息 二、信息收集1、端口扫描2、访问网站3、dirsearch扫描目录4、查看隐写5、枚举用户6、暴力破解7、访问共享文件夹8、查看第一个flag9、写入shell并连接 二、后渗透1、查看权限和SUID文件2、运行程序3、切换root3、查看第…

2019 - 2023,再见了我的大学四年

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,也会涉及到服务端(Node.js 等) 📃个人状态: 2023届本科毕业生,已拿多个前端 offer&#x…

【Linux环境基础开发工具】编译器-gcc/g++

写在前面: 上一篇博客, 我们学习了vim编辑工具,学会了怎么写代码, 这篇文章,我将分享代码该怎么编译的问题。 目录 写在前面: 1. gcc和g介绍 2. gcc是如何编译程序的 1. 预处理 2. 编译 3. 汇编 …

CPM-Bee大模型微调

CPM-Bee大模型微调 CPM-Bee简介:环境配置:应用场景:模型训练参数训练命令:推理:评估:结论: CPM-Bee 简介: CPM-Bee是一个完全开源、允许商用的百亿参数中英文基座模型,也…

关于数据库运维系统的一些思考

这是学习笔记的第 2461篇文章 前段时间整理了一下数据库运维系统的一些内容,比自己预期的要难一些。我来简单回顾下一些参考点。 一、立足当下,混沌之中梳理问题 通常我们可以会问为什么,即为什么要做数据库运维系统,但是我们先放…

决策分析——层次分析法

工程测量与经济决策方案 决策分析——层次分析法 一、描述 层次分析法的基本原理:根据问题的性质和要达到的总目标,将问题分解为不同的组成因素,并按照因素间的相互关联影响以及隶属关系将因素按不同层次聚集组合,形成一个多层次…

NUCLEO-F411RE RT-Thread 体验 (8) - GCC环境 TIM定时器的驱动移植以及基本使用

NUCLEO-F411RE RT-Thread 体验 (8) - GCC环境 TIM定时器驱动移植与基本使用 驱动移植 定时器驱动文件位于drv_hwtimer.c中,对应components层的文件位于rt-thread/components/drivers/hwtimer/hwtimer.c中。 修改Makefile,将其编译进去。 在rtconfig.h…