Python中print()函数参数打印顺序异常问题求助
问题解决
你的问题出在how_many_stars()函数的实现上:
- 函数内部直接调用
print()输出星号,当你在外层print()的参数列表里调用它时,Python会优先执行函数内部的print语句,所以星号会先被打印出来。 - 函数没有返回值,默认返回
None,这个None会被当作外层print()的一个参数输出。
修改方案
让函数返回对应长度的星号字符串,而不是直接打印:
star = "*" def how_many_stars(who): # 生成对应长度的星号字符串并返回 return star * len(who) # 模拟player_1对象,get_name返回"Steve" player_1 = type('Player', (), {'get_name': lambda self: 'Steve'})() print(" |************** PSEUDO :", player_1.get_name(), how_many_stars(player_1.get_name()),"|")
运行结果
|************** PSEUDO : Steve ***** |
这样星号就会出现在预期的位置,也不会有None输出了。
内容的提问来源于stack exchange,提问作者qNaniWasTaken
相关产品推荐
相关产品推荐

