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

时间:2021-05-03 06:01:25

标签: python

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

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

3 个答案:

答案 0 :(得分:0)

更改 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)

答案 1 :(得分:0)

尝试使用 count 方法来简化内容。

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

lettercount(userstr, userletter)

答案 2 :(得分:0)

你的功能有问题。我只是修复它。

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)