Giới thiệu qua về chuỗi, số, list trong Python

Trong phần trước, chúng ta đã làm quen với chương trình Python đầu tiên là thêm hai số và in tổng của chúng ra ngoài màn hình. Phần này, bạn sẽ học cách sử dụng Python như một chiếc máy tính, học về số, chuỗi, list và đi bước đầu tiên hướng tới lập trình Python. Hãy chắc chắn bạn đã lưu lại trang Tài liệu Python này để cập nhật những bài mới nhất nhé.

1. Sử dụng Python như một máy tính

Hãy thử vài lệnh Python đơn giản dưới đây, bắt đầu trình thông dịch và đợi dấu nhắc chính xuất hiện, nó không quá lâu đâu.

1.1. Số

Trình thông dịch hoạt động như một máy tính đơn giản: Bạn có thể nhập vào một phép tính và nó sẽ viết ra giá trị. Cú pháp biểu thức khá đơn giản: các toán tử như +, -, * và / làm việc giống như trong hầu hết các ngôn ngữ lập trình khác (Pascal, C), dấu ngoặc đơn () có thể được sử dụng để nhóm. Ví dụ:

<span class="gp"> </span><span class="mi">2</span> <span class="o">+</span> <span class="mi">2</span> <span class="go">4</span> <span class="gp"> </span><span class="mi">50</span> <span class="o">-</span> <span class="mi">5</span><span class="o">*</span><span class="mi">6</span> <span class="go">20</span> <span class="gp"> </span><span class="p">(</span><span class="mi">50</span> <span class="o">-</span> <span class="mi">5</span><span class="o">*</span><span class="mi">6</span><span class="p">)</span> <span class="o">/</span> <span class="mi">4</span> <span class="go">5.0</span> <span class="gp"> </span><span class="mi">8</span> <span class="o">/</span> <span class="mi">5</span> <span class="c1"># phép chia luôn trả về một số dạng thập phân với dấu chấm</span> <span class="go">1.6</span>

Số nguyên (ví dụ như 2, 4, 20) có kiểu int, số dạng thập phân (như 5.0, 1.6) có kiểu float. Chúng ta sẽ thấy thêm về các kiểu số trong những bài hướng dẫn sau.

Phép chia (/) luôn luôn trả về kiểu float. Để thực hiện phép chia lấy phần nguyên (loại bỏ các số sau dấu thập phân) bạn có thể sử dụng toán tử //; để tính phần dư thì sử dụng % như ví dụ dưới đây:

 Với Python, bạn có thể sử dụng toán tử ** để tính số mũ:

<span class="gp"> </span><span class="mi">5</span> <span class="o">**</span> <span class="mi">2</span> <span class="c1"># 5 bình phương</span> <span class="go">25</span> <span class="gp"> </span><span class="mi">2</span> <span class="o">**</span> <span class="mi">7</span> <span class="c1"># 2 mũ 7</span> <span class="go">128</span>

Dấu bằng = được sử dụng để gán giá trị cho 1 biến. Sau đó, không có kết quả nào được hiển thị trước dấu nhắc lệnh tiếp theo:

<span class="gp"> </span><span class="n">width</span> <span class="o">=</span> <span class="mi">20</span> <span class="gp"> </span><span class="n">height</span> <span class="o">=</span> <span class="mi">5</span> <span class="o">*</span> <span class="mi">9</span> <span class="gp"> </span><span class="n">width</span> <span class="o">*</span> <span class="n">height</span> <span class="go">900</span>

Nếu một biến không được định nghĩa (gán giá trị), cố gắng sử dụng biến đó, bạn sẽ nhận được lỗi sau:

<span class="gp"> </span><span class="n">n</span> <span class="c1"># bạn đang cố truy cập vào biến n chưa được gán giá trị</span> <span class="gt">Traceback (most recent call last):</span> File <span class="nb">"<stdin>"</span>, line <span class="m">1</span>, in <span class="n"><module></span> <span class="gr">NameError</span>: <span class="n">name 'n' is not defined</span>

Python hỗ trợ đầy đủ cho dấu chấm động, phép tính có cả số nguyên và số thập phân thì kết quả sẽ trả về số dưới dạng thập phân (nguyên văn: toán tử với toán hạng kiểu hỗn hợp chuyển đổi toán hạng số nguyên sang số thập phân):

