为了账号安全,请及时绑定邮箱和手机立即绑定

请问有同学老师可以帮我解释一下这行代码吗?纯菜鸟看不懂。两个参数,前面的参数是需要输入的,不是必须要有的吗?后面那个可以省掉的才是默认参数啊。为什么这个代码只有一个参数呢?还有函数里面的那些代码是什么意思啊

def greet(name='world'):

    print "Hello,%s." % name

greet()

greet('Bart')


正在回答

5 回答

自定义函数中,如果这个函数只需要一个参数的时候,就设置一个参数。如果需要两个参数的时候,就设置两个参数。

当设置参数的时候,就有可能会有默认参数,默认参数是为了输入者省事。为了能够明确的让机器知道我们省略了哪个参数,就把默认参数作为所有参数中的最后一个出现。

题目中列的函数greet(),只需要一个参数,并且是默认参数。

没有输入参数值的时候,也就是调用greet(),这时候属于未指定name值,函数将使用默认值,会输出Hello,World

有参数值输入时,也就是调用greet('Bart'),这时候就属于指定了name值,函数将使用指定值,那么就会输出Hello,Bart

您说的函数里的代码是不是指的%s,%name这些?%s是一种字符串的输出格式说明符,指的是这个位置是输出字符串的,输出的字符串就是name,所以%s后面跟了个%name。

0 回复 有任何疑惑可以回复我~

%s和%name是什么意思啊?

0 回复 有任何疑惑可以回复我~

因为这个函数只需要一个参数,这个参数可以有默认值,那它就是默认参数啊

0 回复 有任何疑惑可以回复我~

首先,对于这个函数而言,你可以不输入参数,例如:

greet()

那么函数的输出就是【默认输出】,即:Hello, world

如果你想输入一个参数,例如:

greet('Bart')

那么这个函数的输出就是Hello, 【你输入的参数】。

所以很明显,定义函数的时候只需要定义一个参数,并且这个参数的默认值是‘world’.

  print "Hello,%s." % name

就是打印 Hello, [name]鸭

%s的位置就是name的值


2 回复 有任何疑惑可以回复我~

如果默认参数不是放在最后,是放在中间或者前面,试想一下,别人要怎么才能知道你省略了第几个参数呢。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758625    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

请问有同学老师可以帮我解释一下这行代码吗?纯菜鸟看不懂。两个参数,前面的参数是需要输入的,不是必须要有的吗?后面那个可以省掉的才是默认参数啊。为什么这个代码只有一个参数呢?还有函数里面的那些代码是什么意思啊

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信