2013-09-28 40 views
2

我正在完成初學者的Python書。 我想我明白問題在問什麼。如何通過添加參數來概括一個函數?

封裝成函數,所以它接受的字符串和字母作爲參數概括它。

fruit = "banana" 
count = 0 
for char in fruit: 
    if char == 'a': 
     count += 1 
print count 

我的回答是:

def count_letters(letter, strng): 
    fruit = strng 
    count = 0 
    for char in fruit: 
     if char == letter: 
      count += 1 
    print count 

count_letters(a, banana) 

但它是錯誤的:名 'A' 是沒有定義。我不知道我要去哪裏錯。 我以爲口譯員應該知道「a」是「字母」的參數,依此類推。

所以我一定是失去了一些東西根本。

你能幫忙嗎?

+0

爲什麼'水果= strng'? – Matthias

+0

我會用這個代替「香蕉」 .Count中(「A」) –

+0

富吧,我同意,但是Python書籍的運動狀態:*封裝在一個函數命名計數這個代碼,並推廣它,這樣它接受的字符串和該字母作爲參數*用這兩個參數定義一個新的計數函數。 http://www.pythonlearn.com/html-270/book007.html#hevea_default363 – noobninja

回答

9

abanana是可變的名字。由於您從未定義過任何一個(例如a = 'x'),因此解釋程序不能使用它們。

你需要用他們的報價,並把它們變成字符串:

count_letters('a', 'banana') 

,或者是預先爲它們分配並傳遞變量:

l = 'a' 
s = 'banana' 

count_letters(l, s) 
0
#!/usr/bin/python2.7 

word = 'banana' 

def count(word, target) : 
    counter = 0 
    for letter in word : 
     if letter == target : 
      counter += 1 
    print 'Letter', letter, 'occurs', counter, 'times.' 

count(word, 'a') 
相關問題