<span class="gp"> </span><span class="mi">4</span> <span class="o">*</span> <span class="mf">3.75</span> <span class="o">-</span> <span class="mi">1</span> <span class="go">14.0</span>

Trong chế độ tương tác, biểu thức được in ra cuối cùng sẽ được gán cho biến _, giúp dễ dàng thực hiện các phép tính tiếp theo hơn. Ví dụ:

<span class="gp"> </span><span class="n">tax</span> <span class="o">=</span> <span class="mf">12.5</span> <span class="o">/</span> <span class="mi">100</span> <span class="gp"> </span><span class="n">price</span> <span class="o">=</span> <span class="mf">100.50</span> <span class="gp"> </span><span class="n">price</span> <span class="o">*</span> <span class="n">tax</span> <span class="go">12.5625</span> <span class="gp"> </span><span class="n">price</span> <span class="o">+</span> <span class="n">_</span> <span class="go">113.0625</span> <span class="gp"> </span><span class="nb">round</span><span class="p">(</span><span class="n">_</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span> <span class="go">113.06</span>

Bạn nên coi biến này là read-only, đừng gán giá trị cho nó - vì nếu tạo ra một biến cùng tên nó sẽ chiếm mất biến mặc định này và không còn làm được những thứ hay ho như trên nữa.

Ngoài intfloat, Python hỗ trợ thêm 2 loại số nữa là DecimalFraction. Python cũng hỗ trợ số phức và sử dụng hậu tố j hoặc J để chỉ phần ảo. Ví dụ: 3+5j

1.2. Chuỗi (string)

Bên cạnh số, Python cũng có thể thao tác với chuỗi, được biểu diễn bằng nhiều cách. Chúng có thể được để trong dấu nháy đơn ('...') hoặc kép ('...') với cùng một kết quả. được sử dụng để 'trốn' 2 dấu nháy này.

<span class="gp"> </span><span class="s1">'spam eggs'</span> <span class="c1"># dấu nháy đơn</span> <span class="go">'spam eggs'</span> <span class="gp"> </span><span class="s1">'doesn</span><span class="se">'</span><span class="s1">t'</span> <span class="c1"># sử dụng ' để viết dấu nháy đơn...</span> <span class="go">"doesn't"</span> <span class="gp"> </span><span class="s2">"doesn't"</span> <span class="c1"># ...hoặc sử dụng dấu nháy kép</span> <span class="go">"doesn't"</span> <span class="gp"> </span><span class="s1">'"Yes," he said.'</span> <span class="go">'"Yes," he said.'</span> <span class="gp"> </span><span class="s2">"</span><span class="se">"</span><span class="s2">Yes,</span><span class="se">"</span><span class="s2"> he said."</span> <span class="go">'"Yes," he said.'</span> <span class="gp"> </span><span class="s1">'"Isn</span><span class="se">'</span><span class="s1">t," she said.'</span> <span class="go">'"Isn't," she said.'</span>

Trong trình thông dịch tương tác, chuỗi kết quả bao gồm phần trong dấu ngoặc kép và các ký tự đặc biệt 'trốn' được nhờ sử dụng . Dù đầu ra trông có vẻ hơi khác với đầu vào (dấu nháy kèm theo có thể thay đổi) nhưng hai chuỗi này là tương đương. Chuỗi được viết trong dấu ngoặc kép khi chuỗi chứa dấu nháy đơn và không có dấu nháy kép), ngược lại nó sẽ được viết trong dấu nháy đơn. Hàm print() tạo chuỗi đầu ra dễ đọc hơn, bằng cách bỏ qua dấu nháy kèm theo và in các ký tự đặc biệt, đã 'trốn' được dấu nháy:

