python if条件和关键字issu

2024-09-26 22:11:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我只是试着调用这个代码

uname=""
passwd="jhj"
if uname =="":print "uname"
if passwd=="":print "passwd"
if not uname and passwd:
    print "either"

输出是:

^{pr2}$

不应该是“uname”吗?我该怎么解决这个问题?在


Tags: and代码ifnotpasswdprinteitheruname
3条回答

你在这里做的是:

if (not uname) and passwd:

如果要检查它们是否都为假,则需要执行以下操作:

^{pr2}$

请注意:

if not (uname and passwd):

不是同一件事,好像一件事是真的,整个事情都会判假。如果您想用一个not来完成,正确的逻辑是:

if not (uname or passwd):

简单的解决办法是

if not uname and not passwd:

因为它的评估结果是

^{pr2}$

或者

if not (uname or passwd):

但是,如果没有提供uname和{},这将不会像等待的那样工作(它将打印所有三个)。在

您可以将逻辑更改为只执行一个print的构造:

uname = ""
passwd = "jhj"

if not (uname or passwd):
    print "either"
elif not uname:
    print "uname"
elif not passwd:
    print "passwd"

您需要将if not uname and passwd中的not应用于uname和passwd:

if not uname and not passwd

或者:

if not any((uname, passwd))

相关问题 更多 >

    热门问题