《Python入门到精通》函数详解
「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:小白零基础《Python入门到精通》
函数
- 1、函数的调用
- 2、函数的参数
- 2.1、变量的就近原则
- 2.2、传递参数
- 2.3、形参和实参
- 2.4、位置参数
- 2.5、缺省参数
- 2.6、可变类型和不可变类型
- 2.7、关键字参数
- 3、匿名函数
- 4、函数的返回值
函数就是一段「封装」起来的「代码」,目的是提高代码的「模块性」和「复用性」。
「模块性」:把具有「独立功能」的代码封装成一个模块,同时可以增加可读性
「复用性」:把需要「使用多次」的代码封装成一个模块(函数),后续直接调用函数,提高开发效率。
语法
def 函数名():代码
- 使用 def 关键字定义函数,后面跟函数名,后面跟括号
()
- 括号里用来定义参数,多个参数之间使用逗号间隔
- 函数的内容以冒号
:
开始,并且缩进 - 最后可以选择用 return 结束函数,结束的同时返回一个值。
实例:创建一个函数
def function1():print('hello pyton')
1、函数的调用
创建的函数默认「不执行」,需要「调用」才会执行;使用 函数名()
调用函数。
# 1、创建函数
def function1():print('hello pyton')# 2、调用函数
function1()
输出:
hello pyton
2、函数的参数
参数可以给函数「传递变量」,函数利用收到的变量进行具体的操作。
2.1、变量的就近原则
Python中的变量遵守「就近原则」,比如函数里面和外面有两个名字相同的变量,函数就会使用「里面」的变量,而不是外面的变量。
# 函数外面的变量
money = 18def function1():# 函数里面的变量money = 20print(money)function1()
开发时,如果搞混了这些「名字相同」的变量,可能会出现意料之外的情况。为了避免出现这类问题,函数采用了参数传递的方式。
2.2、传递参数
给函数传两个参数,并在函数内调用
name = 'ZhangSan'
money = 18def function1( name, money):print('我的名字是', name, '我有', money, '块钱!')function1( name, money)
输出:
我的名字是 ZhangSan 我有 18 块钱!
2.3、形参和实参
函数创建时,括号里的参数叫「形参」(形式参数),用来接收参数。
函数调用时,括号里的参数叫「实参」(实际参数),用来实际使用。
形参和实参的「名字」可以「不同」。
比如,我把参数名字随便改成其他的名字,仍然可以正常调用。当然,实际开发时,建议根据作用来命名参数。
name = 'ZhangSan'
money = 18# 1、函数定义时,接收形参
def function1( a, b):print('我的名字是', a, '我有', b, '块钱!')# 2、函数调用时,传入实参
function1( name, money)
输出:
我的名字是 ZhangSan 我有 18 块钱!
2.4、位置参数
函数调用时,参数的「数量」和「位置」必须和函数创建时一样。
name = 'ZhangSan'
money = 18def function1( a, b):print('第一个参数:', a)print('第二个参数:', b)function1( name, money)
输出:
第一个参数: ZhangSan
第二个参数: 18
如果参数的「数量不对」,会报错 TypeError。
如果参数的「位置不对」,会不符合预期。
name = 'ZhangSan'
money = 18def function1( a, b):print('我的名字是:', a, '我有', b, '快钱!')function1( money, name)
输出:
我的名字是: 18 我有 ZhangSan 快钱!
2.5、缺省参数
缺省参数也叫「默认参数」,在函数定义时,给参数指定「默认值」。
拥有默认值的参数,在函数调用时可以「不传值」:
- 如果传值,参数就会使用传入的新值
- 如果不传值,参数就会使用默认值
name = 'ZhangSan'
money = 18# 1、参数设置默认值
def function1( a, b = 28):print('我的名字是:', a, '我有', b, '块钱!')# 2、传值
function1( name, money)
# 3、不传值
function1( name)
输出:
我的名字是: ZhangSan 我有 18 块钱!
我的名字是: ZhangSan 我有 28 块钱!
2.6、可变类型和不可变类型
Python变量的类型中,整型、字符串、元组属于「不可变类型」,列表、字典等属于「可变类型」。
- 函数接收「不可变类型」的参数,采用「值传递」,只是修改另一个复制的变量,不会改变原变量的值。
- 函数接收「可变类型」的参数,采用「引用传递」,会改变原变量的值。
str1 = 'ZhangSan'
list1 = [1, 2, 3]# 修改传入的参数
def function1( str, list):str * 2list.append(4)function1( str1, list1)print(str1)
print(list1)
输出:
ZhangSan
[1, 2, 3, 4]
2.7、关键字参数
函数调用时,可以按照「参数关键字」给参数「赋值」。使用这种方式,可以不受参数顺序的限制。
name = 'ZhangSan'
money = 18def function1( a, b):print('我的名字是', a, '我有', b, '块钱!')# 关键字参数传参
function1( b=money, a=name)
输出:
我的名字是 ZhangSan 我有 18 块钱!
3、匿名函数
匿名函数不需要 def 来声明函数,而是用 lambda 表达式来创建函数。常用于处理简单的场景。
语法
函数名 = lambda [参数] : 代码块
lambda 表达式的格式是固定的,因此只能封装有限的代码进去。
实例:创建一个匿名函数,返回两个数相加之和。
function1 = lambda num1, num2: num1 + num2result = function1(1, 2)
print(result)
输出:
3
4、函数的返回值
关键字 return 可以让函数返回一个值,比如将函数的执行结果返回,或者返回一个自定义的值。
返回多个值需要用逗号间隔;如果不指定值,就返回None。
def function1(a, b):return a + bdef function2(a, b):return '自定义的值'def function3(a, b):return '第一个值', '第二个值'def function4(a, b):returnprint(function1(1, 2))
print(function2(1, 2))
print(function3(1, 2))
print(function4(1, 2))
输出:
3
自定义的值
('第一个值', '第二个值')
None
return 还有退出函数的作用, return 后面的代码不会被执行;如果一个函数内有多个 return ,则只返回第一个 return 的返回值。
def function1(a, b):return a + bprint('return后面的代码')return '第二个返回值'print(function1(1, 2))
输出:
3
相关文章:

