尽管Python不在函数内部,但它不会打印None

尽管Python不在函数内部,但它不会打印None,python,Python,所以我对Python编程还比较陌生,所以现在我只是想创建一个简单的密码程序。如果用户以前打开过程序,则会跳过“创建密码”位。我创建了一个文件,其中包含文件被打开的次数。如果数字小于1,则会要求输入新密码 这一点很好,我只是有一个问题,当运行下面的代码,没有打印。我理解整个函数的返回位,但我使用的代码不在函数中,所以我不确定为什么会发生这种情况。非常感谢您的帮助 fo = open("openNo.txt", "r") openNo = fo.read() if int(openNo)<1

所以我对Python编程还比较陌生,所以现在我只是想创建一个简单的密码程序。如果用户以前打开过程序,则会跳过“创建密码”位。我创建了一个文件,其中包含文件被打开的次数。如果数字小于1,则会要求输入新密码

这一点很好,我只是有一个问题,当运行下面的代码,没有打印。我理解整个函数的返回位,但我使用的代码不在函数中,所以我不确定为什么会发生这种情况。非常感谢您的帮助

fo = open("openNo.txt", "r")
openNo = fo.read()

if int(openNo)<1:
    pw = input(print("Please enter a password: ")) #creating a new password
    pwCheck = pw
else:
    pwCheck = input(print("Please enter your password: ")) #using an existing password

fo.close()

if pwCheck == "password":
    print("Welcome!")
else:
    print("access denied")

实际上,您正在这样做:您正在将打印结果传递给输入。没有必要那样做

pw = input("Please enter a password: ")

input打印作为提示传递给它的参数;在本例中,None是print的返回值。只需执行例如输入请输入密码:。另请注意:@jornsharpe啊,非常感谢。知道有自动密码模块也很有用。虽然这更像是一个综合运用不同事物的练习,但我会记住这一点@TobyKing我认为您误解了,输入函数被定义为inputprompt=None,/-基本上意味着每当您使用参数调用input时,它都会隐式打印该参数。如果您想让模块实际处理密码,我会使用getpass@ªаааааааааааааааааааааа
print("Please enter a password: ") returns none so you are seeing none when you run the code