<span class="gp"> </span><span class="s1">'"Isn</span><span class="se">'</span><span class="s1">t," she said.'</span> <span class="go">'"Isn't," she said.'</span> <span class="gp"> </span><span class="nb">print</span><span class="p">(</span><span class="s1">'"Isn</span><span class="se">'</span><span class="s1">t," she said.'</span><span class="p">)</span> <span class="go">"Isn't," she said.</span> <span class="gp"> </span><span class="n">s</span> <span class="o">=</span> <span class="s1">'First line.</span><span class="se">n</span><span class="s1">Second line.'</span> <span class="c1"># n nghĩa là dòng mới</span> <span class="gp"> </span><span class="n">s</span> <span class="c1"># không có print(), n sẽ được viết trong kết quả đầu ra</span> <span class="go">'First line.nSecond line.'</span> <span class="gp"> </span><span class="nb">print</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="c1"># có print(), n sẽ tạo ra dòng mới</span> <span class="go">First line.</span> <span class="go">Second line.</span>

Nếu không muốn các ký tự được thêm vào bởi được trình thông dịch hiểu là ký tự đặc biệt thì sử dụng chuỗi raw bằng cách thêm r vào trước dấu nháy đầu tiên:  

<span class="gp"> </span><span class="nb">print</span><span class="p">(</span><span class="s1">'C:some</span><span class="se">n</span><span class="s1">ame'</span><span class="p">)</span> <span class="c1"># ở đây n là dòng mới!</span> <span class="go">C:some</span> <span class="go">ame</span> <span class="gp"> </span><span class="nb">print</span><span class="p">(</span><span class="sa">r</span><span class="s1">'C:somename'</span><span class="p">)</span> <span class="c1"># thêm r trước dấu nháy</span> <span class="go">C:somename</span>

Chuỗi ký tự dạng chuỗi có thể viết trên nhiều dòng bằng cách sử dụng 3 dấu nháy: '''...''' hoặc '''...'''. Kết thúc dòng tự động bao gồm trong chuỗi, nhưng có thể ngăn chặn điều này bằng cách thêm vào cuối dòng. Ví dụ:

<span class="nb">print</span><span class="p">(</span><span class="s2">"""</span><span class="se"></span> <span class="s2">Usage: thingy [OPTIONS]</span> <span class="s2"> -h Display this usage message</span> <span class="s2"> -H hostname Hostname to connect to</span> <span class="s2">"""</span><span class="p">)</span>

Đây là kết quả (dòng mới ban đầu không được tính):

 

Các chuỗi có thể được nối với nhau bằng toán tử + và thay thế bằng *:

<span class="gp"> </span><span class="c1"># thêm 3 'un' vào sau 'ium'</span> <span class="gp"> </span><span class="mi">3</span> <span class="o">*</span> <span class="s1">'un'</span> <span class="o">+</span> <span class="s1">'ium'</span> <span class="go">'unununium'</span>

Hai hoặc nhiều ký tự dạng chuỗi (tức là ký tự trong dấu nháy) cạnh nhau được nối tự động.

<span class="gp"> </span><span class="s1">'Py'</span> <span class="s1">'thon'</span> <span class="go">'Python'</span>

Tính năng trên chỉ làm việc với chuỗi dạng chuỗi (literal), không áp dụng với biến hay biểu thức:

<span class="gp"> </span><span class="n">prefix</span> <span class="o">=</span> <span class="s1">'Py'</span> <span class="gp"> </span><span class="n">prefix</span> <span class="s1">'thon'</span> <span class="c1"># không thể nối một biến với một chuỗi</span> <span class="go"> ...</span> <span class="go">SyntaxError: invalid syntax</span> <span class="gp"> </span><span class="p">(</span><span class="s1">'un'</span> <span class="o">*</span> <span class="mi">3</span><span class="p">)</span> <span class="s1">'ium'</span> <span class="go"> ...</span> <span class="go">SyntaxError: invalid syntax</span>

Nếu muốn ghép nối các biến với nhau hoặc biến với chuỗi hãy sử dụng dấu +:

<span class="gp"> </span><span class="n">prefix</span> <span class="o">+</span> <span class="s1">'thon'</span> <span class="go">'Python'</span>

Tính năng này đặc biệt hữu ích khi muốn bẻ các chuỗi dài thành chuỗi ngắn hơn:

<span class="gp"> </span><span class="n">text</span> <span class="o">=</span> <span class="p">(</span><span class="s1">'Put several strings within parentheses '</span> <span class="gp">... </span> <span class="s1">'to have them joined together.'</span><span class="p">)</span> <span class="gp"> </span><span class="n">text</span> <span class="go">'Put several strings within parentheses to have them joined together.'</span>

Các chuỗi có thể được lập chỉ mục với ký tự đầu tiên được đánh số 0. Không có kiểu ký tự riêng biệt, mỗi ký tự đơn giản là một con số:

<span class="gp"> </span><span class="n">word</span> <span class="o">=</span> <span class="s1">'Python'</span> <span class="gp"> </span><span class="n">word</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="c1"># ký tự ở vị trí số 0</span> <span class="go">'P'</span> <span class="gp"> </span><span class="n">word</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span> <span class="c1"># ký tự ở vị trí số 5</span> </code><span class="go"><code>'n'</code>
Chỉ số cũng có thể là số âm, bắt đầu đếm từ bên phải:
</span></pre> [code]<span class="gp"> </span><span class="n">word</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="c1"># last character</span> <span class="go">'n'</span> <span class="gp"> </span><span class="n">word</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">]</span> <span class="c1"># second-last character</span> <span class="go">'o'</span> <span class="gp"> </span><span class="n">word</span><span class="p">[</span><span class="o">-</span><span class="mi">6</span><span class="p">]</span> <span class="go">'P'</span>

Lưu ý rằng vì -0 cũng tương tự như 0, nên các chỉ số âm bắt đầu từ -1.

Ngoài việc đánh số, thì cắt lát cũng được hỗ trợ. Trong khi index được sử dụng để lấy các ký tự riêng lẻ thì cắt lát sẽ cho phép bạn lấy chuỗi con:

<span class="gp"> </span><span class="n">word</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="mi">2</span><span class="p">]</span> <span class="c1"># các ký tự từ vị trí 0 (bao gồm) đến 2 (loại trừ)</span> <span class="go">'Py'</span> <span class="gp"> </span><span class="n">word</span><span class="p">[</span><span class="mi">2</span><span class="p">:</span><span class="mi">5</span><span class="p">]</span> <span class="c1"># các ký tự từ vị trí 2 (bao gồm) đến 5 (loại trừ)</span> <span class="go">'tho'</span>

