Hướng dẫn for loop to count characters python - vòng lặp for để đếm ký tự python

2

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi chỉ đang học Python và tôi đã gặp một vấn đề đòi hỏi tôi phải đặt một chuỗi làm đầu vào trong "hàm số chữ số của tôi."

Hàm được cho là đếm số lượng

for char in a:
    if char == 'a':
        count+=1
    print count
4 trong một từ được đưa ra [cụ thể là một loại trái cây được nhập bởi người dùng].

Giá trị cuối cùng là chính xác, nhưng trong chức năng của tôi, nó liệt kê cho tôi các chương trình "quy trình" nếu bạn sẽ liệt kê có bao nhiêu

for char in a:
    if char == 'a':
        count+=1
    print count
4 ở mỗi chỉ mục và thêm mọi thứ trước đó.

Tôi chỉ muốn một giá trị cuối cùng, không phải là một danh sách.

Nếu tôi không quá rõ ràng, đây là chương trình của tôi và kiểm tra nó cho chính mình để xem ý tôi là gì, và có thể giúp tôi đến với một giải pháp?

def count_letters[a]:
    count=0
    for char in a:
        if char == 'a':
            count+=1
        print count

a=raw_input["Name a fruit and I will tell you how many letters are in it." + '\n']
print count_letters[a]

dot.Py

4.8814 Huy hiệu vàng28 Huy hiệu bạc51 Huy hiệu Đồng4 gold badges28 silver badges51 bronze badges

Đã hỏi ngày 30 tháng 3 năm 2017 lúc 14:18Mar 30, 2017 at 14:18

3

Chỉ là sự thay đổi:

for char in a:
    if char == 'a':
        count+=1
    print count

To:

for char in a:
    if char == 'a':
        count+=1
print count

Nếu không, bạn sẽ in quầy mỗi lần chạy vòng.

Ngoài ra, bạn đang gọi chức năng của mình với in tại

for char in a:
    if char == 'a':
        count+=1
    print count
6.

Bạn không cần điều này vì bạn đã đặt một câu lệnh in ở dòng cuối cùng trong mã của bạn. Nếu bạn rời khỏi câu lệnh

for char in a:
    if char == 'a':
        count+=1
    print count
7 ở đó để gọi chức năng của bạn, nó sẽ in
for char in a:
    if char == 'a':
        count+=1
    print count
8, vì hàm đã trả lại giá trị đếm.

Vì vậy, bạn cũng có thể thay đổi:

print count_letters[a]

To:

count_letters[a]

Ví dụ đầu ra với

for char in a:
    if char == 'a':
        count+=1
    print count
6:

Name a fruit and I will tell you how many letters are in it. abacaxi 
3
None

Ví dụ đầu ra với

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

Name a fruit and I will tell you how many letters are in it. abacaxi 
3

Đã trả lời ngày 30 tháng 3 năm 2017 lúc 14:22Mar 30, 2017 at 14:22

dot.Pydot.Pydot.Py

4.8814 Huy hiệu vàng28 Huy hiệu bạc51 Huy hiệu Đồng4 gold badges28 silver badges51 bronze badges

Đã hỏi ngày 30 tháng 3 năm 2017 lúc 14:18

def count_a[fruit_name]:
    return sum[1 for char in fruit_name if char == 'a']

Chỉ là sự thay đổi:

Nếu không, bạn sẽ in quầy mỗi lần chạy vòng.

return fruit_name.count['a']

Ngoài ra, bạn đang gọi chức năng của mình với in tại

for char in a:
    if char == 'a':
        count+=1
    print count
6.Mar 31, 2017 at 7:57

Bạn không cần điều này vì bạn đã đặt một câu lệnh in ở dòng cuối cùng trong mã của bạn. Nếu bạn rời khỏi câu lệnh

for char in a:
    if char == 'a':
        count+=1
    print count
7 ở đó để gọi chức năng của bạn, nó sẽ in
for char in a:
    if char == 'a':
        count+=1
    print count
8, vì hàm đã trả lại giá trị đếm.Eric Duminil

Vì vậy, bạn cũng có thể thay đổi:8 gold badges66 silver badges119 bronze badges

Ví dụ đầu ra với

for char in a:
    if char == 'a':
        count+=1
    print count
6:

Ví dụ đầu ra với

for char in a:
    if char == 'a':
        count+=1
print count
0:Aug 8, 2017 at 16:26

Name a fruit and I will tell you how many letters are in it. abacaxi 
3
DrJessop

Đã trả lời ngày 30 tháng 3 năm 2017 lúc 14:225 silver badges25 bronze badges

Nếu bạn muốn giữ một cấu trúc tương tự và tự tính toán đếm, bạn có thể sử dụng:

def count_letters[a]:
    count=0
    for char in a:
        if char == 'a':
        count+=1
    print count

