[Python基础知识]05函数和模块

一、函数的定义

格式:def 函数名(参数列表):

注:

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。即使该函数不需要接收任何参数,也必须保留一对空的圆括号

  • 函数形参不需要声明其类型,也不需要指定函数返回值类型

  • 参数列表是调用该函数时传递给它的值,可以有零个、一个或多个,当传递多个参数时各参数由逗号分隔

  • 函数内容以冒号起始,并且缩进(函数体相对于def关键字必须保持一定的空格缩进)



#下面的定义是一个求阶乘的函数
def factorial(num):
    result = 1
    for n in range(1, num + 1):
        result *= n
    return result
x = factorial(4)
y = factorial(10)
print(x)
print(y)

运行结果:

二、返回值

  1. return [表达式] 结束函数,选择性地返回一个值给调用方。

  1. 函数可以没有return,此时函数并不返回值,不带表达式的return相当于返回 None。

  1. 如果程序有多个返回值,可以封装为列表返回,也可以直接返回多个值,如果是直接返回多个值,python自动封装为元组



import math
def gcd_lcm(a,b):
    #求最大公约数
    x = math.gcd(a,b)
    #求最小公倍数
    y = a * b // x
#     return [x,y]
    return x,y

# z = gcd_lcm(12,20)
# print(z)
## 使用序列解包获取多个返回值
mygcd,mylcm = gcd_lcm(12,20)
print(mygcd)
print(mylcm)

运行结果:

三、函数的嵌套

递归时函数自己调用自己。递归时要注意设置结束条件,虽然Python中有限定递归的总数,但是还是要注意的。

四、函数的参数

1、位置参数:

调用函数时实参和形参的顺序必须严格一致,并且实参和形参的数量必须相同。否则会报错。

2、默认值参数

如果大部分的参数是某个值,可以设置为默认参数,简化函数的调用

注:

  • 默认值参数必须出现在函数参数列表的最右端,任何一个默认值参数右边不能有非默认值参数。

  • 如果默认参数不是在参数最后,则python解释器会报错。

  • 默认参数必须指向不变对象,比如str,int,NONE等。而默认参数是list、dict等是可变对象时,会导致数据错误

  • f.__defaults__ #查看函数默认值参数的当前值

3、可变参数

*parameter用来接受多个实参并将其放在一个元组中



def value(a,b,*c):
    '''
    a:操作数
    b:操作符号(+—*/)
    c:操作数
    功能:用a和c进行b的操作
    '''
    if b=='+':
        for  item in c:
            a=a+item       
    elif b=='-':
        for item in c:
            a=a-item
    return a
y=value(20,'-',4,5,6)
print(y)
z=value(20,'+',4,5)
print(z)
x=value(20,'+',5,6)
print(x)

运行结果:

4、关键字参数

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

layui中禁用div标签等操作

为了实现点击表格行后触发事件 然后去触发后进行操作 页面流程操作设置规定 不可编辑直接添加属性 class"layui-disabled"如果在最大的 div 设置不可编辑 但是内部有些还是可以触发使用的 所以就重写一下 取到当前 div 下的 所有的子元素 然后在给所有的子元素…

闲话 ASP.NET Core 数据校验(二):FluentValidation 基本用法

前言 除了使用 ASP.NET Core 内置框架来校验数据,事实上,通过很多第三方框架校验数据,更具优势。 比如 FluentValidation,FluentValidation 是第三方的数据校验框架,具有许多优势,是开发人员首选的数据校验…

抢先体验:MacOS成功安装PHP8.4教程

根据官方消息,PHP 8.4将于2024年11月21日发布。它将通过三个 alpha 版本、三个 beta 版本和六个候选版本进行测试。 这次的重大更新将为PHP带来许多优化和强大的功能。我们很高兴能够引导您完成最有趣的更新升级,这些更改将使我们能够编写更好的代码并构…

解决React报错Encountered two children with the same key

当我们从map()方法返回的两个或两个以上的元素具有相同的key属性时,会产生"Encountered two children with the same key"错误。为了解决该错误,为每个元素的key属性提供独一无二的值,或者使用索引参数。 这里有个例子来展示错误是…

YOLOv8主要命令讲解

YOLOv8主要有三个常用命令,分别是:train(训练)、predict(预测)、export(转化模型格式),下面我将展开讲讲三个常用命令的常用参数与具体使用方法。 一、训练 通过自己标…

STM32单片机通过串口控制DDSM210 直驱伺服电机

1 电机介绍 官方资料:https://www.waveshare.net/wiki/DDSM210 DDSM210 直驱伺服电机是基于一体化开发理念,集外转子无刷电机、编码器、伺服驱动于一体的高可靠性永磁同步电动机,其结构紧凑,安装方便,运行稳定&#x…

