2012-11-14 58 views
4

在我提出这个问题之前,我想让你知道我不是一个有经验的程序员,而是有人在codecademy.com上学习python的基础知识。检查单词的第一个字母是否为元音

我想用python写一个函数来检查给定单词的第一个字母,例如“ball”是否是大写或小写的元音。例如:

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

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

如何检查“Acrobat”中的第一个字母是列表中的元音之一?我还需要考虑它是大写还是小写?

+0

感谢大家回复我的问题。你的回答帮助我回答了这个问题。 –

回答

12

尝试my_word[0].lower() in the_vowel

+0

你可以使用my_word [0] .isupper()来检查这个字母是否是大写。 – user1773242

+1

@ user1773242:格菲的answe在检查 – Gary

+0

之前已经强制将字符串设为小写字母是的,但问题是:“我还需要考虑它是大写还是小写?我读为:“我需要控制,如果它是大写或小写” – user1773242

3
my_word = "Acrobat" 
the_vowel = "aeiou" 

if myword[0].lower() in the_vowel: 
    print('1st letter is a vowel') 
else: 
    print('Not vowel') 
9

下面是一些提示,以帮助你看着办吧。

从字符串下标字符串中获取单个字母。

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

。注意,第一个字符是字符零,第二个字符是字符之一,等等。

接下来的事情要注意的是大写字母并不比等于小写字母:

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

幸运的是,Python字符串有方法upperlower改变字符串的情况下:

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

要在列表中测试成员我们in

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

因此,为了解决你的问题,联系在一起下标得到一个字母,upper/lower调整的情况下,使用in会员资格测试。

+0

+1是一个比我更好的老师:) – gefei

+0

@gefei:谢谢。现在,如果我只能弄清楚为什么我得到了-1。 –

+0

@StevenRumbalski ..不幸的是,如果有一些人不喜欢好的答案,我加了一个+1来弥补这个损失..虽然答案很好:) –

10

我不知道这是否是比这里已经张贴的答案比较好,但你也可以这样做:

vowels = ('a','e','i','o','u','A','E','I','O','U') 
myWord.startswith(vowels) 
+1

+1。尼斯。我总是忘记'startswith'可以接收一个元组,并最终写入'any(word.startswith(prefix)for prefix in prefixes')。 –

+0

'myWord'小写字母应该跳过检查大写字母,因此'vowels =('a','e','i','o','u')'就足够了 – PYPL

1

感谢alexvassel谁给我提供缺少的一部分;)

所以这里是解决exercice上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' 
+0

ok“if myword [0]。 lower_()在the_vowel:“更短,但我们正在学习:D – user2417270

1

以下是我做到了,因为输入的单词需要检查杉st在将其存储为变量之前:

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' 
1

我的代码看起来像这样。

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 word 
     print first 
     print "vowel!" 
    else: 
     print word 
     print first 
     print "consonant 
0

定义the_vowel作为一个字典比列表不是(略快)吗?

the_vowel = {"a":1,"e":1,"i":1,"o":1,"u":1} 
my_word[0].lower() in the_vowel 
1
x = (input ("Enter any word: ")) 
vowel = "aeiouAEIOU" 
if x[0] in vowel: 
    print ("1st letter is vowel: ",x)  
else: 
    print ("1st letter is consonant: ",x)  
+0

如果第一个字母是标点符号,将打印出'第一个字母是辅音';) –

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 
0
x = raw_input("Enter a word: ") 
vowels=['a','e','i','o','u'] 
for vowel in vowels: 
    if vowel in x: 
     print "Vowels" 
    else: 
     print "No vowels" 

这将打印出5行,如果任何这些包括这样一行元音那么这意味着有一个元音。我知道这不是最好的方式,但它的工作原理。

相关问题