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

请问这种方法为什么不对?

请定义一个 greet() 函数,它包含一个默认参数,如果没有传入,打印 'Hello, world.',如果传入,打印 'Hello, xxx.'

def greet(x):

    print 'Hello,',x or 'world'


greet()

greet('Bart')

这里greet()报错  但是greet('Bart')又正常输出

正在回答

3 回答

def greet(*x):

    print 'Hello,',x or 'world'

greet('Bart')

greet()


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

灿若星辰01 提问者

这个我运行后能出结果,但是为什么会输出Hello,('Bart')呀 有个括号
2016-02-21 回复 有任何疑惑可以回复我~

可变参数的名字前面有个 * 号

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

greet之所以会报错,是因为greet(x)函数在定义的时候要求传入一个参数,而你调用的时候没有传递,所以会报错。

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

灿若星辰01 提问者

题目不是说如果没有传递参数,打印 'Hello, world.'。不过我没有按照题目说的设置一个默认参数
2016-02-21 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

请问这种方法为什么不对?

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