ln函数怎么看奇偶性_Python中函数的参数应该怎么理解?看完这篇文章情不自禁的想收藏...

前面给大家讲过,函数是一种编程思想,是提高代码重复利用的设计思路,是代码设计更深层次的产物。今天要给大家讲的就是函数的核心:函数的参数

基本概念

1、函数的参数:是指函数完成某项功能所需要的信息

举个例子,大家都知道print()函数,它可以完成打印功能,那么需要让它完成打印,就需要给它一个信息:打印的内容,那么这里的打印的内容就是print函数的参数。

40121c0ebda5bdc8bd9e3fe35351481d.png

2、函数的参数有哪几种类别:

  • 默认参数:函数在定义过程中可以为指定参数默认的值,必须放在默认参数的左侧
  • 可变参数:参数的个数不固定
  • 关键字参数:参数的名字需要固定的参数
  • 组合参数:多种类型的参数组合在一起

下面针对这几种参数进行实例说明

实例说明:默认参数

# 例:判断一个整数是奇数还是偶数def isDoule(num,constant=2):    if num%constant==0:        return True    else:        return False

上例中定义了一个isDoule函数来判断一个整数是奇数还是偶数,那么这个函数有两个参数,一个是num,一个是constant。根据这个函数的功能不难得出num这个参数是必须要的,我们叫必要参数;constant这个参数,我们给了它一个默认值,它就是默认参数。

# 一般情况下的调用print(isDoule(5,2))# 默认参数可以缺省print(isDoule(5))

因为这个函数isDoule有两个参数,一般说来,调用时我们就给它传递两个参数,比如num=5,constant=2;运行之后,返回的结果肯定为False;但是由于constant是个默认参数,所有,我们的传参数时,可以缺省掉默认参数,运行之后,结果仍未False。

6234638f3da9fd096ba25ce341a96411.png

但是,如果我们在调用函数isDoule时,给它传入参数,num=4,constant=3,如下:

def isDoule(num,constant=2):    print(constant)    if num%constant==0:        return True    else:        return Falseprint(isDoule(4,3))

运行之后,constant的值变为了3,并且函数返回的结果为False。这说明,我们给默认参数传递的参数会覆盖掉函数定义时的默认值,函数将以新传递的参数进行运算。

c63672c0bef66074802a22cab36a1aad.png

实例说明:可变参数

# 任意数值得求和函数def sumNumber(*numbers):    result=0    for n in numbers:        result=result+n    return result

上例中定义了求和函数sumNumber,它的参数是:*number,表示number是一个可变参数。这里需要大家注意的是,可变参数的数据类型只能是list或者tuple。

print(sumNumber(1,2,3))print(sumNumber(1,2,3,4,5,6))

我们可以分别给它传入参数(1,2,3)和(1,2,3,4,5,6),参数的个数是可以变化的。当我们的参数是不确定的list或者tuple的时候,我们就可以用可变参数来定义。

b7833af4799fa5aff855369fee8183bf.png

实例说明:关键字参数

def liveUser(**kw):    for key,value in kw.items():        print("{}{}".format(key,value))

上例中定义了liveUser函数,它的参数是:**kw,表示kw是一个关键字参数。关键字参数的数据类型只能是字典类型{key:value}。函数liveUser是将关键字参数的键和值打印出来。

liveUser(k1="来了")

运行之后,打印出来:K1来了。这里大家应该也可以看出来,kw这个参数是关键字参数,同时也是可变参数,我们叫做可变关键字参数。还有一种叫做命名关键字参数:

# 命名关键字参数def worker(name,sex,*,age):    print(name,sex,age)woker("张三","男",age=30)

我们定义的worker函数有三个参数,分别是:name、sex以及age,大家注意age前面有个*,表示age为命名关键字参数,它表示这个参数传递时是需要以字典的形式来进行的,并且字典的键名也指定为age,调用的时候应该这样来写:

woker("张三","男",age=30)

实例说明:组合参数

# 组合参数def schoolCourse(name,c="北京大学",*courseName,**kw):    allCourse="".join(courseName)    gradename=list(kw.values())    print("{}的{}{}的课程有:{}".format(c,name,gradename[0],allCourse))

组合参数就是将必要参数,默认参数,可变参数,关键字参数按照顺序组合在一起,它一般在功能多的函数中会用到。上例中给函数schoolCourse定义了组合参数:必要参数name、默认参数c="北京大学"、可变参数*courseName、关键字参数**kw。

