01/10/2018, 09:04

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!

Khoa NTA viết 11:18 ngày 01/10/2018

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)
vo van hung viết 11:18 ngày 01/10/2018

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)

Khoa NTA viết 11:05 ngày 01/10/2018

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)
vo van hung viết 11:21 ngày 01/10/2018

thank anh nhiều lắm ạ.!

Bài liên quan
0