Python教程(14)——Python函数的入门学习

函数是什么?在编程中,函数是一段可重用的代码块,用于完成特定任务或执行特定操作。它可以接输入参数并返回一个值或执行一系列操作。函数可以帮助程序员将代码模块化,提高代码的可读性和可维护性。

函数通常包括以下组成部分:

  1. 函数名:用于标识函数,并可以通过函数名调用执行该函数。
  2. 参数:输入给函数的值,在函数内部可以使用参数进行操作或计算。
  3. 函数体:包含函数执行的代码块。在函数体中可以进行各种操作、计算、逻辑判断等任务。
  4. 返回值:函数可以返回处理结果,供调用者使用。

每种编程语言对于函数的语法规范可能所有不同,但是都是包含函数组成部分的。
在这里插入图片描述

Python函数组成

Python函数的定义通包括以下几个部分:

  1. 函数头部:使用关键字 def 开始,后跟函数名和一对圆括号 ( )。圆括号内可以包含函数的参数,多个参数之间用逗号分隔,最后在右括号)之后要加个冒号:无论是括号还是冒号一定都要是英文状态下的。
  2. 函数体:函数体是由函数的操作逻辑组成的代码块,函数体内的代码需要缩进,通常使用4个空格或制表符(Tab键)进行缩进。
  3. 函数返回值:函数可以返回一个值使用关键字 return 后跟要返回的值。

以下是一个简单的示例,展示了一个算两个数之和的函数:

def add_numbers(num1, num2):sum = num1 + num2return sumresult = add_numbers(5, 3)
print(result)  # 输出:8

在这个示例中,函数 add_numbers 接收两个参数 num1num2,计算它们的和并返回结果。通过调用 add_numbers(5, 3) 可以得到结果 8将结果赋值给变 result,最后打印 result 的值。

Python函数解释

上述的add_numbers是个非常简单的函数,但是初学者朋友如果不注意相关规则的话,可能会造成怀疑人生的结果。

正如Python函数的语法组成那样,Python是用def开头来定义一个函数的,然后空格后跟上函数名add_numbers,我们专业一点的叫法的话,叫函数定义,在使用一个函数之前,必须先定义,否则就会报语法错误。

比如我们像下面这样书写,就不行的,会一个NameError的错误。NameError: name 'add_numbers' is not defined

result = add_numbers(5, 3)def add_numbers(num1, num2):sum = num1 + num2return sumprint(result) 

接着加上括号,括号里面跟上参数名,这里的参数名我们称之为形式参数,简称形参,这个在编程当中是一个比较重要的概念,特别是在C语言当中。然后右括号后面加上一个冒号,后面就另起一行写函数体,当然在一些非常简单的函数体当中,可能直接跟在冒号后面,比如:

if a == 1: return 1

在leetcode编程中,这种写法也经常见到。

如果是超过一行的,一般都是另起一行写函数体。函数体内的代码需要缩进,通常使用4个空格或制表符进行缩进。这里要特别注意,在函数体中, 要不都用4个空格,要不就用制表符,千万不要混用 ,一个制表符又刚好等于4个空格,所以从表面上看确实是对齐了,对于没有编程经验的初学者来说,一旦混用,又不懂得利用搜索引擎的话,可能一个晚上你都会困在那里,百思不得其解。

混用的话,一般会报以下错误:

IndentationError: unindent does not match any outer indentation level


意思大概就是说你缩进不匹配,大概率就是制表符和空格混用了!但是如果你是用PyCharm等一些高级的IDE,可能这些IDE会自动帮你修正这些对齐的bug,而如果你是从其他编辑器复制代码到PyCharm中的,这些没有对齐的错误并不会自动的修正,还是需要你手动就纠正的,所以还是推荐大家尽量使用PyCharm编写Python代码。

Python函数类型

Python当中有各种类型的函数,像上面那种就是比较普通的自定义函数,顾名思义,就是自己定义的函数。在 Python 中,还有以下几种常见的函数类型。

内置函数

Python 提供了一些内置函数,可以直接使用,不需要导入任何模块,如 print()len()type() 等,

匿名函数

匿名函数也称为 lambda 表达式,是一种简洁的函数定义方式,通常用于一次性的简单函数。例如:

