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

Đăng ký dữ liệu 4G lướt web, Facebook và YouTube miễn phí dành cho SIM MobiFone và Viettel

Với những lợi ích của SIM 4G mang lại như: dễ sử dụng, tốc độ truy cập vượt trội... Chắc chắn bạn cũng mong muốn trải nghiệm tốc độ mạng 4G như thế nào? Tuy nhiên phí đăng ký 4G khá là cao, nhưng bây giờ TECHRUM chia

Cách đổi giao diện bàn phím iPhone, iPad không cần Jailbreak

Chỉ với vài thao tác, bạn đã có thể tự mình thay đổi giao diện bàn phím ảo trên iPhone, iPad cực kì dễ dàng không cần Jailbreak máy.

Bật tính năng tự động dọn dẹp trong Disk Cleanup trên Windows 10 October

Thông thường, bạn phải làm một cách thủ công, tuy nhiên bây giờ TCN hướng dẫn bạn cài đặt tính năng tự động dọn dẹp trong Disk Cleanup trên Windows 10 October.

Hướng dẫn cách hẹn giờ gửi email trên iPhone/ iPad

Thủ thuật hẹn giờ gửi email trên iPhone, iPad là vô cùng cần thiết khi chúng ta cần gửi email cho khách hàng đúng giờ hay gửi emal chúc mừng sinh nhật… Việc này sẽ rất hữu ích khi bạn chỉ cần soạn trước nội dung và

5 cách tăng tốc độ cho mạng internet đơn giản với CMD

Có rất nhiều nguyên nhân gây suy giảm tốc độ mạng của internet như trùng ip, không phân giải được tên miền, kẹt VPN...và cũng có rất nhiều hướng giải quyết vấn đề này.

ĐÁNH GIÁ NHANH

Trên tay nhanh Zenfone Max Plus M1: Smartphone fullview đầu tiên của Asus

Zenfone Max Plus M1 là một trong những siêu phẩm đầu tiên mang tính đột phá về thiết kế của Asus. Cùng xem bài trên tay đánh giá Zenfone Max Plus M1 nhanh sau đây.

Trên tay điện thoại Samsung Galaxy A32 5G : Phân khúc 5G giá rẻ

Samsung Galaxy A32 5G có thân máy được làm từ chất liệu nhựa cứng với bốn cạnh bo tròn nhẹ giống với các model thuộc dòng Galaxy A của Samsung. Chiếc máy có 4 tùy chọn màu sắc khác nhau là

So sánh cấu hình hai đại diện nổi bật nhất phân khúc cận cao cấp: HTC U11 EYEs và OPPO R11s

Chúng ta chắc chắn đã rất ấn tượng với mẫu smartphone vừa ra mắt cách đây không lâu của HTC là U11 EYEs khi sản phẩm này được kế thừa toàn bộ thiết kế cũng như khả năng chụp hình ấn tượng của U11 Plus và được bổ sung