Python学习-函数模块

2023-05-16

1.函数定义

定义规则:

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()
  • 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  • 函数内容以冒号起始,并且缩进。
  • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

语法定义:

def functionname( parameters ):
   "函数_文档字符串"
   function_suite
   return [expression]

默认情况下,参数值和参数名称是按函数声明中定义的顺序匹配起来的。

例:

def printStr(str):
    printf(str)
    return

 

2.函数调用

定义的函数可以用过别的函数进行调用,也可以用Python命令行进行执行。

例如:

def printStr(str):
    print(str)
    return

printStr("直接调用")

def usePrint():
    str = "函数调用"
    printStr(str)
    return

usePrint()

输出: 

直接调用
函数调用

3.参数

3.1 必备参数

如printStr函数,输出一个str变量,所以必须要传入一个参数,这是必备参数

3.2 关键字参数

关键字参数在当函数调用时声明的顺序与调用的顺序不同时,python能根据调用的顺序来自动匹配传入的参数。

例如:

def printStr(str1,str2):
    print(str1)
    print(str2)
    return


def usePrint():
    printStr(str2="函数调用2",str1="函数调用1")
    return

usePrint()

输出:

函数调用1
函数调用2

虽然先声明的str2,但是调用函数会根据传入函数的顺序来自动匹配,先输出str1.

3.3 默认参数

正常情况下函数要么无参,要么有参数,当在有参时,却又不给传入参数时,如果函数自身定义了一个默认参数,将会使用这个默认参数,如果传入了参数将会把这个参数给覆盖掉。

例如:

def printStr(str1,str2="默认参数"):
    print(str1,end="")
    print(str2,)
    return
printStr("调用1","调用1")
printStr("调用2")
调用1调用1
调用2默认参数

在调用2,没有传入str2的参数,因此调用默认参数进行输出。

3.4 不定长参数

语法格式:

def functionname([formal_args,] *var_args_tuple ):
   "函数_文档字符串"
   function_suite
   return [expression]

当不确定传入的参数个数时,使用不定长参数。

例如:

def params(str,*strs):
    print(str)
    for i in strs:
        print(i)
    return

params("apple")
params("apple","banana","peach","orange")
params(1,2,3,4,5)
apple
apple
banana
peach
orange
1
2
3
4
5

使用*表示不确定参数个数,*会记录所有未命名的参数,*输出的一般是元组的形式。

还可以使用**,**输出的是字典的形式。

例如:

def arras(x,y,z=4,*param,**params):
    print(x,y,z)
    for i in range(len(param)):
        print(param[i],end=" ")
    for j in params:
        print(params[j],end=" ")
    return

arras(1,2,3,4,a='a=100',b='b=200',c='c=300')

输出:

1 2 3
4 a=100 b=200 c=300 

 

3.5 匿名参数

python 使用 lambda 来创建匿名函数。

  • lambda只是一个表达式,函数体比def简单很多。
  • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
  • lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
  • 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

语法定义:

lambda [arg1 [,arg2,.....argn]]:expression

例如:

result = lambda arg1,arg2:arg1+arg2
new = lambda arg3,arg4:arg3*arg4

print(result(3,4))
print(new(3,4))

输出:

7
12

调用lambda表达式,输出运算结果。

4.变量类型

与c,java一样,变量分为局部变量和全局变量,局部变量定义在函数体内,全局变量定义在函数体外。

例如:

param = "全局变量"

def printStr1():
    print(param)
    return

def printStr2():
    param = "局部变量"
    print(param)
    return

printStr1()
printStr2()
print(param)

输出:

全局变量
局部变量
全局变量

