For循环和if条件

时间:2018-11-25 03:40:22

标签: python-3.x for-loop if-statement

我正在学习在线课程,当我尝试即兴创作自己的东西时,我正在上这堂课。 因此,脚本应该做的很简单:给定x字,它应该计算出元音和辅音的数量:

vocali = 0
consonati = 0
parola = input("Inserisci parola: ")
singolare_voc = ""
singolare_cons = ""

for lettera in parola:
    if lettera in "aeiou":
        vocali = vocali + 1
    else:
        consonati = consonati + 1

        if vocali == 1:
            singolare_voc = "vocale"
        elif consonati == 1:
            singolare_cons = "consonante"
        else:
            singolare_voc = "vocali"
            singolare_cons = "consonanti"

string = "Nella parola {} ci sono {} {} e {} {}"
output = string.format(parola, vocali, singolare_voc, consonati, singolare_cons)

现在我的问题在这部分:

if vocali == 1:
                singolare_voc = "vocale"
            elif consonati == 1:
                singolare_cons = "consonante"
            else:
                singolare_voc = "vocali"
                singolare_cons = "consonanti"

此“ if语句”的支持者是根据所计数的元音和辅音的数量,将意大利语中的元音和辅音改为单数或复数。 例如,如果一个单词中有3个元音要显示:vocali(复数形式)而不是vocale(单数形式)。 我不明白为什么会这样,但是它仅适用于某些单词,例如,如果我插入类似“ aa”之类的内容,它不会按预期或至少如我所愿显示变量。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

也许是在您的第一个else语句中?尝试将其移出else语句,仅在ur循环中