30/09/2018, 19:24

[Hỏi Python] Learn Python The Hard Way bài 39

http://learnpythonthehardway.org/book/ex39.html

mình có thắc mắc ở khúc này :

def get_slot(aMap, key, default=None):
“”"
Returns the index, key, and value of a slot found in a bucket.
Returns -1, key, and default (None if not set) when not found.
“”"
bucket = get_bucket(aMap, key)

for i, kv in enumerate(bucket):
    k, v = kv
    if key == k:
        return i, k, v

return -1, key, default

mình muốn nhờ mọi người giải thích về hàm enumerate, hoạt động như thế nào,trả kết quả ra sao.
còn ở chỗ gắn k, v = kv mình cũng k hiểu.mình thử chạy 1 đoạn đơn giản như :
x, y =4
print x,y
thì nó báo lỗi ‘int’ object is not iterable

Còn vấn đề này nữa.Mình chưa hiểu rõ về “lùi hàng” trong python
Ví dụ:
bucket = [1, 2 ,3 ,4, 5, 6, 7]
for i, kv in enumerate(bucket):
(lùi 4 cột)k, v = kv
(lùi 8 cột)print k, v
Khi mình chạy như thế này thì nó báo lỗi IndentationError : unexpected intent ->lỗi thụt cột thì phải
Còn khi mình để
(lùi 4 cột)k, v = kv
(lùi 4 cột)print k, v
2 câu lệnh cùng lùi vào số cột bằng nhau
thì nó lại báo lỗi ‘int’ object is not iterable
Mình cứ nghĩ là cứ mỗi câu lệnh nằm ở “cột phía trong so với vòng lặp phía,hoặc hàm ở trên” thì nó nằm trong cái hàm đó hoặc vòng lặp đó ; chẳng hạn như ví dụ vòng for ở trên vậy.Nhưng hình như mình hiểu sai

Mong mọi người giúp đỡ.
Cám ơn mọi người nhiều

Bài liên quan
0