Python函数调用输出None问题咨询:lucky_number为何返回None?
为什么调用函数后会出现None输出?
嘿,我来帮你拆解这个问题~
首先看你的函数代码:
def lucky_number(name): number = int(len(name) * 9) pr = "Hello " + name + ". Your lucky number is " + str(number) print(str(pr))
你调用的时候用了print(lucky_number("Kay")),这里其实做了两件事:
- 执行
lucky_number("Kay"):函数内部的print()语句会输出Hello Kay. Your lucky number is 27。 - 执行外层的
print():它会打印lucky_number("Kay")的返回值,但你的函数没有写return语句——在Python里,任何没有显式返回值的函数,默认都会返回None,这就是那行None的来源。
同样的逻辑,print(lucky_number("Cameron"))也会先输出函数内部的问候语,再打印函数返回的None。
两种解决办法:
- 方法一:让函数返回字符串,再用print输出
修改函数,把内部的print()改成return:def lucky_number(name): number = int(len(name) * 9) pr = "Hello " + name + ". Your lucky number is " + str(number) return pr print(lucky_number("Kay")) # 输出:Hello Kay. Your lucky number is 27 print(lucky_number("Cameron")) # 输出:Hello Cameron. Your lucky number is 63 - 方法二:直接调用函数,不用外层print
既然函数内部已经做了print,直接调用就行:lucky_number("Kay") # 输出:Hello Kay. Your lucky number is 27 lucky_number("Cameron") # 输出:Hello Cameron. Your lucky number is 63
内容的提问来源于stack exchange,提问作者Siddesh As
相关产品推荐
相关产品推荐

