python - “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()
解决方案
问题在于
if word == 'Chris' or 'j':
如果我们分解此语句,您正在评估两个条件:
word == 'Chris'
'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
推荐阅读
- java - 如何将“24cd2ec2-6674-4aa2-a761-1b0a953124ba”(字符串对象)转换为 BigDecimal
- docker - 如何将文件从一个 docker 容器复制到另一台主机上的另一个容器?
- c# - 在 ASP.NET Core MVC App 中添加动态表单字段
- facebook - 使用 MoPub 接收非英语 Facebook 原生广告
- python - SyntaxError:python 中的语法无效但找不到原因
- c++ - 为什么我调整大小的 2D 矢量会重置我的数据
- c# - Telerik RadFileExplorer 修改 SaveAs 方法
- angular - RxJS:forkJoin 没有返回
- visual-studio-code - 在 VS Code 扩展中获取当前的 Highlight
- javascript - 清除所选选项并在提交表单后显示占位符