Python函数小知识

目录

        一、函数的定义和调用

        二、函数参数

        三、函数作用域

        四、递归函数和匿名函数

一、函数的定义和调用

        def 函数名(参数): 自定义函数可以分为有参函数和无参函数 。

        函数的作用: 在Python中定义函数可以提高代码的复用率,避免重复的代码,可以减少代码量调用函数。

如下例子:

"""
def 函数名(参数):函数体     #定义在函数体里面的代码不会自动执行,需要调用对应函数执行对应函数体调用形式:函数名加括号return 表达式
"""
def food():print('苹果,香蕉,葡萄')
food()  #调用形式:函数名加括号

运行结果:

        return:返回值,结束函数,选择性地返回一个值给调用方。

        print与return的区别:

        print打印的数据不能被变量接收,return返回的值能被变量接收。

如下例子:

def food():print('苹果,香蕉,葡萄')return '水果'
print(food())  #调用形式:函数名加括号

结果如下:

二、函数参数

        必备参数: 定义时的参数与调用时的参数数量必须一一对应 参数与参数之间用逗号隔开。

        默认参数 可以给参数赋一个默认值 。注意:默认参数要放在必备参数的后面。

        不定长参数: 任何没有被定义的参数都会被不定长参数接收 ,定义不定长参数时要加上*号,使用的时候不用加 。

        注意:参数的顺序:必备参数->默认参数->不定长参数。

例子:

def food(x,y=10,*args,**kwargs):print(x)print(y)print(args)print(kwargs)
food("水果",4,"香蕉","苹果",'榴莲','西瓜',a=4)  

结果如下:

三、函数作用域

        全局作用域:函数内部可以访问外部的变量,但是不能直接进行修改 。

        定义在py文件中函数外面的变量称之为全局变量。

        global关键字是全局变量声明,只有声明之后函数内部才可以修改全局变量。

        局部作用域:在嵌套的函数中,内层函数可以访问外层函数的变量,但是不能直接修改。

        nonlocal关键字是全局变量声明,只有声明之后函数内部才可以修改全局变量。

四、递归函数和匿名函数

递归函数

        如果在一个函数的内部调用了该函数本身,那么这个函数就是递归函数。

        递归函数也需要一个结束条件,否则超出递归深度就会报错。

如下例子:

def shuzi(n):if n <= 1:return 1else:return n * shuzi(n - 1)  # 返回了函数自身-> 5 * 4 * 3 * 2 * 1
print(shuzi(5))

结果如下:

匿名函数

        匿名函数就是没有函数名的函数,也就是不再使用def关键字定义的函数。

        如果要声明匿名函数,则需要使用lambda关键字。

        需要注意的是匿名函数能接受任何数量的参数但是只能返回一个表达式的值。

如下例子:

li = ['苹果','西瓜','香蕉']  # 以列表中的元素长度进行排序
li.sort()  # 字符串会根据首字母的拼音进行排序
print(li)
li.sort(key= lambda x : len(x),reverse=True)  # 使用lambda关键字设置了排序要求,以列表中的字符串长度进行排序
print(li)

结果如下:

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

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

相关文章

PLL深度解析第一篇——PLL的知识图谱

在硬件电路中&#xff0c;时钟就像心脏一样&#xff0c;在时钟的节拍下&#xff0c;不同的芯片、不同的电路、不同的接口都可以有序的进行工作或者通信&#xff08;类似流水线一样&#xff0c;必须有节奏的运行&#xff09;。 但是在芯片中&#xff0c;不同的模块和接口工作的频…

一个网络空间安全的小游戏

为了编写一个网络空间安全的小游戏&#xff0c;我们可以模拟一些基本的网络安全概念&#xff0c;如防火墙、入侵检测、病毒清理等。以下是一个简单的Python小游戏示例&#xff0c;其中玩家需要保护自己的网络免受攻击。 python复制代码 import random class Network: def __…

解决Jmeter 4.x 请求到elasticsearch 中文乱码的问题

文章目录 前言解决Jmeter 4.x 请求到elasticsearch 中文乱码的问题 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差&#xff0c;实在白嫖的话&#…

Android Framework 获取所有应用的运行异常情况

Mdm需求,获取所有应用运行异常情况 实现 Android_source/frameworks/base/core/java/android/app/IActivityManager.aidl // add getAppRuntimeExceptionInfo List getAppRuntimeExceptionInfo();Android_source/frameworks/base/service/core/java/com/android/server/am/Acti…

C语言 | Leetcode C语言题解之第52题N皇后II

题目&#xff1a; 题解&#xff1a; struct hashTable {int key;UT_hash_handle hh; };struct hashTable* find(struct hashTable** hashtable, int ikey) {struct hashTable* tmp NULL;HASH_FIND_INT(*hashtable, &ikey, tmp);return tmp; }void insert(struct hashTabl…

为什么程序开发中不推荐使用全局变量?

​ 在软件开发中&#xff0c;全局变量是一种经常被使用但同时也被谨慎对待的概念。尽管全局变量具有方便和易用的特性&#xff0c;但它们往往带来了一系列潜在的问题&#xff0c;影响着代码的可维护性、可扩展性和健壮性。本文将深入探讨为何在程序开发中不推荐使用全局变量的原…

NASA数据集——2018-2024年VIIRS/NOAA20 深蓝 3 级每日气溶胶数据,1x1 度网格

