Python函数返回值打印时出现多余None的解决方法
问题原因
出现多余None的核心原因是Python内置的print()函数没有业务返回值,执行后默认返回None。
你写的return print("Please enter the right letter next time.")逻辑会先执行print语句输出提示文本,再把print的返回值None作为函数结果返回。后续主程序里的print(base1)会把拿到的None打印出来,就多出了一行None内容。
修复方案
两种方案二选一即可:
- 方案1:去掉else分支里的print,直接返回提示字符串,让主程序的print统一完成输出,不会出现重复打印和None。
修正后完整代码:
def match_base(base): if base == "A": return "T" elif base == "T": return "A" elif base == "C": return "G" elif base == "G": return "C" else: return "Please enter the right letter next time." #main program base1 = match_base("X") print(base1)
运行后只会输出单行提示文本,无多余内容。
- 方案2:如果要把错误提示的打印逻辑放在函数内部,就不要return print的结果,同时主程序判断返回值,非合法匹配结果时不执行打印。
修正后完整代码:
def match_base(base): if base == "A": return "T" elif base == "T": return "A" elif base == "C": return "G" elif base == "G": return "C" else: print("Please enter the right letter next time.") return #main program base1 = match_base("X") if base1: print(base1)
这个写法里错误提示已经在函数内打印完成,主程序拿到空返回值时不会再执行print,同样不会出现多余的None。
内容的提问来源于stack exchange,提问作者Ryan Sarkar
相关产品推荐
相关产品推荐