《Python入门到精通》函数详解
「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:小白零基础《Python入门到精通》 函数 1、函数的调用2、函数的参数2.1、变量的就近原则2.2、传递参数2.3、形参和实…...

PHP流浪动物招领网站mysql数据库web结构apache计算机软件工程网页wamp
一、源码特点 PHP流浪动物招领网站 是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 下载链接 nullhttps://download.csdn.net/download/qq_41221322/88190168视频演示 …...
android—ktor-client封装使用,请求网络
ktor-client封装使用步骤: 1.导入依赖: 设置版本号: buildscript {ext.ktor_version 2.3.1 }添加依赖: implementation "io.ktor:ktor-client-okhttp:$ktor_version"implementation "io.ktor:ktor-client-auth…...

GD32F103VE侵入事件
GD32F103VE的TAMPER引脚(PC13),当PC13输入低电平时,会产生一个侵入检测事件。它会将所有“数据备份寄存器”内容清除。 这个功能有什么用? 一是防止被人开壳,抄袭。二是自毁功能。 直奔主题,多一句就是浪费时间。测试…...

将tp5项目、fastadmin项目部署到服务器宝塔面板
目录 一、将你的fastadmin或者tp5项目文件夹上传至你的服务器域名根目录下 二、修改你的网站目录指向,指向public目录,点击保存,并取消勾选防跨站攻击。 三、配置伪静态 四、fastadmin框架上传至服务器后如果想要访问后台可以进行重定向&am…...

Jenkins+Docker+SpringCloud微服务持续集成
JenkinsDockerSpringCloud微服务持续集成 JenkinsDockerSpringCloud持续集成流程说明SpringCloud微服务源码概述本地运行微服务本地部署微服务 Docker安装和Dockerfile制作微服务镜像Harbor镜像仓库安装及使用在Harbor创建用户和项目上传镜像到Harbor从Harbor下载镜像 微服务持…...

系统架构设计师-系统可靠性分析与设计
目录 一、可靠性相关基本概念 二、可靠性指标 1、串联系统与并联系统可靠性指标计算 2、混合系统 三、可靠性设计 1、影响软件可靠性的主要因素: 2、增加可靠性的解决方案 2.1 避错技术 2.2 降低复杂度设计 2.3 检错技术 2.4 容错技术 3、双机容错 一、可靠性相关…...

