count
調用函數find
以查看在給定索引處開始的單詞中可以找到多少個字母(請參閱下面的「代碼」)。通過另一個函數調用函數時的雙輸出
混亂的部分: 通過使用函數「計數」,我得到下面的程序輸出:
如可以看到的那樣,一些輸出是重複的(標記爲紅色)。 如何避免沒有從查找中刪除打印?是否有可能或我是否被迫將其刪除(打印)? 我明白這兩個函數可以做成更簡單的函數,但我想了解如何使用另一個函數調用函數。
我還必須提到變量計數的值是正確的。唯一的問題是重複的輸出。
代碼:
def find(word, letter, index):
start_ind = index
while index < (len(word)):
if word[index] == letter:
print "%s found at index %s" % (letter, index)
return index
index += 1
else:
print "%s is not found in string '%s' when starting from index %s" % (letter, word, start_ind)
return -1
def count(word, letter, index):
count = 0
while index < len(word):
if find(word, letter, index) != -1:
count += 1
index = find(word, letter, index) + 1
print "%s is shown %s times in '%s'" % (letter, count, word)
count("banana", "a", 0)
這是縮進精確地說你擁有它的方式? –
我對此表示懷疑_chuckle_ –
您在while循環內調用了2次「find」函數。每次調用它時都會打印出一條消息。限制1次使用該功能,問題將得到解決。 – Vadim