VIIRS/NOAA20 Deep Blue Level 3 daily aerosol data, 1 degree x 1 degree grid 简介 联合极地卫星系统&#xff08;JPSS&#xff09;系列 NOAA-20 仪器的可见红外成像辐射计套件&#xff08;VIIRS&#xff09;NASA 标准三级&#xff08;L3&#xff09;每日深蓝气溶胶产品提…

2023最新!Git2.40.0于win10环境下的安装

2023最新&#xff01;Git2.40.0于win10环境下的安装 git官网地址&#xff1a;https://git-scm.com/download/win/ 导航 文章目录 2023最新&#xff01;Git2.40.0于win10环境下的安装导航一、下载Git二、安装Git三、检验 一、下载Git Git官网选择自己所需的版本下载 二、安装…

HCIP-Datacom-ARST必选题库_网络协议【道题】

一、单选 1.能够生成组播分发树的组播协议是: OSPF PIMv2 BGP IGMPv2 二、多选 1.以以下哪些属于多通道协议? Te1net P FTP H.323 SMTP LE 2.以下哪些协议属于多通道协议? SMTP Telnet H.323 FTP 三、简答 1.请将以下组网可靠性的备份技术与其相应特性进…

汕头联想 ibm x3500 M5服务器上门维修记录

汕头联想服务器现场检修&#xff1b;汕尾IBM服务器故障维修&#xff1b;揭阳戴尔服务器维修&#xff1b;汕头ERP服务器维修&#xff1b;潮阳地区各种服务器故障维修&#xff1b;各类服务器主板齐全&#xff1b; 分享一例从东莞到汕头某染料厂维修ibm system x3500 M5服务器的真…

使用composer开发自己的扩展包

前言 日常的开发中我们经常用到composer去安装其他人封装好的扩展包&#xff0c;如果你有好的功能代码想分享给其他人使用&#xff0c;就可以使用composer打包成扩展包。其他人用composer安装后就可以使用你的扩展包了。这篇文章教你如何打包自己的composer扩展包。 1.新建仓…

【线性代数 C++】求逆矩阵

对于 n n n阶矩阵 A A A&#xff0c;如果有 n n n阶矩阵 B B B&#xff0c;使 A B B A E ABBAE ABBAE&#xff0c;则说 A A A是可逆的&#xff0c;并把 B B B称为 A A A的逆矩阵. A A A的逆矩阵记作 A − 1 A^{-1} A−1&#xff0c;则 B A − 1 BA^{-1} BA−1.若 ∣ A ∣ ≠…

GRE技术原理:揭开网络封装的神秘面纱

GRE技术原理&#xff1a;揭开网络封装的神秘面纱 概述 本文将深入探讨GRE&#xff08;Generic Routing Encapsulation&#xff0c;通用路由封装&#xff09;技术的原理。我们将从GRE的基本概念出发&#xff0c;分析其在网络中的应用场景&#xff0c;详细阐述其封装与解封装过…

idea创建完项目如何隐藏不重要的文件

如果您不打算直接使用这些脚本&#xff0c;而是更倾向于通过IDEA的内置工具来运行Maven命令&#xff0c;那么您可以选择隐藏这些文件。但是&#xff0c;隐藏这些文件并不会影响它们的功能&#xff0c;只是在项目视图中不再显示它们。 1.转到 File > Settings&#xff08;Wi…

创建一个区块链,是由三个节点组成的去中心化网络。

目录 一、准备工作&#xff1a; 1、创建三个python文件&#xff1a; 2、创建nodes.json文件 3、transaction.json文件 4、打开三个控制台 二、在三个节点上进行交互。 二、添加交易发布请求&#xff08;a向b发送10000coin&#xff09; 一、准备工作&#xff1a; 1、创建…

typescript中 declare global 关键字用法

在 TypeScript 中&#xff0c;declare global 用于在模块内部扩展全局作用域。当你在模块&#xff08;任何包含顶级 import 或 export 的文件&#xff09;中工作时&#xff0c;TypeScript 会将该文件的作用域视为局部作用域。如果你需要添加或修改全局作用域中的类型&#xff0…

【MySQL】排序和分页

1. 排序 1.1 排序规则 使用 ORDER BY 子句排序ASC&#xff08;ascend&#xff09;: 升序DESC&#xff08;descend&#xff09;:降序ORDER BY 子句在SELECT语句的结尾。 1.2 单列排序 例子&#xff1a;根据年龄排序&#xff08;默认升序&#xff09; SELECT name, age, gende…

什么是BEPI? 跟BSCI有什么区别?

什么是BEPI&#xff1f; 欧洲对外贸易协会&#xff08;FTA&#xff09;在2014年发起了商界环境绩效倡议&#xff08;BEPI&#xff09;&#xff0c;英文全称是Business Environmental Performance 简称BEPI。BEPI采用行业最佳实践以及切实可行的技术专业知识&#xff0c;增加企业…

LeetCode - 611.有效三角形个数

题目链接 LeetCode - 611. 有效三角形的个数 动画解释 代码解释 class Solution { public:int triangleNumber(vector<int>& nums) {sort(nums.begin(),nums.end());int cout 0;int fix nums.size()-1;while(fix>1){int left 0;int right fix-1;while(left &l…

[集群聊天项目] muduo网络库

目录 网络服务器编程常用模型什么是muduo网络库什么是epoll muduo网络库服务器编程 网络服务器编程常用模型 【方案1】 &#xff1a; accept read/write 不是并发服务器 【方案2】 &#xff1a; accept fork - process-pre-connection 适合并发连接数不大&#xff0c;计算任…