10

Pythonを使用して、特定の単語の最初の文字、たとえば「ボール」が大文字または小文字の母音であるかどうかをチェックする関数を作成しようとしています。たとえば、次のようになります。

#here is a variable containing a word:
my_word = "Acrobat"

#letters in vowel as a list
the_vowel = ["a","e","i","o","u"]

「Acrobat」の最初の文字がリスト内の母音の 1 つであることを確認するにはどうすればよいですか? また、大文字か小文字かを考慮する必要がありますか?

4

16 に答える 16

21

試すmy_word[0].lower() in the_vowel

于 2012-11-14T12:57:52.267 に答える
17

ここに既に投稿されている回答よりも優れているかどうかはわかりませんが、次のこともできます。

vowels = ('a','e','i','o','u','A','E','I','O','U')
myWord.startswith(vowels)
于 2012-11-14T13:04:38.223 に答える
10

ここに、それを理解するのに役立つヒントがいくつかあります。

文字列から単一の文字を取得するには、文字列に添字を付けます。

>>> 'abcd'[2]
'c'

最初の文字は文字 0、2 番目の文字は文字 1 などであることに注意してください。

次に注意すべきことは、大文字は小文字と同じではないということです。

>>> 'a' == 'A'
False

幸いなことに、python 文字列にはメソッドがupperありlower、文字列の大文字と小文字を変更します。

>>> 'abc'.upper()
'ABC'
>>> 'a' == 'A'.lower()
True

リストのメンバーシップをテストするには、次のようにしinます。

>>> 3 in [1, 2, 3]
True
>>> 8 in [1, 2, 3]
False

したがって、問題を解決するには、添え字を結び付けて単一の文字を取得し、 upper/lowerを使用して大文字と小文字を調整し、メンバーシップをテストしinます。

于 2012-11-14T13:00:01.700 に答える
4
my_word = "Acrobat"
the_vowel = "aeiou"

if myword[0].lower() in the_vowel:
    print('1st letter is a vowel')
else:
    print('Not vowel')
于 2012-11-14T12:58:47.597 に答える
1

入力された単語を変数として保存する前に最初にチェックする必要があるため、次のようにしました。

original = raw_input('Enter a word:')

if len(original) > 0 and original.isalpha():
    word = original.lower()
    first = word[0]
    if first in ['a','e','i','o','u']:
        print "vowel"
    else:
        print "consonant"
else:
    print 'empty'
于 2013-07-13T16:56:47.493 に答える
1

codecadmy.com の演習の解決策は次のとおりです。

original = raw_input('Enter a word:')
word = original.lower()
first = word[0]
vowel = "aeiou"

if len(original) > 0 and original.isalpha():
   if first in vowel:      
       print 'vowel'
   else:   
       print 'consonant'
else:
   print 'empty'
于 2013-05-24T11:37:12.700 に答える
0

反母音関数

def anti_vowel(text):
    vowel = ["a","e","i","o","u"]
    new_text = ''
    for char in text:
        if char.lower() in vowel:
            continue
        else:
            new_text += char
    print new_text
    return new_text
于 2015-05-21T12:14:21.567 に答える
0

the_vowel をリストよりも辞書として定義する方が (わずかに) 高速ではありませんか?

the_vowel = {"a":1,"e":1,"i":1,"o":1,"u":1}
my_word[0].lower() in the_vowel
于 2013-10-17T10:02:07.413 に答える