multiply = lambda x, y: x * y
result = multiply(3, 5)
print(result)  # 输出 15

闭包函数

闭包函数是指在一个函数内部定义了另一个函数,并且内部函数可以访问外部函数的变量。这种函数形式可以用来创建一些特定的函数,例如函数工厂或者装饰器。

def outer_function(x):def inner_function(y):return x + yreturn inner_functionadd_5 = outer_function(5)
result = add_5(3)
print(result)  # 输出 8

生成器函数

生成器函数使用 yield 关键字来定义,可以通过迭代器的方式逐步生成结果,而不是一次性生成所有结果。

def fibonacci():a, b = 0, 1while True:yield aa, b = b, a + bfib = fibonacci()
print(next(fib))  # 输出 0
print(next(fib))  # 输出 1
print(next(fib))  # 输出 1

这些是 Python 中常见的函数类型,每种类型都有不同的特点和用途,一些比较高级用法的函数,后面学到了我们在来讲,现在只需要了解下就可以了。

更多精彩内容,请关注同名公众:一点sir(alittle-sir)

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

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

相关文章

基于Java的高校竞赛管理系统设计与实现(亮点:发起比赛、报名、审核、评委打分、获奖排名,可随意更换主题如蓝桥杯、ACM、王者荣耀、吃鸡等竞赛)

高校竞赛管理系统 一、前言二、我的优势2.1 自己的网站2.2 自己的小程序(小蔡coding)2.3 有保障的售后2.4 福利 三、开发环境与技术3.1 MySQL数据库3.2 Vue前端技术3.3 Spring Boot框架3.4 微信小程序 四、功能设计4.1 主要功能描述4.2 系统角色 五、系统…

文心一言 VS 讯飞星火 VS chatgpt (98)-- 算法导论9.3 4题

四、用go语言,对一个包含n个元素的集合,假设一个算法只使用比较来确定第i小的元素,证明:无需额外的比较操作,它也能找到第 i-1 小的元素和第 n-i大的元素。 文心一言: 在这个问题中,我们要使用一个称为&q…

ArrayList 的自动扩容机制

触发扩容 ArrayList 是一个数组结构的存储容器,默认情况下,数组的长度是 10 当然我们也可以在构建 ArrayList 对象的时候自己指定初始长度。随着在程序里面不断的往 ArrayList 中添加数据,当添加的数据达到 10 个的时候,ArrayLis…

7.2、如何理解Flink中的水位线(Watermark)

目录 0、版本说明 1、什么是水位线? 2、水位线使用场景? 3、设计水位线主要为了解决什么问题? 4、怎样在flink中生成水位线? 4.1、自定义标记 Watermark 生成器 4.2、自定义周期性 Watermark 生成器 4.3、内置Watermark生…

在Kubernetes上安装和配置Istio:逐步指南,展示如何在Kubernetes集群中安装和配置Istio服务网格

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

爬虫实践-豆瓣读书Top250

爬虫学习与实践 一、爬虫介绍二、爬虫原理TCP3次握手,4次挥手过程 三、页面解析之数据提取四、正则表达式五、实践1. 抓取百度贴吧2. 拉钩招聘网 六、 进阶版 一、爬虫介绍 网络爬虫,其实叫作网络数据采集更容易理解。就是通过编程向网络服务器请求数据…

xp 系统 安装 python 2.7 ide pip

1 下载python http://www.python.org/ftp/python/ python-2.7.2.msi 安装完需要设置环境变量 2 下载 setuptools setuptools-0.6c11.win32-py2.7.exe https://pypi.tuna.tsinghua.edu.cn/simple/setuptools/ 3 下载 pip ,python 2.7 最高支持 pip 20.3.4 https:…

mysql 半同步复制模式使用详解

目录 一、前言 二、mysql主从架构简介 2.1 mysql主从复制架构概述 2.2 为什么使用主从架构 2.2.1 提高数据可用性 2.2.2 提高数据可靠性 2.2.3 提升数据读写性能 2.3 主从架构原理 2.4 主从架构扩展 2.4.1 双机热备(AB复制) 2.4.2 级联复制 2…

[面试] k8s面试题 2