Linux(CentOS7)搭建达梦数据库
参考官方文档 本文记录一下达梦数据库的安装步骤,在安装的过程中出现了一些问题,进行了处理。 文章目录 安装前准备数据库安装命令行安装图形化安装 配置实例注册服务启动、停止数据库达梦数据库卸载 安装前准备 用户在安装 DM 数据库之前需要检查或修…...
[杂谈]-国产MCU竞争力浅析
[杂谈]-国产MCU竞争力浅析 文章目录 [杂谈]-国产MCU竞争力浅析1、研发方面2、技术方面3、市场方面4、应用方面5、生态方面6、总结 微控制器(MCU)是一种集成了微处理器、存储器、输入/输出接口和其他外设的单片电路,广泛应用于各种电子产品和系…...
4.1、Flink任务怎样读取集合中的数据
1、API说明 非并行数据源: def fromElements[T: TypeInformation](data: T*): DataStream[T] def fromCollection[T: TypeInformation](data: Seq[T]): DataStream[T] def fromCollection[T: TypeInformation] (data: Iterator[T]): Data…...

JD商品详情页面+关键词搜索商品列表API接口数据,详情页面数据返回值说明
作为一个工作助手,我无法直接为您提供实时的京东商品详情。您可以通过访问京东官方网站或使用API接口来查看商品的详细信息。每个商品的详情页面通常会包括以下内容: 1. 商品标题:商品的名称和简要描述。 2. 价格信息:包括原价、…...
Electron v26.0.0-beta.11 发布,跨平台桌面应用开发工具
Electron是一款跨平台桌面应用开发工具,它基于Web技术,使用HTML、CSS和JavaScript来构建应用程序。它能够让开发者使用熟悉的Web开发技术来创建强大的桌面应用,并且可以运行在Windows、macOS和Linux等多个操作系统上。 一、Electron的特点 跨平台:Electron可以将Web技术转…...

提高办案效率:公检系统引入自动校对技术
引入自动校对技术到公检系统中可以有效提高办案效率。自动校对技术结合公检系统的特点,可以在以下方面提高办案效率: 1.节省时间:自动校对技术可以快速检测和修正法律文书中的语法、拼写和标点符号等错误。与手动校对相比,自动校对…...

iptables 清空
清空 iptables中所有策略。 -Z: 重置计数器 -F:删除所有规则(flush) -X:删除所有自定义的链 规则清理和重建如下: iptables -Z iptables -t nat -F iptables -t nat -X iptables -t nat -P PREROUTING A…...

网络安全(黑客)零基础入门
导语 什么是 Web 安全?我又该如何入门学习它呢?学习过程中又应注意哪些问题呢?... 或许你的心中有着这样的疑问、不过别着急,本文会为你一一解答这些问题。 正文 定义 Web 安全,顾名思义便是由保障 Web 应用能够持续…...
Al Go: 蒙特卡洛树搜索(MCTS)简介
目录 1. 前言 1.1 Minimax 1.2 剪枝 1.3 蒙特卡洛树搜索 1.4 为什么随机走子会可行呢? 2. vanilla Monte Carlo tree search 3. UCT-based trade-off between exploitation and exploration 4. MCTS基本算法流程 5. Efficiency Through Expert Policies 6…...
Client-go操作Deployment
在工作中需要对kubernetes进行自定义资源的开发,操作K8s的资源肯定是必不可少的。K8s原生语言是用Go编写的,所以在CRD中使用client-go来操作资源。本次介绍一下使用client-go来操作Deployment。 1. 创建main函数 func main() {homePath : homedir.Home…...

设计模式——单例模式(懒汉和饿汉)
单例模式 一、概念 单例模式是一种对象创建型模式,使用单例模式,可以保证为一个类只生成唯一的实例对象。也就是说,在整个程序空间中,该类只存在一个实例对象。一个类只能有一个实例在生活中是很常见的,比如打印机程…...
详解——Vue3递归函数功能
在 Vue 3 中,递归函数是一种在组件中调用自身的技术。递归函数在解决树状数据结构、无限级分类、嵌套组件等情况下非常有用。以下是一个示例,展示如何在 Vue 3 中实现递归函数的功能、代码和原理: 1. 创建递归组件: 首先&#x…...

【VSCode】查看二进制文件
1.安装插件Hex Editor 2.打开二进制文件 3.执行Hex Editor命令...

docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...

Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...

使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...

MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...

逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...

解析两阶段提交与三阶段提交的核心差异及MySQL实现方案
引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC…...

PH热榜 | 2025-06-08
1. Thiings 标语:一套超过1900个免费AI生成的3D图标集合 介绍:Thiings是一个不断扩展的免费AI生成3D图标库,目前已有超过1900个图标。你可以按照主题浏览,生成自己的图标,或者下载整个图标集。所有图标都可以在个人或…...