Hãy để ý đến cách các ký tự được giữ lại và loại trừ. Nó luôn đảm bảo rằng s[:i] + s[i:] bằng s:

<span class="gp"> </span><span class="n">word</span><span class="p">[:</span><span class="mi">2</span><span class="p">]</span> <span class="o">+</span> <span class="n">word</span><span class="p">[</span><span class="mi">2</span><span class="p">:]</span> <span class="go">'Python'</span> <span class="gp"> </span><span class="n">word</span><span class="p">[:</span><span class="mi">4</span><span class="p">]</span> <span class="o">+</span> <span class="n">word</span><span class="p">[</span><span class="mi">4</span><span class="p">:]</span> <span class="go">'Python'</span>

Các chỉ số trong cắt chuỗi có thiết lập mặc định khá hữu ích, có 2 chỉ số bị bỏ qua theo mặc định, là 0 và kích thước của chuỗi được cắt.

<span class="gp"> </span><span class="n">word</span><span class="p">[:</span><span class="mi">2</span><span class="p">]</span> <span class="c1"># các ký tự từ đầu đến vị trí thứ 2 (loại bỏ)</span> <span class="go">'Py'</span> <span class="gp"> </span><span class="n">word</span><span class="p">[</span><span class="mi">4</span><span class="p">:]</span> <span class="c1"># các ký tự từ vị trí thứ 4(lấy) đến hết</span> <span class="go">'on'</span> <span class="gp"> </span><span class="n">word</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">:]</span> <span class="c1"># các ký tự thứ hai tính từ cuối lên (lấy) đến hết</span> <span class="go">'on'</span>

 Một cách khác để ghi nhớ cách thức cắt chuỗi làm việc là hình dung các chỉ số như là vách ngăn giữa các ký tự, với ký tự ngoài cùng bên trái được đánh số 0. Khi đó, ký tự cuối cùng bên phải, trong chuỗi n ký tự sẽ có chỉ số n, ví dụ:

 <span class="o">+---+---+---+---+---+---+</span> <span class="o">|</span> <span class="n">P</span> <span class="o">|</span> <span class="n">y</span> <span class="o">|</span> <span class="n">t</span> <span class="o">|</span> <span class="n">h</span> <span class="o">|</span> <span class="n">o</span> <span class="o">|</span> <span class="n">n</span> <span class="o">|</span> <span class="o">+---+---+---+---+---+---+</span> <span class="mi">0</span> <span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">4</span> <span class="mi">5</span> <span class="mi">6</span> <span class="o">-</span><span class="mi">6</span> <span class="o">-</span><span class="mi">5</span> <span class="o">-</span><span class="mi">4</span> <span class="o">-</span><span class="mi">3</span> <span class="o">-</span><span class="mi">2</span> <span class="o">-</span><span class="mi">1</span>