当全局变量与局部变量定义相同时,在函数内局部变量会覆盖全局变量,在函数外还是全局变量起作用。

 

 

 

 

 

 

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python学习-函数模块 的相关文章

  • LeetCode罗马数字转整数

    罗马数字包含以下七种字符 I xff0c V xff0c X xff0c L xff0c C xff0c D 和 M 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如 xff0c 罗马数字 2 写做
  • STM32F407-跑马灯

    硬件准备 xff08 STM32F407ZGT6 xff09 1 初始准备 1 1打开Template模板 xff0c 在工程目录下新建HARDWARE文件夹 1 2 新建在HARDWARE路径中新建led c led h两个文件 xff0
  • LeetCode-括号匹配

    给定一个只包括 39 39 xff0c 39 39 xff0c 39 39 xff0c 39 39 xff0c 39 39 xff0c 39 39 的字符串 xff0c 判断字符串是否有效 有效字符串需满足 xff1a 左括号必须用相同类型
  • STM32F407-串口通信基本原理

    1 处理器与外部设备通信的两种方式 xff1a 并行通信 传输原理 xff1a 数据各个位同时传输 优点 xff1a 速度快 缺点 xff1a 占用引脚资源多 串行通信 传输原理 xff1a 数据按位顺序传输 优点 xff1a 占用引脚资源
  • STM32F407-串口数据传送

    一 串口基础 1 常用的串口相关寄存器 USART SR状态寄存器USART DR数据寄存器USART BRR波特率寄存器 2 串口操作相关库函数 xff08 省略入口参数 xff09 void USART Init 串口初始化 xff1a
  • 外观数组

    外观数列 是一个整数序列 xff0c 从数字 1 开始 xff0c 序列中的每一项都是对前一项的描述 前五项如下 xff1a 1 1 2 11 3 21 4 1211 5 111221 1 被读作 34 one 1 34 34 一个一 34
  • STM32F407-外部中断

    一 基本概念 STM32F4的每个IO都可以作为外部中断输入 STM32F4的中断控制器支持22个外部中断 事件请求 xff1a EXTI线0 15 xff1a 对应外部IO口的输入中断 EXTI线16 xff1a 连接到PVD输出 EXT
  • 杨辉三角①与②

    给定一个非负整数 numRows xff0c 生成杨辉三角的前 numRows 行 在杨辉三角中 xff0c 每个数是它左上方和右上方的数的和 示例 输入 5 输出 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 思路 xff1
  • wireshark 清空列表

    windows ctrl 43 shift 43 D mac ctrl 43 shift 43 D 操作后 xff1a
  • 二叉树最大深度与最小深度

    给定一个二叉树 xff0c 找出其最大深度 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数 说明 叶子节点是指没有子节点的节点 示例 xff1a 给定二叉树 3 9 20 null null 15 7 xff0c 3 9 20 15
  • 买卖股票的最佳时机①

    给定一个数组 xff0c 它的第 i 个元素是一支给定股票第 i 天的价格 如果你最多只允许完成一笔交易 xff08 即买入和卖出一支股票 xff09 xff0c 设计一个算法来计算你所能获取的最大利润 注意你不能在买入股票前卖出股票 示例
  • 图像语义分割原理及常用方法

    1图像语义分割的概念 1 1图像语义分割的概念与原理 图像语义分割可以说是图像理解的基石性技术 xff0c 在自动驾驶系统 xff08 具体为街景识别与理解 xff09 无人机应用 xff08 着陆点判断 xff09 以及穿戴式设备应用中举
  • TensorFlow基础篇

    1 TensorFlow 是什么 是一个深度学习库 xff0c 由 Google 开源 xff0c 可以对定义在 Tensor 张量 上的函数自动求导 Tensor 张量 意味着 N 维数组 xff0c Flow 流 意味着基于数据流图的计
  • 从国外官网github下载各种软件安装包项目太慢怎么办

    1 网速太慢 xff0c 被限速经常失败 xff0c 复制下面网址到迅雷下载 2 更改下载源 pip install selenium i http pypi douban com simple 还有多个其他下载源清华的下载源好像不能用了
  • 深度学习-神经网络编程使用过程中的问题汇总。

    1 pip安装下载速度慢 xff0c 不稳定容易失败等问题 第一个方法是改变下载源 pip install selenium i http pypi douban com simple 还有多个其他下载源清华的下载源好像不能用了 xff0c
  • Tensorflow问题之赋值失败为空值

    import tensorflow as tf a 61 tf zeros 2 3 b 61 tf ones 4 c 61 tf fill 2 2 9 print 34 a 34 a print 34 b 34 b print 34 c 3
  • 神经网络----TF1与TF2代码实现鸢尾花分类

    运行环境 xff1a python3 6 5 43 tensorflow1 13 2 python3 7 43 tensorflow2 0 Tensorflow1 xff1a 1 首先加载鸢尾花数据集 xff0c 读入输入特征以及标签 直接
  • 语义分割权重h5文件下载失败问题

    这个问题困扰我很久 xff0c 所以单拿出来记录以泄我心头之恨 xff0c 从github上下载预训练权重太慢 xff0c 经常发生timeout错误导致下载失败 xff0c 查了好多网站都没办法解决我的问题 xff0c 于是乎自己研究了一
  • LeetCode-整数转罗马数字

    罗马数字包含以下七种字符 xff1a I xff0c V xff0c X xff0c L xff0c C xff0c D 和 M 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如 xff0c 罗马数
  • could not find compatible versions for pod boost-for-react-native

    具体错误如下图 xff1a 这是因为在 jsi 中标记的boost for react native版本是1 63 0 xff0c 而在 gitee 中的 boost for react native 版本是 1 63 0 1 xff0c