schoolCourse("张三","清华大学",*("语文","数学","英语"),grade="大一")

根据上面介绍的几类参数的要求,来调用schoolCourse函数,给它传入对应的参数,运行之后,结果如下:清华大学的张三大一的课程有:语文 数学 英语

以上就是函数的几种参数,弄懂这几类参数的用法,基本上能完成所有函数的定义。

针对上面的实例,如有任何疑问,欢迎在评论区留言或者私信小编,小编会认认真真为大家解答哦!

喜欢小编的讲解思路的朋友,欢迎点下“关注”,非常感谢大家的支持!

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

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

相关文章

centos7.4编译mysql5.6,centos7编译安装mysql5.6

1.useradd -s /sbin/nologin -M mysql #新增mysql运行用户2.yum -y install ncurses-devel libaio-devel cmake gcc-c #安装依赖包3.编译,注:重新cmake需要删除CMakeCache.txt文件cmake -DCMAKE_INSTALL_PREFIX/zhonghong/mysql \-DMYSQL_DATADIR/zhong…

面向对象设计思想-C语言

面向对象的三个特征:封装,继承,多态。但是C语言不是面向对象编程语言,所以需要借助一些技巧来实现这三个特征:(1)C语言没有成员函数,struct只能封装数据,不能封装方法&am…

java iterable_太糟糕了,Java 8没有Iterable.stream()

java iterable这是最近比较有趣的Stack Overflow问题之一: 为什么Iterable不提供stream()和parallelStream()方法? 最初,直接将Iterable转换为Stream似乎很直观,因为在90&#xff…

three.js加载3d模型_基于WebGL的3D技术在网页中的运用 ThingJS 前端开发

Three.js、ThingJS这些引擎库可以加载3D制作软件的模型&#xff0c;大幅度提高了制作效率&#xff0c;改变WebGL开发困难的局面&#xff0c;让Web开发者享受便捷的3D开发服务。三者的难度对比如下&#xff1a;ThingJS&#xff08;框架&#xff09;< Three.js&#xff08;引擎…

C语言 | typedef

C语言typedef用新的类型名代替原有的类型名//指定用Integer为类型名&#xff0c;作用与int相同。 typedef int Integer&#xff1b;//指定用Real为类型名&#xff0c;作用与float相同。 typedef float Real&#xff1b;C语言允许程序设计者用一个简单的名字代替复杂的类型形式命…

php珠心算源码,深度解析珠心算的“开智”功能

编者按&#xff1a;本文来自李绵军校长在廊坊智慧特训营演讲。李绵军校长通过十几年来对珠心算的钻研练习&#xff0c;详细解读了珠心算的开智功能&#xff0c;以及“一门深入”的作用。珠心算的开智价值是在哪里&#xff1f;大家都说开发智力&#xff0c;我在这讲开发智力不是…

jsr 269 api_研究Java 9 Money and Currency API(JSR 354)

jsr 269 apiJSR 354定义了一个用于处理货币和货币的新Java API&#xff0c;计划将其包含在Java 9中。在本文中&#xff0c;我们将研究参考实现的当前状态&#xff1a; JavaMoney 。 就像我关于Java 8日期/时间API的帖子一样&#xff0c;该帖子将主要由显示新API的代码驱动。 …

python程序调试题_关于python程序调试问题,一个文件计算的问题

那位大神帮小弟看下这段代码有什么需要改进的没有。程序要求为&#xff1a;程序主要内容是&#xff1a;大地坐标经纬度的格式转换问题&#xff0c;例如12030′30″转换为120.50833333&#xff0c;并且可以互换&#xff0c;这样的程序。...那位大神帮小弟看下这段代码有什么需要…

C语言 函数

定义函数在 C 语言中&#xff0c;函数由一个函数头和一个函数主体组成。下面列出一个函数的所有组成部分&#xff1a;返回类型&#xff1a;一个函数可以返回一个值。return_type 是函数返回的值的数据类型。有些函数执行所需的操作而不返回值&#xff0c;在这种情况下&#xff…

cassandra 入门_Apache Cassandra和Java入门(第二部分)

cassandra 入门要求 要遵循本教程&#xff0c;您应该已经有一个正在运行的Cassandra实例&#xff08; 一个小型集群会很好 &#xff0c;但不是必需的&#xff09;&#xff0c;已安装Datastax Java驱动程序&#xff08; 请参阅第I部分 &#xff09;&#xff0c;并且已经在这里进…

