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

Len()不能这么用么

这是为什么啊??


def greet(x):
    if len(x) == 0:
        print ('hello,world')
    else:
        print ('hello,%s' % x)

greet(0)
greet('Bart')

greet() 

greet('Bart')


当为空字节的时候直接报错。。如果用这样的方式,可以改么?




正在回答

1 回答

def greet(*x):
    if len(x) == 0:
        print ('hello,world')
    else:
        print ('hello,%s' % x)
greet(0)
greet('Bart')

因为x不是可变参数,参数个数固定,空的话参数个数是0,且没定义默认参数,所以错误;

加个*,定义成可变参数即可

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

总有狗头要害朕 提问者

谢谢,懂了
2016-09-04 回复 有任何疑惑可以回复我~
#2

总有狗头要害朕 提问者 回复 总有狗头要害朕 提问者

可变参数这个后面一节课才有,当时写的时候也没想到这一点。。
2016-09-04 回复 有任何疑惑可以回复我~
#3

慕函数8845467 回复 总有狗头要害朕 提问者

我是看完那个刚好提醒我这个问题,主要是默认参数就是相当于个初值,你没给默认的,就不能为空,我觉得是这样
2016-09-04 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

Len()不能这么用么

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