如何获得所有以a开头的字母

时间:2019-01-31 17:41:58

标签: python

我想打印出字符串中以a或A开头的所有单词。

但是,这只是打印所有元素。我该怎么解决?

我做了以下事情:

string1= input("Enter a string: ")

words= string1.split()

for word in words:
    if(word[0]=='a' or 'A'):
        print(word)

这将打印所有元素,而不是仅打印以a或A开头的字母。

6 个答案:

答案 0 :(得分:1)

string1= input("Enter a string: ")

words= string1.split()

for word in words:
    if(word[0]=='a' or word[0] == 'A'):
        print(word)

您完成了word[0] == 'a' or 'A',该操作始终评估为true。
您甚至可以像这样使用列表理解:

a_words = [word for word in words if word[0] =='a' or word[0] == 'A']

答案 1 :(得分:1)

您可以这样做:

string1= input("Enter a string: ")

words= string1.split()

for word in words:
    if(word[0] in ['a', 'A']):
        print(word)

或使用更短的if语句:

    if(word[0] in 'aA'):

答案 2 :(得分:0)

您的测试书写不正确。现在看起来像这样:

if(word[0]=='a' or 'A'):
    print(word)

但是由于'A'不为null,因此循环基本上是:

if(word[0]=='a' or True):
    print(word)

它将始终输入,因为anything or True为True。

您真正想要的是对aA进行测试,如下所示:

if(word[0]=='a' or word[0]=='A'):
    print(word)

答案 3 :(得分:0)

在这里,我修复了

string1= input("Enter a string: ")

words= string1.split()

for word in words:
    if(word[0]=='a' or word[0]=='A'):
        print(word)

当你这样写的时候

if(word[0]=='a' or 'A'):

python分别评估word[0]=='a''A',其中'A'隐式转换为true。因此,您的情况永远都是正确的。

答案 4 :(得分:0)

尝试一下:

>>> string= input("Enter a string: ")
Enter a string: a world of an Apple
>>> string
'a world of an Apple'
>>> words_starts_with_a_or_A = [word for word in string.split() if word.lower().startswith('a')]
>>> words_starts_with_a_or_A
['a', 'an', 'Apple']

答案 5 :(得分:0)

使用操作in

s = input("Enter a string: ")

words = s.split()

for word in words:
    if word[0] in 'Aa':
        print(word)

使用函数any()与发电机理解,并且该方法startswith()

s = input("Enter a string: ")

words = s.split()

for word in words:
    if any(word.startswith(i) for i in 'Aa'):
        print(word)

或与一个比较操作符:

s = input("Enter a string: ")

words = s.split()

for word in words:
    if any(word[0] == i for i in 'Aa'):
        print(word)