Tìm vị trí xuất hiện của kí tự giống nhau trong chuỗi bằng python

EM chào m.n. Em mới học python, thấy vòng lặp for của nó hơi khác ngôn ngữ khác.
Em có chuỗi: s = ‘hello haa’
Em muốn tìm và in ra vị trí xuất hiện của kí tự ‘h’ thì phải làm thế nào ạ. Em cảm ơn!

Vòng lặp for trong Python nôm na là ‘foreach’ trong các ngôn ngữ khác - duyệt từng phần tử của 1 list/tuple hay key-value (dict).
Chuỗi là tập hợp nhiều phần tử, lệnh for tương ứng ở các ngôn ngữ khác là:

for(int i = 0; i < len(s); i++) {...}

Ở Python thì được viết lại là (Python3):

for i in range(len(s)):
    if s[i] == 'h':
        print('Found: ', i)

em cảm ơn. Anh cho em hỏi cái này luôn được không ạ.
em in re biến count trong c++ như này:
s = “hello”;
count = 0;
for(int i=0; i<len(s): i++){
if(s[i] == l)
count++;
}
cout<<count; ở đây count = 2;
nhưng trong python
s = “hello”
count = 0
for i in s:
if i == l:
count+=1
print count (ở đây em in ra count la 1,2. Giờ em muốn chỉ in ra 2 thì làm thế nào ạ. Em cảm ơn)

Cái đó do indentation quyết định em à. Python cần indentation phải rõ ràng, em đọc cách post code ở đây.

s = 'hello'
count = 0
for i in s:
    if i == 'l':
        count += 1
        # đoạn code này nằm trong vòng lặp
        # nếu đặt 'print(count)' ở đây thì kết quả là: 1 2

# nếu đặt ở đây thì chỉ là 2, đoạn code này không nằm trong vòng lặp 
print(count)
1 Like

thank anh nhiều lắm ạ.! :slight_smile:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?