python基本函数

【 一 】python 函数

        python中可以将某些具备一定功能的代码写成一个函数,函数可以在一定程度上减少代码的冗余,节约书写代码的时间。

Python中定义好的函数是可以通过函数名称调取并重复使用的模块。

Python有内置函数,如print()函数;也支持创建自定义函数。

定义:

1 #定义一个函数
2 def func():                #使用def关键字定义函数 ,接函数名,括号内可以传递参数
3     print("hello world")    #函数体
4     return                  #返回值:函数在执行过程中只要遇到return语句,就会停止执行并返回结果,如果未在函数中指定return,那这个函数的返回值为None 
5   
6 #调用函数
7 func()

        Python中使用def关键字来声明函数,声明函数的格式为:

def 函数名 (参数):'函数的说明文档'
执行语句模块【return】+【 返回值】

有3个需要注意的地方:

  1. 函数名后面必须加冒号
  2. 如果函数体和def不在同一行,则必须缩进
  3. return指定函数返回值,用来结束函数
    • 但return语句是可有可无的,如果不给return,则等价于加上了return None,即函数默认返回None结构

        如果函数体body语句只有一行,或者可以简写为一行,则可以写在def的同行。例如:

def myfunc(x,y,z): print(x+y+z)

        函数声明好之后,就可以执行函数,执行函数也称为调用函数,方式为func_name(args),例如:

myfunc(1,2,3)

        函数中往往会包含一个return或多个return语句,它可以出现在函数中的任意位置处,它用来结束函数的执行,并返回给定的值。例如:

def func(x):return x+5

        表示返回x+5的值,返回值是一种值类型,所以可以赋值给变量、可以输出、可以操作等等。例如:

print(func(3))    # 输出返回值a=func(4)         # 赋值给变量
print(a)print(func(5)+3)  # 数值操作

        return语句是可选的,如果函数中不指定return语句,则默认返回None,即类似于return None

【 二 】定义函数

1.定义空函数

        Python 语言允许定义一个没有任何功能的空函数,可以使用 【pass 语句】作为占位符定义空函数,但空函数本身并没有实际意义。

def empty ():pass

2.定义单一变量函数

(1)定义函数

# 代码
# 函数1:不写【return】
def add (num):"函数名:add,参数为变量num,当调用add函数时,执行【a=num+1】和【print(a)】两个命令"a=num+1print(a)
# 代码
# 函数2:完整的单一变量函数
def add_1 (num):"函数名:add,参数为变量num,当调用add函数时,执行【a=num+1】和【print(a)】两个命令,最终输出函数结果num+1"a=num+1print(a)return num+1
# 代码
# 函数3:不写执行语句模块
def add_2 (num):"函数名:add,参数为变量num,当调用add函数时,最终输出函数结果num+1"return num+1

(2)查看函数说明文档

a.用help() 内置函数查看说明文档,格式【?】+【函数名】。

b.用【_doc_ 】属性查看函数查看说明文档。函数本身是一个对象,而每个对象都会有一个【_doc_ 】属性,该属性用于描述该对象的作用,格式【函数名】+【.】+【_doc_ 】。

# 代码
Greeting._doc_#结果
"函数名:Greeting,参数为变量name,当调用Greeting函数时,执行输出'Hi,{},欢迎关注!'的命令"

(3)调用函数

格式【函数名】+【(参数)】。

# 代码
# 调用add函数:不写【return】
add(2)# 结果
# 输出执行语句模块结果
3
# 代码
# 调用add_1函数:完整的单一变量函数
add_1(2)# 结果
# 输出执行语句模块结果
3
# 显示函数最终结果,结果前提示符为out[num],表示结果没有print
3
# 代码
# 调用add_2函数:不写执行语句模块
add_(2)# 结果
# 显示函数最终结果,结果前提示符为out[num],表示结果没有print
3

【  三 】 三种写法的函数区别

【返回值】(比喻为老板可以拿最终年报做后续工作)是函数最终的结果,可用于带入其他计算;

【执行语句模块】(比喻为老板不能拿工作过程做后续工作)是函数的运算过程,其中输出的结果不能与其他命令进行计算。

# add_1函数完整的单一变量函数,函数2最终结果为返回(输出)3,最终结果是整型,能参与后续加法运算# 代码
# 输出(调用函数2,查看类型(调用函数2))
print(add_1(2),type(add_1(2)))#1+调用函数2
1+add_1(2)# 结果
3 # 输出执行语句命令
3 # 输出函数2最终结果
3 <class 'int'> #输出执行语句命令,再输出函数2最终结果的数据类型#1+add_1(2)计算过程中,先调用函数2,输出执行语句命令,再用函数2最终结果与1进行加法计算输出运算结果# add_2函数没有执行语句模块,但有return,且定义了返回值,函数3最终结果为返回(输出)3,最终结果是整型,能参与后续加法运算# 代码
# 输出(调用函数3,查看类型(调用函数3))
print(add_2(2),type(add_2(2)))#1+调用函数3
1+add_2(2)# 结果
<class 'int'>

【  四 】关于函数参数

        函数的参数其实也是变量,只不过这些变量是独属于函数的本地变量,函数外部无法访问。在函数调用的时候,会将给定的值传递给函数的参数,这实际上是变量赋值的过程。

