当前位置: 首页 > news >正文

【Python入门第十九天】Python 函数

函数是一种仅在调用时运行的代码块。

可以将数据(称为参数)传递到函数中。

函数可以把数据作为结果返回。

创建函数

在 Python 中,使用 def 关键字定义函数:

实例

def my_function():print("Hello from a function")

调用函数

如需调用函数,请使用函数名称后跟括号:

实例

def my_function():print("Hello from a function")my_function()

运行实例

Hello from a function

参数

信息可以作为参数传递给函数。

参数在函数名后的括号内指定。您可以根据需要添加任意数量的参数,只需用逗号分隔即可。

下面的例子有一个带参数(fname)的函数。当调用此函数时,我们传递一个名字,在函数内部使用它来打印全名:

实例

def my_function(fname):print(fname + " Gates")my_function("Bill")
my_function("Steve")
my_function("Elon")

运行实例

Rory John Gates
Jennifer Katharine Gates
Phoebe Adele Gates

默认参数值

下面的例子展示如何使用默认参数值。

如果我们调用了不带参数的函数,则使用默认值:

实例

def my_function(country = "China"):print("I am from " + country)my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")

运行实例

I am from Sweden
I am from India
I am from China
I am from Brazil

以 List 传参

您发送到函数的参数可以是任何数据类型(字符串、数字、列表、字典等),并且在函数内其将被视为相同数据类型。

例如,如果您将 List 作为参数发送,它到达函数时仍将是 List(列表):

实例

def my_function(food):for x in food:print(x)fruits = ["apple", "banana", "cherry"]my_function(fruits)

运行实例

apple
banana
cherry

返回值

如需使函数返回值,请使用 return 语句:

实例

def my_function(x):return 5 * xprint(my_function(3))
print(my_function(5))
print(my_function(9))

运行实例

15
25
45

关键字参数

您还可以使用 key = value 语法发送参数。

参数的顺序无关紧要。

实例

def my_function(child3, child2, child1):print("The youngest child is " + child3)my_function(child1 = "Phoebe", child2 = "Jennifer", child3 = "Rory")

运行实例

The youngest child is Rory

在 Python 文档中,“关键字参数”一词通常简称为 kwargs。

任意参数

如果您不知道将传递给您的函数多少个参数,请在函数定义的参数名称前添加 *。

这样,函数将接收一个参数元组,并可以相应地访问各项:

实例

如果参数数目未知,请在参数名称前添加 *:

def my_function(*kids):print("The youngest child is " + kids[2])my_function("Phoebe", "Jennifer", "Rory")

运行实例

The youngest child is Rory

pass 语句

函数定义不能为空,但是如果您出于某种原因写了无内容的函数定义,请使用 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)

运行实例

Recursion Example Results
1
3
6
10
15
21

相关文章:

【Python入门第十九天】Python 函数

函数是一种仅在调用时运行的代码块。 可以将数据(称为参数)传递到函数中。 函数可以把数据作为结果返回。 创建函数 在 Python 中,使用 def 关键字定义函数: 实例 def my_function():print("Hello from a function&quo…...

web前端性能优化

3.性能检测 当面对具体的项目实践时,该如何快速提升性能体验呢?或者说如何能够准确地定位到性能瓶颈呢?难道要比对着优化知识点清单,一项一项手动排查或完全凭借经验去处理吗?不,我们需要有一整套清晰科学…...

Telnet 基础实验2: SSH 实验

Telnet 基础实验2: SSH 实验 本实验只能使用 eNSP中 AR 系统的路由器做 拓扑图 SSH : Secure Shell 是一个网络安全协议,基本于 TCP 协议 22 端口传输数据,通过对网络数据的加密,使其能够在一个不安全的网络环境中&a…...

Panda Farm:首个部署在 Arbitrum 上的轻量化 GameFi 游戏

在2月16日,Bitget平台宣布 Launchpad 重新启动,并推出了重启后的首个项目 Panda Farm(BBO),该 Launchpad 启动后得到了较高的关注。 Panda Farm 是部署在 Arbitrum 上的 GameFi应用,这可能首先意味着 Bitge…...

Redis实现分布式锁

1、使用背景几乎每个互联网公司中都使用了分布式部署,分布式服务下,就会遇到对同一个资源的并发访问的技术难题,如秒杀、下单减库存等场景。这些场景有一个共同特点就是访问量激增,虽然在系统设计时会通过限流、异步、排队等方式优…...

刷题小抄1-2数之和

时间复杂度和空间复杂度 对于一个算法高效性的评估,分为时间复杂度与空间复杂度两种,在算法优化到极致的情况下,只能舍弃时间来换取空间,或者舍弃空间来换取时间,故而两者可以说是互斥关系 时间复杂度衡量的是算法运行的速度,而空间复杂度衡量的是算法运行所需要的额外内存空…...

axicom的测试文档

目录)SQLpython开放性业务题(二选一)完整代码SQL 问题描述 SQL, 请根据前一周各产品的总GMV将其分成五类:GMV Top 20%、20%-40%,40%-60%,60%-80%以及Bottom 20%的产品组,请计算这五…...

