- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这是我目前所拥有的:
alphabet = "a" or "b" or "c" or "d" or "e" or "f" or \
"g" or "h" or "i" or "j" or "k" or "l" or \
"m" or "n" or "o" or "p" or "q" or "r" or \
"s" or "t" or "u" or "v" or "w" or "x" or \
"y" or "z"
letter_word_3 = any(alphabet + alphabet + alphabet)
print("Testing: ice")
if "ice" == letter_word_3:
print("Worked!")
else:
print("Didn't work")
print(letter_word_3) # just to see
我希望最终能够扫描文档并让它挑选出 3 个字母的单词,但我无法让这部分工作。我是一般编码的新手,python 是我学习的第一门语言,所以我可能犯了一个很大的愚蠢错误。
最佳答案
你有一些好主意,但这种函数组合实际上是为函数式语言保留的(即像这样的语法在 Haskell 中工作得很好!)
在 Python 中,"a"or "b"or ...
的计算结果只有一个值,它不是您尝试使用的函数。所有值(value)观都具有“真实性”。如果所有字符串不为空(例如 bool("a") == True
,但 bool("") == False
),则所有字符串都是“真实的”。 or
在这里没有改变任何东西,因为第一个值是“truthy”,所以 alphabet
的计算结果为 True
(更具体地说是 “一个”
。
letter_word_3
然后尝试执行 any("a"+ "a"+ "a")
,它总是 True
(因为"a"
为真)
您应该做的是检查每个单词的长度,然后检查每个字母以确保它在 "abcdefghijklmnopqrtuvwxyz"
中。等一下,你注意到我刚才介绍的错误了吗?再次阅读该字符串。我忘记了一个 “s”
,你也可以!幸运的是,Python 的 stdlib 在方便您使用的地方提供了这个字符串。
from string import ascii_lowercase # a-z lowercase.
def is_three_letter_word(word):
if len(word) == 3:
if all(ch in ascii_lowercase for ch in word):
return True
return False
# or more concisely:
# def is_three_letter_word(word):
# return len(word) == 3 and all(ch in ascii_lowercase for ch in word)
关于python - 将字母表定义为任何字母字符串,以便稍后用于检查单词是否具有一定数量的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45663768/
我正在尝试开发右边框/Angular 具有特定 Angular (30°) 的表格。我见过一些类似的解决方案,但它们都无法在一定程度上发挥作用。如果我想从 30° 改变到 20°,我不想花太多力气。
我是一名优秀的程序员,十分优秀!