Hàng đầu tiên của số mang đến vị trí của chỉ số từ 0 đến 6 trong chuỗi. Hàng thứ hai là các chỉ số âm tương ứng. Khi cắt từ i đến j sẽ bao gồm tất cả các ký tự nằm giữa i và j, tương ứng.

Đối với các chỉ số không âm, chiều dài của một lát cắt là sự chênh lệch của các chỉ số, nếu cả hai đều nằm trong giới hạn. Ví dụ, chiều dài của word[1:3] là 2.

Cố gắng sử dụng một chỉ mục quá lớn sẽ trả về kết quả lỗi:

<span class="gp"> </span><span class="n">word</span><span class="p">[</span><span class="mi">42</span><span class="p">]</span> <span class="c1"># từ chỉ có 6 ký tự</span> <span class="gt">Traceback (most recent call last):</span> File <span class="nb">"<stdin>"</span>, line <span class="m">1</span>, in <span class="n"><module></span> <span class="gr">IndexError</span>: <span class="n">string index out of range</span>

Tuy nhiên, các chỉ mục bên ngoài phạm vi lát cắt vẫn được xử lý gọn gàng khi được sử dụng để cắt:

word[4:42] # cắt ký tự từ vị trí thứ 4 đến 42

'on'

word[42:] # cắt ký tự sau vị trí 42

''

Các chuỗi Python không thể thay đổi - chúng là cố định. Vì vậy, nếu cứ cố tình gán một ký tự nào đó cho vị trí đã được lập chỉ mục thì bạn sẽ nhận được thông báo lỗi:

<span class="gp"> </span><span class="n">word</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'J'</span> <span class="go"> ...</span> <span class="go">TypeError: 'str' object does not support item assignment</span> <span class="gp"> </span><span class="n">word</span><span class="p">[</span><span class="mi">2</span><span class="p">:]</span> <span class="o">=</span> <span class="s1">'py'</span> <span class="go"> ...</span> <span class="go">TypeError: 'str' object does not support item assignment</span>

Nếu cần một chuỗi khác, cách tốt nhất là tạo mới:

<span class="gp"> </span><span class="s1">'J'</span> <span class="o">+</span> <span class="n">word</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span> <span class="go">'Jython'</span> <span class="gp"> </span><span class="n">word</span><span class="p">[:</span><span class="mi">2</span><span class="p">]</span> <span class="o">+</span> <span class="s1">'py'</span> <span class="go">'Pypy'</span>

Hàm len() được tích hợp trong Python, sẽ trả về độ dài của chuỗi:

<span class="gp"> </span><span class="n">s</span> <span class="o">=</span> <span class="s1">'supercalifragilisticexpialidocious'</span> <span class="gp"> </span><span class="nb">len</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="go">34</span>

1.3. Danh sách

Python biết một số loại dữ liệu phức hợp, được sử dụng để nhóm các giá trị khác nhau. Đa năng nhất là danh sách (list). Một danh sách được biểu diễn bằng dãy các giá trị, được phân tách nhau bằng dấu phẩy, nằm trong dấu []. Các danh sách có thể chứa nhiều mục với kiểu khác nhau, nhưng thông thường là các mục có cùng kiểu. 

<span class="gp"> </span><span class="n">squares</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">9</span><span class="p">,</span> <span class="mi">16</span><span class="p">,</span> <span class="mi">25</span><span class="p">]</span> <span class="gp"> </span><span class="n">squares</span> <span class="go">[1, 4, 9, 16, 25]</span>

Giống như chuỗi (và các kiểu dữ liệu dạng chuỗi tuần tự (sequence type) khác), list có thể được đánh số và cắt lát:

squares[0] # lập chỉ mục trả về một mục 1 squares[-1] 25 squares[-3:] # cắt list trả về một list mới [9, 16, 25]

Mọi hành động cắt list đều trả về list mới chứa những yếu tố được yêu cầu. Nếu thực hiện hành động cắt sau thì nó sẽ trả về một list mới là bản sao của list ban đầu:

