[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