Các câu trả lời khác cho thấy điều gì sai với mã của bạn. Nhưng cũng có một cách tích hợp để làm điều này, nếu bạn đang không chỉ làm điều này cho một bài tập:
>>> 'banana'.count('a')
3
Danben cho phiên bản này khắc phục:
def count_letters(word, char):
count = 0
for c in word:
if char == c:
count += 1
return count
Dưới đây là một số những cách khác để làm điều đó, hy vọng họ sẽ dạy bạn nhiều hơn về Python!
Tương tự, nhưng ngắn hơn for
vòng lặp. Khai thác thực tế là các phép toán luận có thể biến thành 1 nếu đúng và 0 nếu sai:
def count_letters(word, char):
count = 0
for c in word:
count += (char == c)
return count
ngắn cho vòng chung có thể được biến thành comprehensions danh sách/máy phát điện.Điều này tạo ra một danh sách các số nguyên tương ứng với từng chữ cái, với 0 nếu những bức thư không phù hợp char
và 1 nếu có, và sau đó tóm tắt chúng:
def count_letters(word, char):
return sum(char == c for c in word)
Người tiếp theo lọc ra tất cả các nhân vật mà don' t trận đấu char
, và số lượng bao nhiêu còn lại:
def count_letters(word, char):
return len([c for c in word if c == char])
Tôi nghĩ rằng mã của bạn là thụt vào đúng. Bạn sẽ nhận được một lỗi thụt đầu dòng. – Lucas