<span class="gp"> </span><span class="n">squares</span><span class="p">[:]</span> <span class="go">[1, 4, 9, 16, 25]</span>

List cũng hỗ trợ các hoạt động như nối list:

<span class="gp"> </span><span class="n">squares</span> <span class="o">+</span> <span class="p">[</span><span class="mi">36</span><span class="p">,</span> <span class="mi">49</span><span class="p">,</span> <span class="mi">64</span><span class="p">,</span> <span class="mi">81</span><span class="p">,</span> <span class="mi">100</span><span class="p">]</span> <span class="go">[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]</span>

Không giống như chuỗi, bị gán cố định, list là kiểu dữ liệu có thể thay đổi. Ví dụ, bạn có thể thay đổi các mục trong list:

cubes = [1, 8, 27, 65, 125] # có vẻ sai sai 4 ** 3 # lập phương của 4 là 64, không phải 65! 64 cubes[3] = 64 # thay thế giá trị sai cubes [1, 8, 27, 64, 125]

Bạn cũng có thể cho thêm mục mới vào cuối list bằng cách sử dụng các phương thức, chẳng hạn như append():

<span class="gp"> </span><span class="n">cubes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mi">216</span><span class="p">)</span> <span class="c1"># thêm lập phương của 6</span> <span class="gp"> </span><span class="n">cubes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mi">7</span> <span class="o">**</span> <span class="mi">3</span><span class="p">)</span> <span class="c1"># và lập phương của 7</span> <span class="gp"> </span><span class="n">cubes</span> <span class="go">[1, 8, 27, 64, 125, 216, 343]</span>

Việc gán cho lát cũng có thể thực hiện và thậm chí có thể thay đổi cả kích thước của list hay xóa nó hoàn toàn:

<span class="gp"> </span><span class="n">letters</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'a'</span><span class="p">,</span> <span class="s1">'b'</span><span class="p">,</span> <span class="s1">'c'</span><span class="p">,</span> <span class="s1">'d'</span><span class="p">,</span> <span class="s1">'e'</span><span class="p">,</span> <span class="s1">'f'</span><span class="p">,</span> <span class="s1">'g'</span><span class="p">]</span> <span class="gp"> </span><span class="n">letters</span> <span class="go">['a', 'b', 'c', 'd', 'e', 'f', 'g']</span> <span class="gp"> </span><span class="c1"># thay thế vài giá trị</span> <span class="gp"> </span><span class="n">letters</span><span class="p">[</span><span class="mi">2</span><span class="p">:</span><span class="mi">5</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'C'</span><span class="p">,</span> <span class="s1">'D'</span><span class="p">,</span> <span class="s1">'E'</span><span class="p">]</span> <span class="gp"> </span><span class="n">letters</span> <span class="go">['a', 'b', 'C', 'D', 'E', 'f', 'g']</span> <span class="gp"> </span><span class="c1"># giờ thì xóa chúng</span> <span class="gp"> </span><span class="n">letters</span><span class="p">[</span><span class="mi">2</span><span class="p">:</span><span class="mi">5</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span> <span class="gp"> </span><span class="n">letters</span> <span class="go">['a', 'b', 'f', 'g']</span> <span class="gp"> </span><span class="c1"># xóa list bằng cách thay tất cả các phần tử bằng một list rỗng</span> <span class="gp"> </span><span class="n">letters</span><span class="p">[:]</span> <span class="o">=</span> <span class="p">[]</span> <span class="gp"> </span><span class="n">letters</span> <span class="go">[]</span>

Hàm len() cũng có thể áp dụng với list:

<span class="gp"> </span><span class="n">letters</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'a'</span><span class="p">,</span> <span class="s1">'b'</span><span class="p">,</span> <span class="s1">'c'</span><span class="p">,</span> <span class="s1">'d'</span><span class="p">]</span> <span class="gp"> </span><span class="nb">len</span><span class="p">(</span><span class="n">letters</span><span class="p">)</span> <span class="go">4</span>

Bạn cũng có thể tạo các danh sách lồng nhau (danh sách chứa trong danh sách), ví dụ:

<span class="gp"> </span><span class="n">a</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'a'</span><span class="p">,</span> <span class="s1">'b'</span><span class="p">,</span> <span class="s1">'c'</span><span class="p">]</span> <span class="gp"> </span><span class="n">n</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">]</span> <span class="gp"> </span><span class="n">x</span> <span class="o">=</span> <span class="p">[</span><span class="n">a</span><span class="p">,</span> <span class="n">n</span><span class="p">]</span> <span class="gp"> </span><span class="n">x</span> <span class="go">[['a', 'b', 'c'], [1, 2, 3]]</span> <span class="gp"> </span><span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="go">['a', 'b', 'c']</span> <span class="gp"> </span><span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="go">'b'</span>

2.  Bước đầu tiên hướng tới lập trình

Tất nhiên, chúng ta có thể sử dụng Python cho những tác vụ phức tạp hơn là thêm vài phần tử vào chuỗi. Ví dụ, có thể viết một chuỗi con của dãy Fibonacci (dãy vô hạn các số tự nhiên bắt đầu bằng hai phần tử 0 và 1 hoặc 1 và 1, các phần tử sau đó được thiết lập bằng cách cộng hai phần tử trước nó lại) như sau:

# Dãy Fibonacci: ... # tổng của hai phần tử tạo nên phần tử tiếp theo ... a, b = 0, 1 while b < 10: ...  print(b) ...  a, b = b, a+b ... 1 1 2 3 5 8

Ví dụ này giới thiệu một số tính năng mới:

<span class="gp"> </span><span class="n">i</span> <span class="o">=</span> <span class="mi">256</span><span class="o">*</span><span class="mi">256</span> <span class="gp"> </span><span class="nb">print</span><span class="p">(</span><span class="s1">'The value of i is'</span><span class="p">,</span> <span class="n">i</span><span class="p">)</span> <span class="go">The value of i is 65536</span>

Có thể sử dụng thêm đối số end cho hàm print() để tránh thêm dòng mới trong kết quả đầu ra hoặc kết thúc kết quả với một chuỗi khác:

<span class="gp"> </span><span class="n">a</span><span class="p">,</span> <span class="n">b</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">1</span> <span class="gp"> </span><span class="k">while</span> <span class="n">b</span> <span class="o"><</span> <span class="mi">1000</span><span class="p">:</span> <span class="gp">... </span> <span class="nb">print</span><span class="p">(</span><span class="n">b</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="s1">','</span><span class="p">)</span> <span class="gp">... </span> <span class="n">a</span><span class="p">,</span> <span class="n">b</span> <span class="o">=</span> <span class="n">b</span><span class="p">,</span> <span class="n">a</span><span class="o">+</span><span class="n">b</span> <span class="gp">...</span> <span class="go">1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,</span>

Đến đây các bạn đã bắt đầu hình dung được phần nào về Python rồi đúng không? Hãy cùng chờ đón những bài học tiếp theo về các câu lệnh, cấu trức dữ liệu trong Python nhé. Bài trước: Tìm hiểu chương trình Python đầu tiên

TIN LIÊN QUAN

Lệnh pass trong python

Trong bài trước bạn đã biết cách dùng lệnh continue và lệnh break trong Python để thay đổi vòng lặp. Trong phần này chúng ta sẽ tiếp tục một lệnh khác, lệnh pass trong Python, dùng như một placeholder (trình giữ chỗ) cho việc thực thi các hàm, vòng

Tìm hiểu chương trình Python đầu tiên

Trong bài viết này chúng ta cùng tìm hiểu một chương trình Python đơn giản để có cái nhìn rõ hơn một chút về Python, trước khi bắt đầu học về các thành phần chính của ngôn ngữ lập trình này nhé.

Cách cài đặt Python trên Windows, macOS, Linux

Để bắt đầu làm quen với Python, trước tiên bạn cần cài đặt Python trên máy tính đang dùng, có thể là Windows, macOS hoặc Linux. Dưới đây là hướng dẫn cài đặt Python trên máy tính, cụ thể cho từng hệ điều hành.

Python là gì?Tại sao nên chọn Python?

Python là ngôn ngữ lập trình hướng đối tượng, cấp cao, mạnh mẽ, được tạo ra bởi Guido van Rossum. Python dễ dàng để tìm hiểu và đang nổi lên như một trong những ngôn ngữ lập trình nhập môn tốt nhất cho người lần đầu tiếp xúc với ngôn ngữ lập trình.

Hơn 100 bài tập Python có lời giải(code mẫu )

