Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Python 第42课】 函数的默认参数

【Python 第42课】 函数的默认参数

作者头像
Crossin先生
发布于 2018-04-16 05:25:40
发布于 2018-04-16 05:25:40
9170
举报

今天分享一点小技巧。之前我们用过函数,比如:

def hello(name):

print 'hello ' + name

然后我们去调用这个函数:

hello('world')

程序就会输出

hello world

如果很多时候,我们都是用world来调用这个函数,少数情况才会去改参数。那么,我们就可以给这个函数一个默认参数:

def hello(name = 'world'):

print 'hello ' + name

当你没有提供参数值时,这个参数就会使用默认值;如果你提供了,就用你给的。

这样,在默认情况下,你只要调用

hello()

就可以输出

hello world

同样你也可以指定参数:

hello('python')

输出

hello python

注意,当函数有多个参数时,如果你想给部分参数提供默认参数,那么这些参数必须在参数的末尾。比如:

def func(a, b=5)

是正确的

def func(a=5, b)

就会出错

面向零基础初学者的编程课

每天5分钟,轻松学编程

回复『 p 』查看课程目录

回复『 t 』查看习题列表

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2013-07-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Crossin的编程教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【Python 第21课】 函数的参数
今天发现了一个iPad上的游戏,叫Cargo-Bot。这个游戏需要你用指令控制一个机械臂去搬箱子。游戏里蕴含了很多编程的思想,包括循环、函数调用、条件判断、寄存器、递归等等,挺有意思的。更厉害的是,这个游戏是用一个叫Codea的app直接在iPad上编写出来的。有iPad的同学不妨玩玩看,挑战一下你的“程商”。 言归正传,在19课里,我们讲了怎样定义一个自己的函数,但我们没有给他提供输入参数的功能。不能指定参数的函数就好比你去餐厅吃饭,服务员告诉你,不能点菜,有啥吃啥。这显然不能满足很多情况。 所以,如果
Crossin先生
2018/04/16
6050
【Python 第26课】 操作list
上周给list开了个头,知道了什么是list。假设我们现在有一个list: l = [365, 'everyday', 0.618, True] 除了用for...in遍历l中的元素,我们还能做点啥? 1. 访问list中的元素 list中的每个元素都对应一个递增的序号。与现实中习惯的序号不同在于,计算机中的计数通常都是从0开始,python也不例外。如果你记不清这个而导致了错误,请去听一下孙燕姿的《爱从零开始》。 要访问l中的第1个元素365,只要用l[0]就可以了。依次类推, print l[1] 就
Crossin先生
2018/04/16
6450
【Python 第26课】 操作list
【Python 第23课】 if, elif, else
今天补充之前讲过的一个语句:if。为什么我跳要着讲,因为我的想法是先讲下最最基本的概念,让你能用起来,之后你熟悉了,再说些细节。 关于if,可以发送数字『7』回顾之前的课程。它除了我们之前讲的用法外,
Crossin先生
2018/04/16
9060
【Python 第23课】 if, elif, else
【Python 第57课】 正则表达式(3)
先来公布上一课习题的答案: \bs\S*?e\b 有的同学给出的答案是"\bs.*?e\b"。测试一下就会发现,有奇怪的'sea sue'和'sweet see'混进来了。既然是单词,我们就不要空格,
Crossin先生
2018/04/16
5550
【Python 第29课】 连接list
今天要说的方法是join。它和昨天说的split正好相反:split是把一个字符串分割成很多字符串组成的list,而join则是把一个list中的所有字符串连接成一个字符串。 join的格式有些奇怪,它不是list的方法,而是字符串的方法。首先你需要有一个字符串作为list中所有元素的连接符,然后再调用这个连接符的join方法,join的参数是被连接的list: s = ';' li = ['apple', 'pear', 'orange'] fruit = s.join(li) print fruit 得
Crossin先生
2018/04/16
5790
【Python 第25课】 初探list
昨天课程里的例子有点没说清楚,有同学表示写在程序里发生了错误。因为我当时写这个代码片段时,心里假想着这是在一个函数的内部,所以用了return语句。如果你没有把它放在函数里,那return的话就会出错,你可以换成print。 今天要说一个新概念--list,中文可以翻译成列表,是用来处理一组有序项目的数据结构。想象一下你的购物清单、待办工作、手机通讯录等等,它们都可以看作是一个列表。说它是新概念也不算确切,因为我们之前已经用过它,就在这个语句里: for i in range(1, 10): #此处
Crossin先生
2018/04/16
5320
【Python 第32课】 写文件
来而不往,非礼也。有读,就要有写。 和把大象关进冰箱一样,写文件也需要三步: 打开文件; 把内容写入文件; 关闭文件。 打开文件我们昨天已经讲过。但python默认是以只读模式打开文件。如果想要写入内容,在打开文件的时候需要指定打开模式为写入: f = file('output.txt', 'w') 'w'就是writing,以这种模式打开文件,原来文件中的内容会被你新写入的内容覆盖掉,如果文件不存在,会自动创建文件。 不加参数时,file为你默认为'r',reading,只读模式,文件必须存在,否则引发异
Crossin先生
2018/04/16
5980
【Python 第19课】 函数
数学上的函数,是指给定一个输入,就会有唯一输出的一种对应关系。编程语言里的函数跟这个意思差不多,但也有不同。函数就是一块语句,这块语句有个名字,你可以在需要时反复地使用这块语句。它有可能需要输入,有可能会返回输出。 举一个现实中的场景:我们去餐厅吃饭,跟服务员点了菜,过了一会儿,服务员把做好的菜端上来。餐厅的厨房就可以看作是一个函数,我们点的菜单,就是给这个函数的参数;厨师在厨房里做菜的过程就是这个函数的执行过程;做好的菜是返回结果,返回到我们的餐桌上。 我们之前已经用到过python里内建的函数,比如in
Crossin先生
2018/04/16
5470
【Python 第19课】 函数
【Pygame 第1课】 hello pygame
我们已经把python的基本内容讲得差不多了,所以从今天起,尝试一下新的方面:pygame -- 用python来写游戏。 pygame是一个python的游戏库,借助它,我们可以用python写一些小游戏。虽然你想用它写出一个魔兽世界那样的游戏是不大可能的,但它的确适合python学习者入手游戏开发。 安装pygame python标准库里是没有包含pygame的,所以我们需要去下载安装它。去www.pygame.org上的downloads找到对应你python版本的安装包下载并安装。Mac用户要注意一
Crossin先生
2018/04/16
1.4K0
【Pygame 第1课】 hello pygame
【Python 第52课】 元组
上一次pygame的课中有这样一行代码: x, y = pygame.mouse.get_pos() 这个函数返回的其实是一个“元组”,今天我们来讲讲这个东西。 元组(tuple)也是一种序列,和我们用了很多次的list类似,只是元组中的元素在创建之后就不能被修改。 如: postion = (1, 2) geeks = ('Sheldon', 'Leonard', 'Rajesh', 'Howard') 都是元组的实例。它有和list同样的索引、切片、遍历等操作(参见25~27课): print post
Crossin先生
2018/04/16
6460
【Pygame 第12课】 屡败屡战
打飞机游戏,我们已经做得差不多了。今天要再加上两个功能,让它看上去更完整:显示分数、重新开始。这样,玩家才能一次接一次地玩下去。 要显示分数,首先得有一个变量记录分数: score = 0 当打中敌机的时候,把分数增加。为了达到这个目的,修改一下之前的checkHit函数,让它和checkCrash一样,返回一个bool值,表示是否发生了碰撞: def checkHit(enemy, bullet): if (bullet.x > enemy.x and bullet.x < enemy.x + e
Crossin先生
2018/04/16
8250
【Pygame 第12课】 屡败屡战
【Python 第22课】 函数应用示例
前两课稍稍介绍了一下函数,但光说概念还是有些抽象了,今天就来把之前那个小游戏用函数改写一下。 我希望有这样一个函数,它比较两个数的大小。 如果第一个数小了,就输出“too small” 如果第一个数小了,就输出“too big” 如果相等,就输出“bingo” 函数还有个返回值,当两数相等的时候返回True,不等就返回False。 于是我们来定义这个函数: def isEqual(num1, num2): if num1<num2: print 'too small'
Crossin先生
2018/04/16
5740
【Python 第22课】 函数应用示例
【Python 第51课】 and-or技巧
今天介绍一个python中的小技巧:and-or 看下面这段代码: a = "heaven" b = "hell" c = True and a or b print c d = False and a or b print d 输出: heaven hell 结果很奇怪是不是? 表达式从左往右运算,1和"heaven"做and的结果是"heaven",再与"hell"做or的结果是"heaven";0和"heaven"做and的结果是0,再与"hell"做or的结果是"hell"。 抛开绕人的and和o
Crossin先生
2018/04/16
7820
【Pygame 第6课】 面向对象的游戏设计
上节课中,我们的飞机已经可以发射子弹了,尽管只有一颗。为什么我只加了一颗?试着多加几颗你就会发现,你得用好几个变量去分别记录它们的xy坐标,在主循环中判断每一颗子弹的状态。你可以用list把程序写得稍稍不那么复杂,但这还没完。别忘了你打飞机的对手--敌机还没有加入到游戏。到时候你又需要更多的变量去记录它们的坐标,去判断它们的状态,去处理敌机、子弹、玩家飞机之间的关系。想想都觉得头大。 于是乎,我之前煞费苦心讲解的面向对象就该派上用场了。我要把子弹相关的东西都封装在一起。 先看看目前子弹相关的有哪些东西:x
Crossin先生
2018/04/16
7280
【Pygame 第6课】 面向对象的游戏设计
python学习笔记3:函数和参数
函数 函数的参数和返回值 形参(形式参数): 在函数定义的时候用到的参数没有具体值,只是一个占位的符号,成为形参,下例中的peison 实参(实际参数): 在调用函数的时候输入的值:下例中的明月 def hello(person): print("{0}, 你肿么咧".format(person)) print("Sir, 你不理额额就走咧") p = "明月" hello(p) 返回值: 返回函数的执行结果:return 如果没有return,默认返回一个None 函数一旦执行retu
py3study
2020/01/08
3870
【Python 第44课】 查天气(2)
今天有些事情耽搁了,课程来得晚了些。 先来看python中的urllib2,这是python中一个用来获取网络资源的模块。我们平常上网,在浏览器地址栏中输入一个网址,浏览器根据这个网址拿到一些内容,然后展现在页面上,这大约就是浏览网页的过程。类似的,urllib2会跟据你提供的网址,请求对应的内容。 打开一个链接和打开一个文件有点像: import urllib2 web = urllib2.urlopen('http://www.baidu.com') content = web.read() print
Crossin先生
2018/04/16
6590
【Python 第44课】 查天气(2)
【Python 第17课】 类型转换
昨天又被微信后台给坑了,导致有些同学收了2遍消息。希望今天能顺利发成功。。。 #==== 类型转换 ====# python的几种最基本的数据类型,我们已经见过: 字符串 整数 小数 (浮点数) bool类型 python在定义一个变量时不需要给它限定类型。变量会根据赋给它的值,自动决定它的类型。你也可以在程序中,改变它的值,于是也就改变了它的类型。例如 a = 1 print a a = 'hello' print a a = True print a 变量a先后成为了整数、字符串、bool类型。 虽
Crossin先生
2018/04/16
6500
【Python 第48课】 面向对象(2)
昨天介绍了面向对象的概念,今天我们来创建一个类。 class MyClass: pass mc = MyClass() print mc 关键字class加上类名用来创建一个类。之后缩进的代码块是这个类的内部。在这里,我们用pass语句,表示一个空的代码块。 类名加圆括号()的形式可以创建一个类的实例,也就是被称作对象的东西。我们把这个对象赋值给变量mc。于是,mc现在就是一个MyClass类的对象。 看一下输出结果: <__main__.MyClass instance at 0x7fd1c8d0
Crossin先生
2018/04/16
5760
【Python 第36课】 异常处理
在程序运行时,如果我们的代码引发了错误,python就会中断程序,并且输出错误提示。 比如我们写了一句: print int('0.5') 运行后程序得到错误提示: Traceback (most recent call last): File "C:/Python27/test.py", line 1, in <module> print int('0.5') ValueError: invalid literal for int() with base 10: '0.5' 意思是,在tes
Crossin先生
2018/04/16
5310
【Python 第50课】 面向对象(4)
上一课举了一个面向对象和面向过程相比较的例子之后,有些同学表示,仍然没太看出面向对象的优势。没关系,那是因为我们现在接触的程序还不够复杂,等以后你写的程序越来越大,就能体会到这其中的差别了。 今天我们就来举一个稍稍再复杂一点的例子。 仍然是从A地到B地,这次除了有汽车,我们还有了一辆自行车! 自行车和汽车有着相同的属性:速度(speed)。还有一个相同的方法(drive),来输出行驶/骑行一段距离所花的时间。但这次我们要给汽车增加一个属性:每公里油耗(fuel)。而在汽车行驶一段距离的方法中,除了要输出所花
Crossin先生
2018/04/16
5370
【Python 第50课】 面向对象(4)
相关推荐
【Python 第21课】 函数的参数
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档