文章目录 核心组件1.什么是 Kubernetes 中的控制器(Controller)?请提供一些常见的控制器类型。2.请解释一下 Kubernetes 中的 Ingress 是什么,以及它的作用。3.如何通过命令行在 Kubernetes 中创建一个 Pod?4.Stateful…

关于IDEA没有显示日志输出?IDEA控制台没有显示Tomcat Localhost Log和Catalina Log 怎么办?

问题描述: 原因是;CATALINA_BASE里面没有相关的文件配置。而之前学习IDEA的时候,把这个文件的位置改变了。导致,最后输出IDEA的时候,不会把日志也打印出来。 检查IDEA配置; D:\work_soft\tomcat_user\Tomcat10.0\bin 在此目录下&…

初识软件工程

软件工程是一门涵盖软件开发、维护和管理的学科,它通过应用工程化的原则和方法来提高软件系统的质量和可靠性。在当今数字化和信息化的时代,软件工程对于现代社会的各个领域都具有至关重要的作用。 基本概念? 计算机系统中与硬件相互依存的一…

《深度学习工业缺陷检测》专栏介绍 CSDN独家改进实战

💡💡💡深度学习工业缺陷检测 1)提供工业小缺陷检测性能提升方案,满足部署条件; 2)针对缺陷样品少等难点,引入无监督检测; 3)深度学习 C、C#部署方案&#…

iPhone15线下购买,苹果零售店前门店排长队

今年的苹果新品发布会于北京时间 9 月 13 日凌晨举行,并于 9 月 15 日(周五)开启订购,9 月 22 日(周五)起正式发售。 据多位网友反馈,首批苹果 iPhone15 系列手机、Apple Watch Ultra 2 / Seri…

OceanBase杨传辉传递亚运火炬:国产数据库为“智能亚运”提供稳稳支持

9 月 14 日,亚运火炬传递到了浙江台州,OceanBase 的 CTO 杨传辉作为火炬手交接了第 89 棒火炬。 2010 年,杨传辉作为创始成员之一参与自研原生分布式数据库 OceanBase。十年磨一剑,国产数据库 OceanBase 交出了一张优秀的成绩单&a…

【vue2第十九章】手动修改ESlint错误 和 配置自动化修改ESlint错误

目标:认识代码规范 代码规范:一套写代码的约定规则。例如:“赋值符号的左右是否需要空格”,"一句结束是否是要加;”等 为什么要使用代码规范? 在团队开发时,提高代码的可读性。 在创建项目时,我们选择的就是一套完整的代码…

为什么定时发朋友圈会更有效呢?

这是因为在同一时段 发送的好友朋友圈 无法有效分散用户的注意力 导致曝光度难以提升 而通过推广定时发朋友圈 可根据自己的粉丝活跃度 设置发圈时间 让每一条朋友圈都能高效 传递到更多的好友手中 这样,曝光度自然而然地就大大提升了! 1.多个号…

java用easyexcel按模版导出

首先在项目的resources下面建一个template包,之后在下面创建一个模版,模版格式如下: 名称为 financeReportBillStandardTemplateExcel.xlsx: {.fee}类型的属性值,是下面实体类的属性,要注意这里面的格式&a…

低代码助力企业数字化转型

在当今这个数字化快速发展的时代,企业面临的竞争越来越激烈,数字化转型已成为企业发展的必经之路。低代码平台作为一种新型的开发工具,正在逐渐成为企业数字化转型的重要助力。本文将从数字化转型背景、低代码平台介绍、低代码平台的应用、低…

【打开新世界大门】看测试老鸟如何把API 测试玩弄在鼓掌之间

【软件测试面试突击班】如何逼自己一周刷完软件测试八股文教程,刷完面试就稳了,你也可以当高薪软件测试工程师(自动化测试) 一、API 测试的基本步骤 我介绍过当今互联网产品的测试策略往往会采用菱形结构,即重量级 AP…

操作系统:体系结构

1.内核的划分 1.术语解释 时钟管理:利用时钟断实现计时功能。原语是一种特殊的程序,具有原子性。也就是说,这段程序的运行必须一气呵成,不可被“中断”Ubuntu、Centos的开发团队,其主要工作是实现非内核功能,而内核都是用了Linux内核。 内核…