Nó ngắn hơn, nó là Pythonic hơn, nó không phải là một cuộc gọi phương thức tiêu chuẩn, nó trả về một số nguyên thay vì chỉ in nó và các tên biến có thể rõ ràng hơn một chút.

Đã trả lời ngày 30 tháng 3 năm 2017 lúc 14:22Mar 30, 2017 at 14:22

Nếu bạn muốn giữ một cấu trúc tương tự và tự tính toán đếm, bạn có thể sử dụng:

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

Nó ngắn hơn, nó là Pythonic hơn, nó không phải là một cuộc gọi phương thức tiêu chuẩn, nó trả về một số nguyên thay vì chỉ in nó và các tên biến có thể rõ ràng hơn một chút.

for char in a:
    if char == 'a':
        count+=1
    print count
1

Nếu bạn không ngại sử dụng phương pháp Python hiện có, bạn có thể sử dụng:Mar 30, 2017 at 14:25

Đã trả lời ngày 31 tháng 3 năm 2017 lúc 7:57mikuszefski

Eric Duminileric Duminil1 gold badge24 silver badges37 bronze badges

0

51.5k8 Huy hiệu vàng66 Huy hiệu bạc119 Huy hiệu đồng

Có vẻ như bạn không hiểu sự khác biệt giữa in và trở lại. Những gì bạn đang làm là in mỗi lần xuất hiện trong vòng lặp, khi những gì bạn muốn là giá trị cuối cùng ở cuối. Những gì bạn sẽ phải làm là giữ cùng một mã, ngoại trừ khi vòng lặp chấm dứt, bạn muốn trả về bất kỳ giá trị nào ở cuối. Vì vậy, hãy loại bỏ số lượng in, và loại bỏ vết lõm. Sau đó, bạn phải trả lại số lượng. Bạn không muốn quay lại trong vòng lặp, bởi vì điều này sẽ trả về giá trị đầu tiên của đếm sau khi một ký tự duy nhất được kiểm tra. Nhắn tin cho tôi để biết thêm câu hỏi nếu bạn có bất kỳ.

for char in a:
    if char == 'a':
        count+=1
    print count
2

Đã trả lời ngày 8 tháng 8 năm 2017 lúc 16:26

Drjessopdrjessop9 gold badges28 silver badges47 bronze badges

4525 Huy hiệu bạc25 Huy hiệu ĐồngMay 6, 2018 at 10:38

Bạn chỉ cần đặt chức năng in trong vòng lặp. Khay này:

for char in a:
    if char == 'a':
        count+=1
    print count
3

Thụt lề rất quan trọng trong Python

Một thay đổi đơn giản làm cho nó hoạt động. Chỉ cần thay thế

for char in a:
    if char == 'a':
        count+=1
    print count
7 bằng
for char in a:
    if char == 'a':
        count+=1
print count
2 và loại bỏ một cấp độ thụt để lấy nó của vòng lặp.12 gold badges69 silver badges109 bronze badges

Nhìn chung, nó được coi là Pythonic hơn để tránh các vòng

for char in a:
    if char == 'a':
        count+=1
print count
3. Mặc dù không phải là giải pháp ngắn nhất [xem Bình luận của Eric Duminil] về vấn đề của bạn, điều này có thể đưa ra ý tưởng làm thế nào để sử dụng danh sách hiểu biết thay thế: thay vào đó:Jan 30, 2019 at 10:46

Làm thế nào để bạn đếm các ký tự trong một vòng lặp trong Python?

Với thiết lập này được thực hiện, chúng tôi có thể sử dụng một vòng lặp đơn giản để lặp lại trên mọi ký tự trong chuỗi và tăng số lượng.Khi vòng lặp FOR đã chạy, lặp lại từng ký tự của chúng tôi và tăng biến số đếm, chúng tôi có giá trị đếm mà sau đó chúng tôi in ra màn hình.use a simple for loop to iterate over every character in string and increment the count by one. Once the for loop has run, iterating over each of our characters and incrementing the count variable, we have our count value which we then print out to the screen.

Làm cách nào để đếm số lượng văn bản trong Python?

Phương thức Python String Count [] Phương thức Đếm [] trả về số lần một giá trị được chỉ định xuất hiện trong chuỗi.count[] Method The count[] method returns the number of times a specified value appears in the string.

Làm cách nào để đếm số lượng ký tự lặp lại trong một chuỗi trong Python?

Python..
chuỗi = "Trách nhiệm lớn" ;.
in ["ký tự trùng lặp trong một chuỗi đã cho:"] ;.
#Count mỗi ký tự có trong chuỗi ..
cho i trong phạm vi [0, len [chuỗi]]:.
Đếm = 1 ;.
cho J trong phạm vi [i+1, len [chuỗi]]:.
if [chuỗi [i] == chuỗi [j] và chuỗi [i]! = '']:.
Đếm = đếm + 1 ;.

Bài Viết Liên Quan

Chủ Đề