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 int
và float
, Python hỗ trợ thêm 2 loại số nữa là Decimal
và Fraction
. 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