Python中的自定义函数创建方法和应用举例

news2024/12/27 10:47:05

Python中的自定义函数创建方法和应用举例

在Python语言中,函数是一组能够完成特定任务的语句模块,可分为内置函数、第三方模块函数和自定义函数。其中,内置函数是Python系统自带的函数;模块函数是NumPy等库中的函数。

1.自定义函数概念

Python中定义函数的语法如下:

 def functionName(formalParameters):
       functionBody

(1)functionName是函数名,可以是任何有效的Python标识符。
(2)formalParameters是形式参数列表,在调用该函数时通过给形参赋值来传递调用值,形参可以是0个,1个或多个;当是多个形参时,各个参数由逗号分隔,比如:

'''
函数功能的说明
函数原理的说明
函数实现过程的说明等
'''
 def myfunction1(formalParameter1,formalParameter2, formalParameter3):
       functionBody
   形参列表外的圆括号不可少的,即使没有参数也不能少圆括号。圆括号外面的冒号也不能少。

(3)functionBody是函数体,是函数每次被调用时执行的一组语句,可以由一个语句或多个语句组成。函数体一定要注意缩进。函数体内容不可为空,可用pass来表示空语句。
(4)函数注释内容,函数通常使用3个单引号’‘’注释内容’''来说明本函数的作用和实现原理等。

2.定义函数注意事项
(1)函数定义必须放在函数调用前,否则编译器会由于找不到该函数而报错;
(2)返回值不是必需的,如果没有return语句,则Python默认返回值None。

3.自定义函数举例和应用
例子:分别编写求n!和输出斐波拉契数列的函数,并调用两个函数进行测试。
解答
实现方法1:直接在同一个.py文件中实现,比如文件名为ex0519_1.py,其具体程序代码如下

'''
本函数是练习自定义函数的创建
'''
#第一步自定义两个函数my_factorial和my_fib

def my_factorial(N):   #定义阶乘函数
    product=1
    while N>1:
        product=product*N
        N=N-1
    return product
'''注意:其中
        product=product*N
        N=N-1
   等效于
   product*=N
   N-=1
'''

def my_fib(M):     #定义输出斐波拉契数列函数
    a,b=1,1
    while a<M:
        print(a,end=' ')
        bm=a+b
        a=b
        b=bm
'''注意:其中
        bm=a+b
        a=b
        b=bm
   等效于
   a,b=b,a+b
'''

#第二步:调用定义的函数进行计算
print('%d!=%d'%(4,my_factorial(4))) 
my_fib(200)

运行结果:
在这里插入图片描述
实现方法2:采用调用子函数的方式实现。
首先,创建自己的自定义函数库my_function_library,其Python文件命名为my_function_library.py,并将两个子函数写入,自定义函数库中,其代码为

'''
自己创建的函数库my_function_library,其中包括两个函数
'''

def my_factorial(N):   #定义阶乘函数
    product=1
    while N>1:
        product=product*N
        N=N-1
    return product
def my_fib(M):     #定义输出斐波拉契数列函数
    a,b=1,1
    while a<M:
        print(a,end=' ')
        bm=a+b
        a=b
        b=bm

其次,写一程序,调用自定义函数库中的两个函数。比如,这个程序名称为ex0519_2.py,其程序代码为:

from my_function_library import my_factorial,my_fib
print('%d!=%d'%(6,my_factorial(6))) 
my_fib(256)

运行结果
在这里插入图片描述
4.总结
本文介绍了自定义函数的创建,(1)要牢记创建的格式:

 def functionName(formalParameters):
       functionBody

(2)要熟练掌握,自定义函数的两种调用方式:一种是在同一个程序中定义,然后调用;另一种方式,是定义自己的函数库,在自己的函数库中创建自定义函数,再从自己的函数库调用需要的函数实现对自己编写函数的使用。

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

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

相关文章

Java【网络原理2】TCP 协议的三次握手和四次挥手到底是什么意思?

文章目录 前言一、三次握手三次握手的作用 二、四次挥手总结 前言 各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助到你: &#x1f4d5; JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习图书管理系统等 &#x1f4d7; Java数据结构: 顺序表, 链…

mysqlbinlog delete恢复成insert

不小心把数据删掉了 首先要拿到binlog文件 执行以下命令行 /usr/local/mysql/bin/mysqlbinlog --base64-outputdecode-rows --start-datetime“2023-05-19 09:01:32” --stop-datetime“2023-05-19 09:01:35” -v /Users/zylong/Downloads/mysql-bin.003178 --result-file/Use…

第一章 数据库操作

一、 数据库操作 1.1 创建数据库 创建数据库是指在数据库系统中划分一块空间&#xff0c;用来存储相应的数据&#xff0c;这是进行表操作的基础&#xff0c;也是数据库管理的基础在MySQL中创建数据库之前&#xff0c;可以使用show语句来显示当前已经存在的数据库&#xff0c;…

java基于springboot协同过滤算法的网上图书商城推荐系统m44xq2

开发环境 开发语言&#xff1a;Java 框架&#xff1a;springboot 技术&#xff1a;JSP JDK版本&#xff1a;JDK1.8 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.9 浏览器&#xff1a;谷歌浏览器功能介绍 Spring…

微服务—Redis实用篇-黑马头条项目用户签到功能(使用bitmap实现)与UV统计

微服务—Redis实用篇-黑马头条项目用户签到功能&#xff08;使用bitmap实现&#xff09;与UV统计 1、用户签到 1.1、用户签到-BitMap功能演示 我们针对签到功能完全可以通过mysql来完成&#xff0c;比如说以下这张表 用户一次签到&#xff0c;就是一条记录&#xff0c;假如有…