Hơn 100 bài tập Python kèm code mẫu được anh chàng zhiwehu chia sẻ trên Github, tuy nhiên, lời giải của loạt bài tập này được viết trên phiên bản Python đã cũ. Sau đây Quản Trị Mạng sẽ Việt hóa và chỉnh sửa để phù hợp với bản Python 3.x giúp các bạn

Những vấn đề cần nắm bắt khi bắt đầu học lập trình máy tính

Lập trình thật vui và vô cùng hữu dụng. Với lập trình, bạn sẽ được thỏa sức sáng tạo cùng nhiều cơ hội việc làm rộng mở. Nếu muốn học cách lập trình, hãy đọc chỉ dẫn dưới đây để nắm được nơi bạn cần đi và những gì mà bạn cần học.

Cách viết chữ gây ấn tượng trên Facebook

Chúng ta thường thấy một số bài viết trên Facebook có những phông chữ rất ấn tượng, trong khi đó phần soạn thảo của Facebook thì không có tính năng chỉnh sửa font chữ. Bạn muốn viết chữ gạch chân trên Facebook , hoặc chữ in đậm, in nghiêng trên

THỦ THUẬT HAY

15 mẹo chụp ảnh đơn giản giúp người không chuyên cũng trở thành một nhiếp ảnh gia chuyên nghiệp

Bạn đam mê chụp ảnh, thế nhưng lại không đủ kinh tế để có thể đầu tư vào những thiết bị nhiếp ảnh chuyên nghiệp. Vậy làm sao để sáng tạo ra được những bức ảnh đẹp?

Cách tải và cài Outlast về máy tính, game bệnh viện kinh hoàng

Outlast là tựa game kinh dị được game thủ đón nhận với cốt truyện hấp dẫn kèm theo cách chơi kinh dị gây ám ảnh. Nếu bạn là một fan của các dòng game kinh dị thì không nên bỏ qua tựa game này cũng như tải Outlast và

Chuyển danh bạ từ iPhone sang Android nhanh chóng và đơn giản

Đa phần người dùng iOS hiện tại đều đã có tài khoản iCloud, và chúng ta sẽ tận dụng để tải xuống tệp danh bạ cho việc đồng bộ sang Android - Hoặc nếu đã sao lưu danh bạ bằng itunes, bạn có thể sử dụng file vcf có sẵn

Cách dịch chuyển trong Blade and Soul, di chuyển nhanh trong Blade & Soul

Không phải ai mới chơi Blade and Soul cũng biết cách dịch chuyển trong tựa game này, thay vì phải chạy bộ, khinh công rất mất thời gian thì người chơi có thể lựa chọn dịch chuyển để có thể nhanh chóng tới nơi cần đến.

Hướng dẫn tắt rung phím home trên các máy Meizu

Bài viết dưới đây sẽ hướng dẫn bạn tắt tính năng rung khi chạm phím home trên các máy Meizu, nhằm hạn chế điện năng tiêu thụ, kéo dài thời gian sử dụng pin.

ĐÁNH GIÁ NHANH

Trên tay MSI P65: Thiết kế Max-Q mỏng nhẹ, cấu hình mạnh nhưng không dành cho game thủ

MSI luôn được biết đến là nhà sản xuất các thiết bị dành cho game thủ nổi tiếng với những sản phẩm thường có thiết kế hầm hố, cấu hình mạnh mẽ đủ sức cân được những tựa game đồ hoạ nặng. Nhưng hãng sẽ không chỉ dừng

Chi tiết Yamaha Exciter 2019 với nhiều nâng cấp đáng giá

Về thiết kế tổng thể Exciter 150 New không khác biệt nhiều so với thế hệ trước đó, điếm nhấn chính của mẫu xe mới đến từ cụm đèn pha sử dụng công nghệ LED có tạo hình vô cùng ấn tượng, gồm 3 choá đèn nhỏ ở bên trong

Trên tay OPPO A55: Smartphone giá chưa đến 5 triệu đồng đẹp ngất ngây lại chống nước, pin trâu, camera khủng 50MP

OPPO A55 đã chính thức ra mắt tại Việt Nam với giá bán 4,99 triệu đồng. Máy được trang bị những thông số ấn tượng và vượt trội so với các đối thủ cùng phân khúc giá. Ngay bây giờ hãy cùng mình trên tay OPPO A55 và khám