gpt4 book ai didi

python - 如何检查字符串是否包含任何字符列表?

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

即使输入包含元音的单词也会输出“NO VOWELS HERE!”。为什么?请协助。

vowels = 'a', 'A', 'e', 'E', 'i', 'I', 'o', 'O', 'u', 'U'
I = input("enter your name")
L = list(I)
print(L)
if vowels in L:
print("your name contains a vowel")
else:
print("NO VOWELS HERE!")

最佳答案

您必须比较每个单独的元音。

vowels = 'a', 'A', 'e', 'E', 'i', 'I', 'o', 'O', 'u', 'U'
name = input("enter your name")
if any(vowel in name for vowel in vowels):
print("your name contains a vowel")
else:
print("NO VOWELS HERE!")

正如您在这段代码中看到的,name 没有转移到列表中。您不需要它,因为字符串是可迭代的。这意味着您可以进行另一项更改:

vowels = 'aAeEiIoOuU'
name = input("enter your name")
if any(vowel in name for vowel in vowels):
print("your name contains a vowel")
else:
print("NO VOWELS HERE!")

原始代码中发生的事情的示例:

>>> needle = 'a', 'b'
>>> needle in list('ab')
False

让我们检查一下值:

>>> needle
('a', 'b')
>>> list('ab')
['a', 'b']

您测试元组 ('a', 'b') 是否是 ['a', 'b'] 的元素。如您所见,事实并非如此。列表的元素是 'a''b'。要成为 True,比较必须如下所示。

>>> needle in [('a', 'b')]
True

您必须明白您是在比较确切的元组,而不是它的一部分。

>>> needle in [('a', 'b', 'c')]
False

关于python - 如何检查字符串是否包含任何字符列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58799573/

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