基于vue3异步组件、动态组件、vite批量导入实现路由权限动态管理(非addRoute方案)

开发后台管理系统必备的需求:动态菜单权限管理、或者说路由权限动态管理 原理是通过addRoute实现路由权限控制,一般分为两种: 后端生成当前用户相应的路由后由前端(用 Vue Router 提供的API)addRoutes 动态加载路由前…...

带中转hub的卡车无人机车辆路径问题

本文介绍了两类无人机卡车协同配送问题: 第一类是旅行商问题,也即一辆卡车拉着一架无人机服务给定的节点集合第二类是车辆路径问题,这里强制要求了一架卡车只能搭配一架无人机无人机卡车旅行商问题 符号列表: N N N:表示所有节点集合,含起始和终止节点M M M...

前端食堂技术周刊第 72 期:Signals 是前端框架的未来、Chrome Headless、ts-reset、magic-regexp、Bun 新文档

美味值:🌟🌟🌟🌟🌟 口味:草莓番茄 食堂技术周刊仓库地址:https://github.com/Geekhyt/weekly 本期摘要 Signals 是前端框架的未来Chrome Headless 进化成完全体Next.js 13.2Deno…...

mysql中用逗号隔开的字段作查询用(find_in_set的使用)

mysql中用逗号隔开的字段作查询用(find_in_set的使用) 场景说明 在工作中,经常会遇到一对多的关系。想要在mysql中保存这种关系,一般有两种方式,一种是建立一张中间表,这样一条id就会存在多条记录。或者采用第二种方式&#xff…...

Day902.Memory存储引擎 -MySQL实战

Memory存储引擎 Hi,我是阿昌,今天学习记录的是关于Memory存储引擎的内容。 两个 group by 语句都用了 order by null,为什么使用内存临时表得到的语句结果里,0 这个值在最后一行; 而使用磁盘临时表得到的结果里&…...

Linux(Centos)安装RabbitMQ+延时插件+开机自启动

安装目录1:前言1.1 系统环境1.2:安装版本1.3 简介2:安装2.1:安装前准备:2.2:安装Erlang2.3:安装RabbitMQ2.3:延迟依赖插件安装1:前言 1.1 系统环境 操作系统版本&#…...

最近是遇到了CKPT(BLOCKED)

半夜被电话吵醒,数据库不可用了,无法交易。 远程登录查看,这个时候就没有所谓的安全不安全了,都可以远程了。 onstat - 数据库处于CKPT(REQ) CKPT:BLOCKED状态 onstat -l 发现所有的逻辑日志都是U------状态&#xff…...

RabbitMQ死信队列

目录 一、概念 二、出现死信的原因 三、实战 (一)代码架构图 (二)消息被拒 (三)消息TTL过期 (四)队列达到最大长度 一、概念 先从概念解释上搞清楚这个定义,死信&…...

Word控件Spire.Doc 【书签】教程(1):在C#/VB.NET:在 Word 中插入书签

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转…...

微服务框架-学习笔记

1 微服务架构介绍 1.1 系统架构演变历史 单体架构垂直应用架构:按照业务线垂直划分分布式架构:抽出业务无关的公共模块SOA架构:面向服务微服务架构:彻底的服务化1.2 微服务架构概览 1.3 微服务架构核心要素 服务治理&#xff1…...

实验心理学笔记01:引论

原视频链接: https://www.bilibili.com/video/BV1Qt41137Kv 目录 一、实验心理学:定义、内容及简要历史回顾 二、实验心理学和普通心理学、认知心理学的区别 三、实验方法与非实验方法 四、实验范式 五、实验中的各种变量 六、The science of psy…...

预备3-如何学习编程

如何学习编程 我说说曾经学习编程踩得坑 纠结字面上的意思 如纠结一个关键词的名称如何来 为什么叫这个名称... 只是一个简单的名称,该名称代表某一想象/行为,就好比你为啥叫张三, 千万别去深究这些...做笔记的时间比敲代码的时间还多 做笔记的原因是,自己总结归纳所学的知识, …...

操作系统权限提升(十七)之绕过UAC提权-Windows令牌概述和令牌窃取攻击

系列文章 操作系统权限提升(十二)之绕过UAC提权-Windows UAC概述 操作系统权限提升(十三)之绕过UAC提权-MSF和CS绕过UAC提权 操作系统权限提升(十四)之绕过UAC提权-基于白名单AutoElevate绕过UAC提权 操作系统权限提升(十五)之绕过UAC提权-基于白名单DLL劫持绕过UAC提权 操作系…...

【时间之外】系统管人,能行?(冷眼旁观连载之二)

上次写了在用的工具系统和痛点,基本情况都交待清楚了,春节假期很快就过去了。这次继续按照之前观察计划,谈谈对这些工具使用情况的感受,学而时习之,算是抛砖引玉,也算是个人对这项工作的总结和体会。 目录…...

【数据结构必会基础】关于树,你所必须知道的亿些概念

