首页 > 解决方案 > “word”中的值对我的 if 语句没有影响

问题描述

我在学习 python 的第 4 天,所以如果我遗漏了一些非常明显的东西,我提前道歉。

整个程序发布在下面。word = input()无论我在输入提示中输入什么内容,我的树函数都不会被调用。但是,如果我改变:它if word == 'Chris' or 'j':似乎if word == 'Chris':工作。

def tree(pine):
    return 'Hello' + pine


def app():
    word = input()
    if word == 'Chris' or 'j':
        print('Welcome ' + word + ' it is nice today! ', end='')
        print('It is so sunny')
    else:
        print(tree('lplp'))



app()

标签: python

解决方案


问题在于

    if word == 'Chris' or 'j':

如果我们分解此语句,您正在评估两个条件:

  1. word == 'Chris'
  2. 'j'

所以 Python 是一门有趣的语言,因为几乎任何类型的对象都可以作为布尔值进行评估。这意味着当您检查时if 'j',它实际上是作为True某种错误而不是某种错误出现的,因为 Python 在幕后做了很多事情。

要解决此问题,您只需确保您正在检查word == "j".

只是为了让你开始,例如,这里有一些常见的 python 布尔值:

>>> bool("")
False
>>> bool("j")
True
>>> bool(0)
False
>>> bool(69)
True
>>> bool([])
False
>>> bool(["hello", "world"])
True
>>> class Foo:

    def __init__(self):
        self.x = "y"


>>> bool(Foo())
True
>>> bool(None)
False

推荐阅读