随机推荐

  • 盛水最多的容器

    题目描述 xff1a 给你 n 个非负整数 a1 xff0c a2 xff0c xff0c an xff0c 每个数代表坐标中的一个点 i ai 在坐标内画 n 条垂直线 xff0c 垂直线 i 的两个端点分别为 i ai 和 i 0 找出
  • 步进电机细分功能

    首先步距角的概念 xff0c 61 360度 xff08 转子齿数 运行拍数 xff09 常规的两相步进电机步距角1 8 xff0c 三相1 2 xff0c 四相0 9 xff1b 一个步距角对应一个脉冲 xff0c 也就是说接收到一个脉冲
  • STM32全套开发板视频教程+实例源码+开发手册+调试工具下载

    好多人找不到STM32系列的学习资料 xff0c 教程什么的 xff0c 在这里说明一下 xff0c 去正点原子的官网有STM32全套开发板视频教程 43 代码 43 开发手册 43 调试工具的下载链接 xff1a http www ope
  • STM32F407-ADC(模数转换)

    一 硬件 STM32F407开发板 xff0c 杜邦线 通过通道获取板载电压的模拟输入信号转变为数字信号 xff0c 并通过转换变成电压 STM32F407有3个ADC xff0c 每个ADC有16个通道 xff0c 下表为ADC通道对应的
  • LeetCode-搜索插入位置

    给定一个排序数组和一个目标值 xff0c 在数组中找到目标值 xff0c 并返回其索引 如果目标值不存在于数组中 xff0c 返回它将会被按顺序插入的位置 你可以假设数组中无重复元素 示例 1 输入 1 3 5 6 5 输出 2 示例 2
  • Github快速查找资源常用筛选命令

    1 按项目名称 仓库名称搜索 xff08 不区分大小写 xff09 命令 in name xxx 示范 xff1a in name tensorflow 2 按照readme搜索 xff08 不区分大小写 xff09 命令 in readm
  • STM32F407-定时器中断

    1 通用定时器工作流程 2 时钟来源 定时器有4个时钟源 xff0c 分别为 xff1a 内部时钟 CK INT 外部时钟模式1 xff1a 外部输入脚 TIx 外部时钟模式2 xff1a 外部触发输入 ETR 仅适用TIM2 3 4 内部
  • STM32F407-获取GPIO电平状态

    判断STM32 GPIO输入口的输入状态 xff08 高电平或低电平 xff09 以PE2和PE4为例 xff1a 判断单个端口是否为高电平 xff1a if GPIOE gt IDR amp GPIO IDR IDR2 函数体 xff1b
  • STM32F407-限位金属传感器限制步进电机

    一 硬件 1 硬件准备 xff1a 57步进电机 xff08 型号57CM18 xff09 xff0c 42步进电机 xff0c 驱动器TB6600 xff0c 开发板STM32F407ZGT6 xff0c SN 4NDO限位金属传感器 x
  • MobileNet学习记录-概念篇

    MobileNet 1 网络简介 MobileNet模型是Google公司近年来提出的一种轻量级深度神经网络 xff0c 主要用于移动和嵌入式平台开发使用 MobileNets主要是从最初引入的深度可分离卷积构建的 xff0c 并随后用于I
  • Node将JS与Puppeteer打包成exe使用

    pkg pkg是一个可以将nodejs代码打包封装成可执行文件的工具 xff0c 安装命令如下 xff1a npm install g pkg 打包命令如 xff1a 默认会打包三个平台的可执行文件 xff0c win mac linux
  • Ubuntu 连接 wifi -亲测可用

    连接wifi 修改 etc network interfaces 文件 这个文件是定义网络配置的 sudo vim etc network interfaces interfaces 修改后文件内容如下 xff1a auto eth0 if
  • 卷积神经网络CNN学习记录-概念篇

    卷积神经网络CNN 1 网络简介 卷积神经网络 xff08 Convolutional Neural Network xff09 是人工神经网络与深度学习相结合 xff0c 它是一种具有卷积计算并且具有深度结构的前馈神经网络经 xff0c
  • 卷积神经网络CNN学习记录-实战篇(Minst手写数据集识别)

    from tensorflow examples tutorials mnist import input data import tensorflow as tf minst 61 input data read data sets 34
  • 卷积神经网络CNN学习记录-CNN实现语义分割(Encoder-Decoder结构)

    1 Encoder from keras layers import def Conv Encoder input height 61 416 input width 61 416 Img In 61 Input shape 61 inpu
  • MobileNet学习记录-基于MobileNetV1的自动驾驶图像语义分割实现

    1 MobileNet基础及架构 Mobielnet学习记录 概念篇 2 实现思路 为了便于实现 xff0c 还是采用了Encoder Decoder结构 xff0c 利用MobileNet来进行特征提取 xff0c 相较于CNN的卷积操作
  • STM32F407-SPI通信接口

    1 SPI概念 SPI xff0c 是一种高速的 xff0c 全双工 xff0c 同步的通信总线 xff0c 并且在芯片的管脚上只占用四根线 xff0c 节约了芯片的管脚 xff0c 同时为PCB的布局上节省空间 xff0c 提供方便 xf
  • Python学习-变量类型

    1 单变量赋值 等号 xff08 61 xff09 用来赋值 xff0c 左边是一个变量名 xff0c 右边是存储在变量中的值 xff0c 定义变量不需要声明类型 xff0c 可以直接赋值使用 例 xff1a temp1 61 100 赋值
  • Python学习-条件循环

    1 while循环 while循环的语句格式为 xff1a while condition statements 当判断条件为真时 xff0c 就会执行循环中的语句 xff0c 当条件为假时退出循环 xff0c 若条件为一个永真式 xff0
  • Python学习-函数模块

    1 函数定义 定义规则 xff1a 函数代码块以 def 关键词开头 xff0c 后接函数标识符名称和圆括号 任何传入参数和自变量必须放在圆括号中间 圆括号之间可以用于定义参数 函数的第一行语句可以选择性地使用文档字符串 用于存放函数说明