gpt4 book ai didi

python - python中字符的比较

转载 作者:太空宇宙 更新时间:2023-11-04 10:24:35 25 4
gpt4 key购买 nike

我是编程新手,我在 codeacademy 上使用 python,我遇到了这段代码,它想通过 'X' 更改短语中出现的 'a' 和 'A'

phrase = "A bird in the hand..."

for char in phrase:

if char == "A" or char == "a":
print "X",

这段代码对我来说工作得很好,但是当我试图将 if 语句更改为:

if char == ("A" or "a"):

只是词组中的A变成了X当我将 if 语句更改为

if char == ("A" and "a"):

只有短语中的a变成了X。

我去了我的终端,尝试了一些字符之间的 or 和比较的组合,并获得了这些结果

>>> "a" or "A"
'a'
>>> "A" or "a"
'A'
>>> "A" and "a"
'a'
>>> "a" and "A"
'A'
>>> 2 or "a"
2
>>> 2 and "a"
'a'
>>> "a" and "b"
'b'
>>> "A" or 2
'A'

我可以从中解释的是“或”返回第一个元素,而“和”返回第二个元素,但我不确定为什么会这样,有人可以解释一下吗?我无法对此进行搜索,因为我不知道要为此搜索什么。

最佳答案

在此上下文中使用,orand 将返回最后计算的值。 要求其中一个元素为真。当您检查 “A”或“a” 时,“A”的计算结果立即为真,因此计算结束,并返回“A”。当您检查 "A"和 "a" 时,"A"的计算结果立即为真,但是 也需要 "a",因此它也会被检查,并返回“a”。

这种行为不是很清晰。它主要在检查 None 或空容器时有用。

对于那些对 Python 和许多其他语言感兴趣的人来说,这个 andor 逻辑是对范式中所谓的“正常顺序”的特殊采用否则遵循“应用顺序”评估。查看 super 棒的 SICP: https://mitpress.mit.edu/sicp/full-text/sicp/book/node85.html

通常,您应该使用 加入直接的 bool 表达式 -- 1 > 2 or "a"in "abc",或者,更好的是,使用设置包含:if char in {"A", "a"}

关于python - python中字符的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30106940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com