2017-01-16 80 views
-4

編寫一個python程序,詢問用戶一個單詞,然後使用這些指令計算和打印輸入單詞的元音值: 假設您根據以下內容計算單詞的元音值說明:需要元音檢查程序幫助

 
a 5 points 
e 4 points 
i 3 points 
o 2 points 
u 1 point. 

我的代碼:

word = str(input("Enter a word:")) 

def vowel(Word): 
    global word 
    Word = word 
    score = 1 

    if "a" or "A" in word: 
     score += 5 
    elif "e" or "E" in word: 
     score += 4 
    elif "i" or "I" in word: 
     score += 3 
    elif "o" or "O" in word: 
     score += 2 
    elif "u" or "U" in word: 
     score += 1 

    print("Your word scored",score,"in the vowel checker") 

print(vowel(word))  

編輯:FOR循環

字=輸入( 「輸入一個單詞:」)

DEF元音(Wo_rd): 全局字 Wo_rd =字 得分= 0 對於char在word.lower(): 如果炭== 'a' 或 「A」: 得分+ = 5 elif char ==「e」or「E」: score = = 4 elif char ==「i」或「I」: score + = 3 elif char ==「o」or「O」: score + = 2 elif char ==「u」或「U」: 得分+ = 1 a =「您的單詞得分」,得分「,在單詞檢查器測試中」 返回一個

打印(元音(字))

+4

那麼您需要哪些代碼幫助? – depperm

+0

字= STR(輸入( 「輸入一個單詞:」)) DEF元音(字): 全局字 字=字 得分= 1 如果 「A」 的 「A」 字或: 得分+ = 5 elif的以字爲 「E」 或 「E」: 得分+ = 4 elif的或 「I」 字的 「i」: 得分+ = 3 elif的 「○」 或 「O」 字: 得分+ = 2 elif「u」or「U」in word: 得分+ = 1 print(「您的單詞得分」,得分「,在元音檢查器中) print(元音字) – JackAnderson

+0

顯示有問題的代碼和完整的錯誤信息(Traceback) – furas

回答

3
word = str(input("Enter a word:")) 

def vowel(word): 
    score = 1 

    for character in word: 
     character = character.lower() 
     if character == 'a': 
      score += 5 
     elif character == 'e': 
      score += 4 
     elif character == 'i': 
      score += 3 
     elif character == 'o': 
      score += 2 
     elif character == 'u': 
      score += 1 

    print("Your word scored",score,"in the vowel checker") 

vowel(word) 

注意事項:

  • 在Python中,字符串是可迭代的,這樣你就可以在每個字符循環。
  • 注意,你不必(也不應該)使用global
  • 採用character.lower()簡化了我們的條件語句。
  • 而不是打印在vowel函數的輸出,你可以,而不是僅僅return score並把打印語句中的最後一行。

P.S.鑑於這個問題,一個詞的分數是不是應該從0開始,而不是1?

+0

因此你的例子包括大寫和小寫字母,還是隻接受小寫字母?是的,你說得分應該是0 – JackAnderson

+0

@JackAnderson我的例子適用於大寫和小寫字母。 'character = character.lower()'將每個字母轉換爲小寫字母,這簡化了我們的條件。這使我們必須檢查「a」,而不是像原始代碼中的「a」或「A」。 – pbaranay

+1

在word.lower()中使用'for字符更有效率,因爲你只需要調用'lower()'。當然,還有其他方法可以提高效率 –

1

首先,如果你是路過字vowel我不知道爲什麼你使用全局。您呼叫vowel一個print所以元音內應返回一個字符串,而不是打印字符串本身。接下來通過使用for循環,可以檢查該單詞的每個字符,並增加哪怕一個元音的多個occurances出現得分。

word = str(input("Enter a word:")) 

def vowel(word): 
    score = 1 
    for c in word: 
    if "a" == c.lower(): 
     score += 5 
    elif "e" == c.lower(): 
     score += 4 
    elif "i" == c.lower(): 
     score += 3 
    elif "o" == c.lower(): 
     score += 2 
    elif "u" == c.lower(): 
     score += 1 

    return "Your word scored "+str(score)+" in the vowel checker" 

print(vowel(word))