Python Functions-函数
目录
创建函数
调用函数
参数还是自变量?
参数数量
任意参数,*args
关键字参数
任意关键字参数,**kwargs
默认参数值
将列表作为参数传递
The pass Statement
递归
函数是一个只有在被调用时才运行的代码块。
可以将称为参数的数据传递到函数中。函数可以作为结果返回数据。
创建函数
在Python中,函数是使用def关键字定义的
def my_function():print("Hello from a function")
调用函数
若要调用函数,请使用函数名后面的括号
def my_function():print("Hello from a function")my_function()
自变量
信息可以作为参数传递到函数中。
参数是在函数名后面的括号内指定的。您可以添加任意数量的参数,只需用逗号分隔即可。
下面的示例有一个带有一个参数(fname)的函数。当调用函数时,我们传递一个名字,该名字在函数内部用于打印全名:
def my_function(fname):print(fname + " Refsnes")my_function("Emil")
my_function("Tobias")
my_function("Linus")
在Python文档中,参数通常被缩短为args。
参数还是自变量?
术语parameter和argument可以用于相同的事情:传递到函数中的信息。
从函数的角度来看:
参数是函数定义中括号内列出的变量。
参数是在调用函数时发送给该函数的值。
参数数量
默认情况下,必须使用正确数量的参数来调用函数。这意味着,如果函数需要2个参数,则必须使用2个参数来调用函数,而不是更多,也不是更少
此函数需要2个参数,得到2个:
def my_function(fname, lname):print(fname + " " + lname)my_function("Emil", "Refsnes")
如果您尝试用1或3个参数调用函数,您将得到一个错误:
此函数需要2个参数,但只得到1个:
def my_function(fname, lname):print(fname + " " + lname)my_function("Emil")
任意参数,*args
如果您不知道将有多少参数传递到函数中,请在函数定义中的参数名称之前添加一个*。
通过这种方式,函数将接收一个参数元组,并可以相应地访问项
如果参数数量未知,请在参数名称前添加一个*:
def my_function(*kids):print("The youngest child is " + kids[2])my_function("Emil", "Tobias", "Linus")
在Python文档中,任意参数通常被缩短为*args。
关键字参数
您还可以使用key=value语法发送参数。
这样一来,争论的顺序就无关紧要了。
def my_function(child3, child2, child1):print("The youngest child is " + child3)my_function(child1 = "Emil", child2 = "Tobias", child3 = "Linus")
在Python文档中,短语Keyword Arguments通常被缩短为kwargs。
任意关键字参数,**kwargs
如果您不知道将有多少关键字参数传递到函数中,请在函数定义中的参数名称之前添加两个星号:**。
通过这种方式,函数将接收一个参数字典,并可以相应地访问项:
def my_function(**kid):print("His last name is " + kid["lname"])my_function(fname = "Tobias", lname = "Refsnes")
在Python文档中,任意Kword参数通常被缩短为**kwargs。
默认参数值
以下示例显示了如何使用默认参数值。
如果我们在没有参数的情况下调用函数,它将使用默认值:
def my_function(country = "Norway"):print("I am from " + country)my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")
将列表作为参数传递
您可以向函数发送任何数据类型的参数(字符串、数字、列表、字典等),它将在函数内被视为相同的数据类型。
例如,如果您将List作为参数发送,那么当它到达函数时,它仍然是List:
def my_function(food):for x in food:print(x)fruits = ["apple", "banana", "cherry"]my_function(fruits)
返回值
要让函数返回值,请使用return语句:
def my_function(x):return 5 * xprint(my_function(3))
print(my_function(5))
print(my_function(9))
The pass Statement
函数定义不能为空,但如果由于某种原因有一个没有内容的函数定义,请放入pass语句以避免出错。
def myfunction():pass
递归
Python也接受函数递归,这意味着定义的函数可以调用自己。
递归是一个常见的数学和编程概念。这意味着函数调用自己。这样做的好处是,可以循环浏览数据以获得结果。
开发人员应该非常小心递归,因为编写一个永远不会终止的函数,或者一个使用过多内存或处理器能力的函数非常容易。然而,如果写得正确,递归可能是一种非常高效且数学上优雅的编程方法。
在本例中,tri_recursion()是一个我们定义为调用自身(“recurse”)的函数。我们使用k变量作为数据,每次递归时都会递减(-1)。当条件不大于0时(即当条件为0时),递归结束。
对于一个新的开发人员来说,可能需要一些时间来弄清楚这到底是如何工作的,最好的方法是测试和修改它。
def tri_recursion(k):if(k > 0):result = k + tri_recursion(k - 1)print(result)else:result = 0return resultprint("\n\nRecursion Example Results")
tri_recursion(6)
相关文章:
Python Functions-函数
目录 创建函数 调用函数 参数还是自变量? 参数数量 任意参数,*args 关键字参数 任意关键字参数,**kwargs 默认参数值 将列表作为参数传递 The pass Statement 递归 函数是一个只有在被调用时才运行的代码块。 可以将称为参数的数…...
【人工智能】机器学习的入门与提升
目录 1.入门 1.1.从何处开始 1.2.数据集 1.3.数据类型 2.平均中位数模式 2.1.均值、中值和众数 2.2.均值 2.2.1.实例 2.2.2.运行结果 2.3.中值 2.3.1.实例 2.3.2.运行结果 2.3.3.实例 2.3.4.运行结果 2.4.众数 2.4.1.实例 2.4.2.运行结果 2.5.章节总结 3.标准…...
WEB漏洞原理之---【XMLXXE利用检测绕过】
文章目录 1、概述1.1、XML概念1.2、XML与HTML的主要差异1.3、XML代码示例 2、靶场演示2.1、Pikachu靶场--XML数据传输测试玩法-1-读取文件玩法-2-内网探针或攻击内网应用(触发漏洞地址)玩法-3-RCE引入外部实体DTD无回显-读取文件开启phpstudy--apache日志…...
element-table排序icon没有点亮
<el-table :data"tableData" ref"tableRef"border :sort"defaultSort":default-sort"defaultSort"><el-table-column sortable :sort-orders"sortOrder" prop"date" label"日期"> </el-…...
传统的经典问题 Java 的 Interface 是干什么的
传统的经典问题 Java 的 Interface 是干什么 解答 上面的这个问题应该还是比较好回答的吧。 只要你做过 Java ,通常 Interface 的问题多多少少会遇到,而且可能会遇到一大堆。 在JAVA编程语言中是一个抽象类型(Abstract Type)&…...
Linux 文件 目录管理
Linux 文件 基本属性 Linux 系统是一种典型的多用户系统,为了保护系统的安全性,不同的用户拥有不同的地位和权限。Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。 可以使用命令:ll 或 ls –…...
QT信号槽实现原理
定义Q_OBJECT宏 在宏中声明了几个重要的成员变量及成员函数,包括声明了一个只读的静态成员变量static MetaObject,以及3个public的成员函数 static const QMetaObject staticMetaObject; virtual const QMetaObject *metaObject() const; virtual void …...
7-7 求鸡兔数量
老张家养了很多鸡和兔,圈养在一个笼子里,清早起来老张站在笼子旁边数了数头的个数,蹲下来又数了数脚的个数,你能帮他快速算出来鸡兔各有多少只吗?如实在算不出来, 就提示“error” 输入格式: 输入头的个数…...
CTF 全讲解:[SWPUCTF 2022 新生赛]webdog1__start
文章目录 参考环境题目learning.php信息收集isset()GET 请求查询字符串全局变量 $_GET MD5 绕过MD5韧性脆弱性 md5()弱比较隐式类型转换字符串连接数学运算布尔判断 相等运算符 MD5 绕过科学计数法前缀 0E 与 0e绕过 start.php信息收集头部检索 f14g.php信息收集 探秘 F1l1l1l1…...
聊天机器人
收集窗帘相关的数据 可以用gpt生成,也可以用爬虫 图形化界面 gradio 向量数据库 faiss python代码 import gradio as gr import random import timefrom typing import Listfrom langchain.embeddings.openai import OpenAIEmbeddings from langchain.vectorstor…...
肖sir__mysql之综合题练习__013
数据库题(10*5) 下面是一个学生与课程的数据库,三个关系表为: 学生表S(Sid,SNAME,AGE,SEX) 成绩表SC(Sid,Cid,GRADE) 课程表C(Cid&…...
阿里云服务器部署安装hadoop与elasticsearch踩坑笔记
2023-09-12 14:00——2023.09.13 20:06 目录 00、软件版本 01、阿里云服务器部署hadoop 1.1、修改四个配置文件 1.1.1、core-site.xml 1.1.2、hdfs-site.xml 1.1.3、mapred-site.xml 1.1.4、yarn-site.xml 1.2、修改系统/etc/hosts文件与系统变量 1.2.1、修改主机名解…...
Golang 中 int 类型和字符串类型如何相互转换?
在日常开发中,经常需要将数字转换为字符串或者将字符串转换为数字。在 Golang 中,有一些很简便的方法可以实现这个功能,接下来就详细讲解一下如何实现 int 类型和字符串类型之间的互相转换。 使用 strconv 包 strconv 包提供的 Itoa 和 Ato…...
**20.迭代器模式(Iterator)
意图:提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。 上下文:集合对象内部结构常常变化各异。对于这些集合对象,能否在不暴露其内部结构的同时,让外部Client透明地访问其中包含的元素…...
计算机视觉与深度学习 | 视觉里程计理论
===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 视觉里程计理论基础 1 、立体视觉中的三维测量及几何约束2 、立体视觉匹…...
Go网络请求中配置代理
如何配置代理 不配置代理,本地请求google等会超时 package mainimport ( "fmt" "net/http" "time")func main() { // 创建一个自定义的 Transport 实例 //transport : &http.Transport{ // Proxy: func(req *http.Request) (*url…...
【ArcGIS】基本概念-矢量空间分析
栅格数据与矢量数据 1.1 栅格数据 栅格图是一个规则的阵列,包含着一定数量的像元或者栅格 常用的栅格图格式有:tif,png,jpeg/jpg等 1.2 矢量数据 矢量图是由一组描述点、线、面,以及它们的色彩、位置的数据&#x…...
OSCP系列靶场-Esay-Moneybox保姆级
OSCP系列靶场-Esay-Moneybox 目录 OSCP系列靶场-Esay-Moneybox总结准备工作信息收集-端口扫描目标开放端口收集目标端口对应服务探测 信息收集-端口测试21-FTP端口的信息收集21-FTP版本版本信息21-FTP端口匿名登录测试(存在)21-FTP端口-文件GET收集21-FTP端口-PUT上传测试 22-S…...
[python 刷题] 128 Longest Consecutive Sequence
[python 刷题] 128 Longest Consecutive Sequence 题目: Given an unsorted array of integers nums, return the length of the longest consecutive elements sequence. You must write an algorithm that runs in O(n) time. 这题给了一个没有排序的数组&#x…...
SpringMVC之JSON数据返回与异常处理机制
目录 一.SpringMVC的JSON数据返回 1.导入Maven依赖 2.配置spring-mvc.xml 3.ResponseBody注解的使用 3.1案例演示 1.List集合转JSON 2.Map集合转JSON 3.返回指定格式String 4. ResponseBody用法 5.Jackson 5.1介绍 5.2常用注解 二.异常处理机制 1.为什么要全局异常处…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
