为什么我的if语句评估不正确?

2024-09-28 13:44:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码的目的是检查给定的字母在给定的句子中出现了多少次。我做了一个函数,它将用户的句子和字母作为参数,并给出字母在句子中的次数。我还没有完全完成所有不同的场景,所以我在if语句中有一个print语句

userstr = input("What is your sentence? ")
userletter = str(input("What is your letter? "))


def lettercount(sentence, letter):
    count = 0
    sentencecounter = 0
    for letter in sentence:
        if letter == sentence[sentencecounter]:
            print(sentence[sentencecounter])
            count += 1
        else:
            pass
        sentencecounter += 1
    print(count)


lettercount(userstr, userletter)

所以我的问题是,在我的if语句中,它将继续,就好像字母等于切分的句子字母一样,即使它不是。这是它的样子

s
e
n
t
e
n
c
e
8

Tags: inputyourifiscount字母语句what
3条回答

尝试count方法来简化这些内容

def lettercount(sentence, letter):
    count = sentence.count(letter)
    print(count) # replace print with return if you wanna return the value

lettercount(userstr, userletter)

是你的功能出了问题。我只是把它修好

def lettercount(sentence, letter):
    count = 0
    sentencecounter = 0
    for i in sentence:
        if i == letter:
            print(i)
            count += 1
        else:
            pass
        sentencecounter += 1
    print(count)

userstr = input("What is your sentence? ")
userletter = str(input("What is your letter? "))

lettercount(userstr, userletter)

更改for循环中的letter变量,因为它与函数参数中的letter相同

lettercount(userstr, userletter)
userstr = input("What is your sentence? ")
userletter = str(input("What is your letter? "))


def lettercount(sentence, letter):
    count = 0
    sentencecounter = 0
    for ch in sentence:
        if letter == sentence[sentencecounter]:
            print(sentence[sentencecounter])
            count += 1
        else:
            pass
        sentencecounter += 1
    print(count)

相关问题 更多 >

    热门问题