npm 账户的创建、测试、登录

目录 1、账户的创建 2、测试创建的账户 3、通过电子邮件接收一次性密码 3.1 使用一次性密码登录&#xff1a; 3.2 启用双因素身份验证&#xff1a; 3.3 无法访问电子邮件 1、账户的创建 如果您还没有npm用户帐户&#xff0c;您可以创建一个帐户&#xff0c;以便在公共注…

MATLAB 之 二维图形绘制的基本函数和辅助操作

文章目录 一、绘制二维曲线的基本函数1. plot 函数的基本用法2. 含多个输入参数的 plot 函数3. 含选项的 plot 函数4. 双纵坐标函数 plotyy 二、绘制绘制图像的辅助操作1. 图形标注2. 坐标控制3. 图形保持4. 图形窗口的分割 二维图形是将平面坐标上的数据点连接起来的平面图形。…

C++的cout详解

2023年5月20日&#xff0c;周六早上&#xff1a; 我发现我找不到非常详细的cout类的成员函数&#xff0c;只好自己写了。 不定期更新。 cout的继承关系 cout类继承自ostream类&#xff0c;ostream类继承自ios类&#xff0c;ios类继承自ios_base类 cout类拥有的所有成员函数 …

包图的画法

包图 1.包图 1.1概念 包图是UML中用来组织模型元素的模型元素。 可以把包图比作一个存放模型元素的箱子或者是容器&#xff0c;里面可以可以存放各种各样的模型元素。 包图中可以包含的信息主要有&#xff1a;类 构件 用例 结点 活动 状态 等其他的相关的模型元素。 1.2包…

秒杀场景checklist

在面试中经常碰到的问题&#xff0c;列下来备忘。

车载以太网 - SomeIP - 协议用例 - Messages_01

目录 Service Discovery Messages 1、验证Instance ID为0xFFFF时DUT需要返回该Serveice ID包含的所有Instance ID

chatgpt赋能Python-python3去掉空格

Python3去掉空格——让你的代码更整洁高效 在Python3编程中&#xff0c;去掉无用的空格可以使代码更具可读性和高效性。因此&#xff0c;在本文中&#xff0c;我们将介绍如何使用Python3去掉空格&#xff0c;包括字符串中的空格和代码文件中的空格。 字符串中的空格 在Pytho…

学系统集成项目管理工程师(中项)系列23a_信息系统集成及服务管理(上)

1. 提供的专业信息技术咨询服务、系统集成服务、技术支持服务、运行维护服务等工作 2. 信息技术咨询服务 2.1. 信息系统集成及服务的前端环节 2.2. 为企业提供信息化建设规划和解决方案 3. 原因 3.1. 不具备技术实力的系统集成商搅乱信息系统集成及服务市场 3.2. 一些建设…

chatgpt赋能Python-python3快捷键大全

Python3快捷键大全 介绍 Python是一种高级编程语言&#xff0c;广泛应用于科学计算、人工智能、网络编程、Web开发和数据分析等领域。Python具有简洁、易读、易学和可扩展等特点&#xff0c;因此成为了生产力非常高的编程语言之一。Python3是Python语言的最新版本&#xff0c…

印度和巴基斯坦网络优势和劣势的综合研究

由于网络空间在当今世界的重要性日益增加&#xff0c;各国已将网络安全放在首位并开发技能来保护其重要基础设施、数字资产和私人数据。 没有豁免适用于印度和巴基斯坦&#xff0c;这两个拥有动荡历史的核武器邻国。 这项研究深入比较了他们的网络能力&#xff0c;并评估了巴…

基于DBSCAN密度聚类的风电-负荷场景削减方法

​目录 ​ 1 主要内容 基于密度聚类的数据预处理&#xff1a; 场景提取&#xff1a; 算法流程&#xff1a; 2 部分程序 3 程序结果 4 下载链接 1 主要内容 该程序复现文章《氢能支撑的风-燃气耦合低碳微网容量优化配置研究》第三章内容&#xff0c;实现的是基于DBSCAN…

shiro与Spring Boot 整合

目录 框架整合 创建模块 添加依赖 添加配置文件 添加启动类 ​编辑 登录认证实现 后端接口服务实现 实现前端页面 框架整合 创建模块 添加依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-p…

音视频windows安装ffmpeg6.0并使用vs调试源码笔记

建立在上一步&#xff0c;vs已经能够正常调试qt项目&#xff0c;可以实现&#xff1a; 1&#xff1a;qt可以使用mvsc &#xff08;使用cdb&#xff09;进行调试。 2&#xff1a;vs已经可以加载qt项目&#xff0c;借助vs进行调试。 本文目标&#xff1a;编译ffmpeg库&#xf…

chatgpt赋能Python-python3的内置函数

Python3内置函数大全 Python3是一种高级编程语言&#xff0c;拥有丰富的内置函数库。这些内置函数包括许多核心功能和常用操作。在这篇文章中&#xff0c;我们将介绍一些最常用和最有用的Python3内置函数。 1. print() print()函数用于将输出打印到控制台。它是Python中最常…

chatgpt赋能Python-python3怎么换行

Python3中的换行是许多初学者和经验丰富的工程师们都需要掌握的关键概念之一。在本文中&#xff0c;我们将探讨Python3中如何使用换行&#xff0c;包括介绍和结论。 什么是Python3中的换行&#xff1f; 在Python3中&#xff0c;换行是指将一行代码分成多个部分&#xff0c;以…