def myfunc(x,y,z):print(x,y,z)myfunc(1,2,3)

        def首先声明好函数,然后到了myfunc(1,2,3)时,表示调用函数(执行函数),调用函数时会将给定的值1,2,3传递给函数的参数x,y,z,其实就是变量赋值x=1,y=2,z=3,然后使用print输出它们。

        由于python是动态语言,无需先声明变量,也无需指定变量的类型,所以python的函数参数和返回值非常的灵活。任何类型的变量或数据结构都可以传递给参数,这实际上是变量赋值的过程。例如:

myfunc(1,2,3)
myfunc("abc",2,"def")
myfunc([1,2,3],4,5)

        上面几个函数调用语句中,赋值给参数的值可以是数值类型,可以是字符串类型,可以是列表类型,也可以是其它任何数据类型。

        python函数的参数相比其它语言要复杂一些,意味着要灵活很多,短短一个小节的篇幅完全没法解释清楚,关于参数细节,详细内容见后面的文章。

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

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

相关文章

Revisiting Proposal-based Object Detection阅读笔记

Revisiting Proposal-based Object Detection阅读笔记 论文地址&#xff1a;link Abstract For any object detector, the obtained box proposals or queries need to be classified and regressed towards ground truth boxes. 对于任何物体检测器来说&#xff0c;获得的…

AIGC+医疗专题:生成式人工智能于医疗健康

今天分享的是AI系列深度研究报告&#xff1a;《AIGC医疗专题&#xff1a;生成式人工智能于医疗健康》。 &#xff08;报告出品方&#xff1a;AREFACT&#xff09; 报告共计&#xff1a;23页 医疗保健中生成性人工智能的崛起: 在承诺与控制之间导航 Generative Al已经历了大规…

STM32CubeMx+MATLAB Simulink串口输出实验

STM32CubeMxMATLAB Simulink串口输出实验 &#x1f4cc;《STM32CubeMxMATLAB Simulink点灯程序》&#x1f4cd;相关篇《MATLAB Simulink STM32硬件在环 &#xff08;HIL&#xff09;实现例程测试》&#x1f516;需要的软件支持包&#xff1a;Embedded Coder Support Package fo…

<软考>软件设计师-3程序设计语言基础(总结)

(一) 程序设计语言概述 1 程序设计语言的基本概念 1-1 程序设计语言的目的 程序设计语言是为了书写计算机程序而人为设计的符号语言&#xff0c;用于对计算过程进行描述、组织和推导。 1-2 程序语言分类 低级语言 : 机器语言&#xff08;计算机硬件只能识别0和1的指令序列)&…

【Unity动画】Unity 2D动画创建流程

本文以2D为案例&#xff0c;讲解Unity 播放动画的流程 准备和导入2D动画资源 外部导入序列帧生成的 Unity内部制作的 外部导入的3D动画 2.创建动画过程 打开时间轴Ctrl6 选中场景中的一个未来需要播放动画的物体 回到时间轴点击Create一个新动画片段 拖动2D动画资源放入…

龙良曲PyTorch入门到实战 深度学习

文章目录 笔记激活函数与Loss的梯度lesson5 手写数字识别问题lesson6 基本数据类型lesson7 创建tensorlesson8 索引和切片lesson9 维度变换lesson10 broadcastinglesson11 分割和合并lesson12 数学运算lesson13 Tensor统计lesson14 Tensor高阶lesson16 什么是梯度lesson17 常见…

“智能批量复制文件:轻松实现高效且有序的编号复制“

在日常工作中&#xff0c;我们经常需要批量复制文件并给它们编号。这是一项非常繁琐的任务&#xff0c;但是现在&#xff0c;我们向你介绍一种全新的解决方案&#xff0c;帮助你轻松实现文件批量复制并编号。 首先&#xff0c;第一步我们要进入“文件批量改名高手”的主页面并…

Python搭建代理IP池实现接口设置与整体调度

目录 前言 1. 搭建免费代理IP爬虫 2. 将获取到的代理IP存储到数据库中 3. 构建一个代理IP池 4. 实现调度器来调度代理IP池 5. 实现带有代理IP池的爬虫 总结 前言 在网络爬虫中&#xff0c;代理IP池是一个非常重要的组件。由于许多网站对单个IP的请求有限制&#xff0c;…

深入理解Sentinel系列-2.Sentinel原理及核心源码分析

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码、Kafka原理、分布式技术原理&#x1f525;如果感觉博主的文章还不错的话&#xff…

Bounding boxes augmentation for object detection

Different annotations formats Bounding boxes are rectangles that mark objects on an image. There are multiple formats of bounding boxes annotations. Each format uses its specific representation of bouning boxes coordinates 每种格式都使用其特定的边界框坐标…

毕设:《基于hive的音乐数据分析系统的设计与实现》

文章目录 环境启动一、爬取数据1.1、歌单信息1.2、每首歌前20条评论1.3、排行榜 二、搭建环境1.1、搭建JAVA1.2、配置hadoop1.3、配置Hadoop环境&#xff1a;YARN1.4、MYSQL1.5、HIVE(数据仓库)1.6、Sqoop&#xff08;关系数据库数据迁移&#xff09; 三、hadoop配置内存四、导…

Docker网络原理

docker中的桥接模式介绍 桥接模式&#xff1a;用于连接两个不同网络段的设备&#xff0c;使他们能够共享通信的一种方式 桥接设备&#xff1a;工作在OSI模型的第二层&#xff0c;数据链路层&#xff0c;转发数据帧&#xff08;根据mac地址&#xff09;。 类似于交换机&#x…