Python密钥生成程序选择加入Discord后输出None的问题排查
输出None的核心原因
直接触发None输出的逻辑
Python 规则:所有没有显式写return返回值的函数,默认返回None对象。
你在main()函数末尾写了print(Mainmenu())语句,而Mainmenu()函数从头到尾没有设置任何返回值,不管内部逻辑是什么,外层的print一定会把这个默认返回的None打印出来——这就是控制台最后看到None的直接来源。
哪怕你把Discord函数替换成打印测试文本的版本,这个问题依然存在:你在Mainmenu里写的print(Discord())也是同样的嵌套print逻辑,Discord函数没有返回值的话,外层print打出来的永远是None,根本显示不了函数内部的打印内容。
判断逻辑失效的原因
你在Mainmenu里调用input()获取用户输入时,完全没有把输入结果赋值给status变量:
def Mainmenu(): input("Do you want to join our Discord Server y/n") # 输入结果直接被丢弃 if status == "y": # status永远是全局初始的空字符串,判断永远为假 print(Discord())
全局定义的status初始值是空字符串,用户输入的内容没有被存到这个变量里,所以哪怕用户敲了y,判断条件也永远不会触发,完全走不到调用Discord功能的分支。
其他代码问题
- 原
Discord函数里的webbrowser.open(Discord Invite link)存在语法错误,邀请链接是字符串格式,需要用引号包裹后才能作为参数传入webbrowser.open()方法,当前写法会直接报语法错误。 - 写文件时的文件名多打了一个点,
demofile2.txt.会生成带多余后缀的文件,和预期的demofile2.txt不一致。
内容的提问来源于stack exchange,提问作者IDONTCODE
相关产品推荐
相关产品推荐