目录 1.什么是树 1.1浅显的理解树 1.2 数据结构中树的概念 2.树的各种结构概念 2.1 节点的度 2.2 根节点/叶节点/分支节点 2.3 父节点/子节点 2.4祖先节点/子孙节点 2.5兄弟节点 2.6树的度 2.7节点的层次 2.8森林 3. 如何用代码表示一棵树 3.1链式结构 3.1.1 树节…...

设计模式的应用(已在大型项目中使用)

说明:开发语言:在本文中,使用的是C# 一、目录 •1 、单例模式 •2 、简单工厂模式 •3 、代理模式 •4 、观察者模式 •5 、外观模式 •6 、享元模式 •7 、命令模式 •8 、状态模式 •9 、发布订阅模式...

Git的相关用法

1.全局设置自己的git提交用户名和邮箱git config --global user.name 张三 git config --global user.email zsgmail.com即所有的提交都会用这个姓名和邮箱。如果不知道自己配置的是什么,可以查询下git config --global user.name git config --global user.email 或…...

Linux服务:Nginx反向代理与负载均衡

目录 一、Nginx反向代理 1、什么是代理 2、实现反向代理实验 ①实验拓扑 ②实验目的 ③实验过程 二、反向代理负载均衡 1、反向代理负载均衡调度算法 ①轮询算法 ②加权轮询算法 ③最小连接数算法 ④ip、url 哈希算法 ⑤响应时间fair算法 2、实现反向代理负载均…...

数据结构与算法——2.算法概述

这篇文章,我们来讲一下算法的概述,大致理解一下什么是算法。 目录 1.定义 2.生活实例 3.算法目标 4.实际案例 4.1案例一 4.2案例二 5.小结 1.定义 官方解释: 算法是指解题方案的准确而完整的描述,是一系列解决问题的清…...

BPMN2.0是什么,BPMN能解决企业流程管理中哪些问题?

一、前言: 在任何行业和企业中,一定存在着各式各样的流程,请假流程、报销流程、入职流程、离职流程、出差流程、合同审批流程、出入库流程等等…… 无论是管理者、技术人员还是业务人员,每天肯定也在使用各种流程,但…...

Java线程池的基本工作原理及案例

一、线程池的优点 线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量超出数量的线程排队等候,等其它线程执行完毕,再从队列中取出任务来执行。 主要特点:线程复用;控制最大并发数;管理线程…...

Stacked hourglass networks for human pose estimation代码学习

Stacked hourglass networks for human pose estimation https://github.com/princeton-vl/pytorch_stacked_hourglass 这是一个用于人体姿态估计的模型,只能检测单个人 作者通过重复的bottom-up(高分辨率->低分辨率)和top-down&#xff0…...

SpringCloud(五)MQ消息队列

MQ概念常见消息模型helloworld案例实现实现spring AMQP发送消息实现spring AMQP接收消息工作消息队列实现发布订阅模型Fanout Exchange实现DirectExchange实现TopicExchange实现DirectExchange 和FanoutExchange的差异DirectExchange 和TopicExchange的差异基于RabbitListener注…...

中山做app网站公司哪家好/爱站网的关键词是怎么来的

2019独角兽企业重金招聘Python工程师标准>>> 自己自学python,偶然间看到笨方法学python(作者是Zed Shaw)这一本书,在接下来的一段时间内,会完成书中所有的练习,希望自己能坚持下去,能够养成好习惯:读和写、注重细节、发现不同。 祝自己好运! 相应的环境: ubuntu 12.…...

网站开发成功案例/互联网公司排名100强

介绍方法之前,我们先说说Python的解释器,由于Python是动态编译的语言,和C/C、Java或者Kotlin等静态语言不同,它是在运行时一句一句代码地边编译边执行的,而Java是提前将高级语言编译成了JVM字节码,运行时直…...

布吉网站建设哪家便宜/网站流量统计工具

在看软考题目中,发现软件开发中有许多各阶段对任务的定义。在采用结构化开发方法进行软件开发时,设计阶段接口设计主要依据需求分析阶段的数据流图,接口设计的主要任务是描述软件与外部环境之间的交互关系,软件内模块之间的调用关…...

教做鞋的网站/软文营销的概念

myecplise上将工程部署到应用下时,经常出现 An internal error occurred during: "Add Deployment". java.lang.NullPointException 错误。很让人郁闷。 究其原因,一般是因为项目从别处导入的,从cvs上down下来的等。 原因一、jdk版…...

网站集约化建设汇报/手机百度搜索

文章目录前言一、大驼峰法(帕斯卡命名法)二、小驼峰法三、其他前言 驼峰命名法,是指混合使用大小写字母构成变量和函数名字。在Java开发中,建议使用驼峰命名法,增强代码的识别性和可读性。 一、大驼峰法(帕…...

郑州网站推广技术/学历提升

导读:AIoT产业是多种技术融合,赋能各行业的产业,整体市场潜在空间超十万亿元。根据IDC的数据与预测,2019年全球AIoT市场规模达到2264亿美元,预计到2022年达到4820亿美元,2019-2022年复合增长率为28.65%。AI…...