Sự khác biệt khi xuất ký tự trong 1 chuỗi

Chào mọi người,

Mình đang học khóa học Python2 trên trang Codecademy, có vấn đề này mình không hiểu rõ lắm, nhờ mọi người giải đáp giúp.

Cho 1 từ được nhập từ bàn phím, mình giả sử từ đó là “victory” nhé
word = "victory"

Ta có index của các ký tự trong từ đó như bên dưới:

v   i   c   t   o   r   y
0   1   2   3   4   5   6

Chiều dài của từ đó, dùng hàm len(), ta có:
len(word) = 7

Bây giờ, mình muốn xuất tất cả ký tự trong từ đó, trừ ký tự đầu tiên.
Theo mình nghĩ, câu lệnh sẽ như thế này
print word[1:len(word)-1]

Tuy nhiên, trên thực tế, câu lệnh đúng phải là:
print word[1:len(word)]

Tại sao lại có sự khác nhau như vậy? Tại sao khi xuất một phần của chuỗi ký tự, index của ký tự đầu tiên thì được tính theo thứ tự từ 0 trở đi, trong khi index của ký tự kết thúc lại được tính theo thứ tự từ 1? Mong mọi người giải đáp giúp.

Xin cảm ơn

a[start:end] # items start through end-1
5 Likes

Cảm ơn bạn :smiley: :smiley: :smiley: :smiley: :smiley:

  1. s[m:n:k] + s[n:p:k] == s[m:p:k] :smiley:
  2. s[m:n] có số phần tử là n-m nếu mn cùng dấu, còn {m, m+1, m+2, …, n} thì phải +1.
2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?