react核心知识

1. 对 React 的理解、特性 React 是靠数据驱动视图改变的一种框架,它的核心驱动方法就是用其提供的 setState 方法设置 state 中的数据从而驱动存放在内存中的虚拟 DOM 树的更新 更新方法就是通过 React 的 Diff 算法比较旧虚拟 DOM 树和新虚拟 DOM 树之间的 Chan…

【PCL】教程 supervoxel_clustering执行超体聚类并可视化点云数据及其聚类结果

[done, 417.125 ms : 307200 points] Available dimensions: x y z rgba 源点云milk_cartoon_all_small_clorox.pcd > Loading point cloud... > Extracting supervoxels! Found 423 supervoxels > Getting supervoxel adjacency 这段代码主要是使用PCL(Po…

Linux进程——进程的创建(fork的原理)

前言:在上一篇文章中,我们已经会使用getpid/getppid函数来查看pid和ppid,本篇文章会介绍第二种查看进程的方法,以及如何创建子进程! 本篇主要内容: 查看进程的第二种方法创建子进程系统调用函数fork 在开始前&#xff…

【华为】路由综合实验(基础)

【华为】路由综合实验 实验需求拓扑配置AR1AR2AR3AR4AR5PC1PC2 查看通信OSPF邻居OSPF路由表 BGPBGP邻居BGP 路由表 配置文档 实验需求 ① 自行规划IP地址 ② 在区域1里面 启用OSPF ③ 在区域1和区域2 启用BGP,使AR4和AR3成为eBGP,AR4和AR5成为iBGP对等体…

buuctf-misc-22.神秘龙卷风1

22.神秘龙卷风1 题目:暴力破解-翻译Brainfuck计算机语言 根据提示是4位密码,直接破解密码即可 解压后发现是这样一个文档 我们尝试使用网站翻译这个 内容由“”、“.”、“>”三种符号组成,我刚开始认为这是一种密文,经过搜索…

thinkpad电脑文件隐藏了怎么恢复?教你几招

在使用ThinkPad电脑时,有时我们可能会发现一些文件或文件夹突然“消失”了,这通常是因为它们被隐藏了。本文将为您介绍几招恢复ThinkPad电脑上隐藏文件的方法,帮助您轻松找回丢失的文件。 图片来源于网络,如有侵权请告知 一、了解…

【实时数仓架构】方法论

笔者不是专业的实时数仓架构,这是笔者从其他人经验和网上资料整理而来,仅供参考。写此文章意义,加深对实时数仓理解。 一、实时数仓架构技术演进 1.1 四种架构演进 1)离线大数据架构 一种批处理离线数据分析架构,…

when to create a ViewRootImpl

when to create a ViewRootImpl when method setView is called: when method dispatchDetachedFromWindow is called:

预训练模型介绍

一、什么是GPT GPT 是由人工智能研究实验室 OpenAI 在2022年11月30日发布的全新聊天机器人模型, 一款人工智能技术驱动的自然语言处理工具 它能够通过学习和理解人类的语言来进行对话, 还能根据聊天的上下文进行互动,能完成撰写邮件、视频脚本、文案、翻译、代码等任务 二、 为…

TypeScript学习笔记:迈向更安全的JavaScript编程

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Linux专栏05:Linux基本指令之目录处理指令

博客主页:Duck Bro 博客主页系列专栏:Linux专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Linux基本指令之目录处理指令 编号:05 文章目录 Linux基…

STM32之HAL开发——电容按键

电容按键原理 电容器 (简称为电容) 就是可以容纳电荷的器件,两个金属块中间隔一层绝缘体就可以构成一个最简单的电容。如图 32_1 (俯视图),有两个金属片,之间有一个绝缘介质,这样就构成了一个电容。这样一个电容在电路板上非常容…

线程同步与条件变量

再论生产消费者问题 问题 如果缓冲池为空,如何定义消费者的行为? 一种可能的解决方案 这种方案是可行的,但是如果生产者一直不生产,那么消费者会反复查看产品的数量为 0 并休眠,这样会浪费 cpu 的资源,并且生产者生产…

MWCNTs微纳米纤维膜的制备

MWCNTs微纳米纤维膜是一种由多壁碳纳米管(MWCNTs)与聚合物纤维复合而成的纳米纤维膜。这种材料结合了MWCNTs的良好性能和纳米纤维膜的高比表面积、高通量等特点,具有广泛的应用前景。 在制备过程中,首先需要对MWCNTs进行酸化处理和…