我的代码的目的是检查给定的字母在给定的句子中出现了多少次。我做了一个函数,它将用户的句子和字母作为参数,并给出字母在句子中的次数。我还没有完全完成所有不同的场景,所以我的 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
答案 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)