蓝桥杯 java 组素数,2018 蓝桥杯省赛 B 组模拟赛(五) B 结果填空:素数个数

对0,1,2,3,4,5,6,7进行全排列&#xff0c;需要注意的是0不能开头&#xff0c;所以我直接让初始值设为1,0,2,3,4,5,6,7&#xff0c;这样就避免了0开头的情况。对于每一次去判断是不是素数的话会有点浪费时间&#xff0c;所以可以用素数打表。实现代码&#xff1a;#include using…

自适应 幻灯片代码 app_字节跳动 To B 再添一员,将推出飞书文档独立App | 36氪独家...

不只是功能点的延伸&#xff0c;以 C 端打 B 端&#xff0c;是字节跳动推出“飞书文档”的另一体现。文&#xff5c;苏建勋头图来源| IC photo据36氪获悉&#xff0c;字节跳动旗下移动办公软件“飞书”将于近期推出独立 App “飞书文档”。这是继2月底&#xff0c;字节跳动推出…

听说高手都用记事本写C语言代码?

坊间传闻高手都喜欢用记事本写代码&#xff0c;那么问题来了&#xff0c;我们以C语言为例&#xff0c;如何用记事本编译运行呢&#xff1f;其实最简单的方式就是安装GCC编译器&#xff0c;在记事本编写C语言程序&#xff0c;然后再在命令行用GCC编译运行&#xff0c;下面我简单…

jface_使用JFace Viewer延迟获取模型元素

jfaceEclipse JFace Viewers显示的模型元素有时需要花费大量时间来加载。 因此&#xff0c; 工作台提供了IDeferredWorkbenchAdapter类型以在后台获取此类模型元素。 不幸的是&#xff0c;似乎仅通过DeferredTreeContentManager派生的AbstractTreeViewer支持此机制。 因此&…

php第一课,[php第一课]php简介

学习php前提&#xff1a;应有html与css知识1、php简介[1]php是一种开源通用服务器端脚本语言。[2]php&#xff1a;hypertext preprocessor&#xff0c;译名为超文本预处理器[3]在服务器上执行[4]php文件&#xff1a;{1}php文件包含文本、html、js、php代码{2}服务器上运行&…

python省略_在python中如何连接用省略号(…)分隔的连续行

您只需&#xff1a;delim ...text This is single line.This is second long line... continue from previous line.This third single line.# here were building a list containing each line# well clean up the leading and trailing whitespace# by mapping Pythons str…

C语言边角料:结构体中指针类型的成员变量,它的类型重要吗?

一、前言昨天在编译代码的时候&#xff0c;之前一直OK的一个地方&#xff0c;却突然出现了好几个 Warning!本着强迫症要消灭一切警告的做法&#xff0c;最终定位到&#xff1a;是结构体内部&#xff0c; 指向结构体类型的指针成员变量导致的问题。这个问题&#xff0c;也许永远…

oracle 11g b表空间什么情况下自动增加,Oracle 11g表空间——创建和扩展(永久)表空间...

Oracle 11g表空间——创建和扩展(永久)表空间本文内容创建(永久)表空间查看表空间扩展表空间创建(永久)表空间Oracle 按照区和段空间进行管理表空间。区管理方式 - 针对区的分配方式的不同&#xff0c;有两种方式&#xff1a;字典管理方式(dictionary-managed tablespace&#…

python rsa 公钥解密_python利用rsa库做公钥解密的方法教程

前言对于RSA的解密&#xff0c;即密文的数字的 D 次方求mod N 即可&#xff0c;即密文和自己做 D 次乘法&#xff0c;再对结果除以 N 求余数即可得到明文。D 和 N 的组合就是私钥(private key)。算法的加密和解密还是很简单的&#xff0c;可是公钥和私钥的生成算法却不是随意的…

oracle 11g release2版本jdbc,Oracle发布JDeveloper11gRelease2更新版

Oracle在周二的时候发布了JDeveloper IDE升级版JDeveloper 11g Release 2&#xff0c;该版本支持JSF 2.0技术和模块化的服务端Web UI开发&#xff1b;另外该版本在启动时间上和运行性能上也有很大改善&#xff0c;因为整个IDE重新架构了&#xff0c;基于OSGi后端结构&#xff0…