Tải bản đầy đủ (.pdf) (86 trang)

giáo trình lập trình python cơ bản nghề tin học ứng dụng cao đẳng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.31 MB, 86 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>TR¯äNG CAO ĐẲNG BÁCH KHOA NAM SÀI GÒN </b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

Tài liáu này thuộc lo¿i sách giáo trình nên các ngn thơng tin có thÅ đ°ợc phép dùng nguyên bÁn hoÁc trích dùng cho các mục đích và đào t¿o và tham khÁo.

Mọi mục đích khác mang tính lách l¿c hoÁc sā dụng với mục đích kinh doanh thiÁu lành m¿nh s¿ bị nghiêm cÃm.

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

Môn học này thuộc khái kiÁn thức chun mơn nghà trong ch°¢ng trình đào t¿o ngành tin học ứng dụng há cao đẳng. LÁp trình Python c¢ bÁn là mơn học bắt buộc trong ch°¢ng trình ngành Tin học ứng dụng trình độ cao đẳng.

Nội dung giáo trình gãm 8 ch°¢ng:

- Ch°¢ng 1: Tång quan và lÁp trình python

- Ch°¢ng 2: Phép tốn c¢ bÁn, biÁn và nhÁp xt trong python - Ch°¢ng 3: CÃu trúc điÃu khiÅn, vịng lÁp và cÃu trúc dữ liáu mÁng - Ch°¢ng 4: Numpy

- Ch°¢ng 5: Sets và dictionaries - Ch°¢ng 6. Strings

- Ch°¢ng 7.Hàm

- Ch°¢ng 8. Lỗi v sa lỗi

Trong quỏ trỡnh biờn son chúng tôi đã kÁt hợp kinh nghiám giÁng d¿y trong nhiÃu năm của nhóm tác giÁ với mong muán có thÅ giúp cho học sinh – sinh viên dß dàng nắm bắt đ°ợc nội dung của môn học. MÁc dù, rÃt cá gắng trong quá trình biên so¿n, nh°ng chắc chắn khơng thÅ tránh khßi những thiÁu sót, vì vÁy, nhóm tác giÁ chúng tơi rÃt mong nhÁn đ°ợc ý kiÁn đóng góp của b¿n đọc đÅ giáo trình ngày một hồn thián h¢n.

Tp.HCM , ngày 30 tháng 01 năm 2022 Tham gia biên so¿n

1. Chủ biên: ThS Đào Thị Xuân H°ßng 2. &&&&

3. &&&&. &&&&&

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>Contents </b>

Ch°¢ng 1. TäNG QUAN VÂ LÀP TRÌNH PYTHON ... 1

1.1. Tång quan và ngơn ngữ lÁp trình python ... 1

1.2. Lịch sā phát triÅn Python ... 2

1.3. Cài đÁt, cÃu hình python ... 2

1.4. Một sá lßi khun hữu ích cho những ng°ßi mới... 7

3.5. Break, continue và pass ... 36

Bài tÁp có lßi giÁi ... 36

Bài tÁp thực hành ... 38

Ch°¢ng 4. NUMPY ... 40

4.1. Giới thiáu Numpy ... 40

4.2. Cài đÁt th° vián numpy... 40

4.3. Numpy arrays ... 41

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

7.3. BiÁn đo¿n code bÃt kỳ thành hàm ... 64

Bài tÁp có lßi giÁi ... 66

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>Tên mơn hác/mơ đun: LÁp Trình Python CÂ Bn Mó mụn hỏc/mụ un: MH30 </b>

<b>Vò trớ, tớnh chÃt, ý nghĩa và vai trị cÿa mơn hác/mơ đun: </b>

<b>- Vß trí: : Mơn học này thuộc khái kiÁn thức chun mơn, bắt buộc trong ch°¢ng trình đào t¿o bÁc cao đẳng ngành Tin học ứng dụng. </b>

<b>- Tính chÃt: là mơn học bắt buộc. Mơn học nhằm giúp sinh viên b°ớc đầu làm </b>

quen với mơi tr°ßng lÁp trình python, sinh viên thực hián nhiÃu ví dụ đÅ nắm rõ h¢n các kỹ tht lÁp trình nhằm xây dựng ứng dụng ch¿y trên nhiÃu nÃn tÁng khác

<b>nhau. </b>

<b>- Ý nghĩa và vai trị cÿa mơn hác/mơ đun: </b>

<b> Ý nghĩa: Python hián là ngôn ngữ lÁp trình phå biÁn nhÃt thÁ giới. ¯u điÅm </b>

nåi bÁt của Python là dß học, dß viÁt. Khơng những thÁ, Python cịn có một cộng đãng ng°ßi dùng lớn và há tháng th° vián mã nguãn má đã sộ giúp b¿n hồn thành các dự án của mình nhanh chóng và hiáu quÁ. Cho dù đó là một dự án và phân tích dữ liáu, học máy, xā lý Ánh, game, điÃu khiÅn thiÁt bị, hoÁc chỉ đ¢n giÁn là tự động hóa các tác vụ trên máy tính của b¿n, thì gần nh° b¿n đÃu có thÅ tìm thy cỏc th viỏn Python hỗ tr.

<b> Vai trị: Mơn học này áp dụng cho sinh viên ngành Tin học ứng dụng trình độ Cao đẳng. </b>

<b>Māc tiêu cÿa môn hác/mô đun: - VÁ ki¿n thāc: </b>

+ Nắm vững cú pháp khai báo biÁn, cÃu trúc điÃu khiÅn, cÃu trúc lÁp + Trình bày đ°ợc cú pháp t¿o hàm

+ Làm viác đ°ợc với tÁp tin và th° mục

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<i>GVBS: Đào Thị Xuân Hường Trang 1 </i>

<b>Ch°¢ng 1. TàNG QUAN VÀ LÀP TRÌNH PYTHON </b>

<i>Mục tiêu: Sau khi học xong chương này sinh viên có thể: </i>

- Trình bày đ°ợc khái niám và biÁn, tốn tā và các hàm toán học; - Áp dụng đÅ viÁt mã và thi hành ch°¢ng trình đ¢n giÁn

<b>1.1. Táng quan vÁ ngơn ngữ lÁp trình python </b>

Python là một ngơn ngữ lÁp trình cÃp cao và đa dụng (general- purpose) đ°ợc phát triÅn bái Guido van Rossum. Phiên bÁn đầu tiên của nó đ°ợc phát hành vào năm 1991. Tên của nó đ°ợc đÁt theo ch°¢ng trình hài Monty Python<small>1</small> của Anh nh° một cách phÁn ánh triÁt lý thiÁt kÁ của Python: một ngơn ngữ lÁp trình thú vị khi sā dụng.

<i><b>HÌNH 1-1 <small>Logo cÿa Python.</small></b></i>

TriÁt lý của ngơn ngữ lÁp trình Python đ°ợc mơ tÁ bằng những cách ngôn trong tài liáu The Zen of Python (PEP 20) nh°:

Simple is better than complex (t¿m dịch: Đ¢n giÁn tát h¢n phức t¿p). Complex is better than complicated (t¿m dịch: Phức hợp tát h¢n phức t¿p). Explicit is better than implicit (t¿m dịch: T°ßng minh tát h¢n là ngầm định). Readability counts (t¿m dịch: L°u tâm đÁn sự dß đọc hiÅu).

Với những triÁt lý đó, Python h°ớng tới sự đ¢n giÁn, ngắn gọn trong mã lánh của mình. B¿n s¿ cÁm nhÁn đ°ợc điÃu này khi bắt đầu lÁp trình với Python và so sánh nó với các ngơn ngữ nh° C/C++, Java.

ĐÁn nay, Python đã đ°ợc phát triÅn qua nhiÃu phiên bÁn. Hai nhóm phiên bÁn đ°ợc sā dụng hián nay là Python 2.x và Python 3.x. Tuy nhiên, các phiên bÁn 2.x đã khơng cịn

<small>1 Theo General Python FAQ, docs.python.org </small>

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<i>GVBS: Đào Thị Xuân Hường Trang 2 </i>

đ°ợc hỗ tr y t ngy 1/1/20201. Phiờn bn mi nhÃt của Python là 3.10 (phát hành ngày 4/10/2021)<small>2</small>.

<b>1.2. Lßch sử phát triÃn Python</b>

<b><small>3</small></b>

Python đ°ợc bắt đầu phát triÅn vào cuái những năm 1980 bái Guido van Rossum t¿i Centrum Wiskunde & Informatica (CWI), Hà Lan nh° một ngôn ngữ kÁ thÿa của ngơn ngữ lÁp trình ABC có khÁ năng xā lý ngo¿i lá và giao tiÁp với há điÃu hành Amoeba. Python đ°ợc bắt đầu phát triÅn vào tháng 12 năm 1989. Vào thßi điÅm đó, van Rossum là tác giÁ duy nhÃt của dự án, với t° cách là nhà phát triÅn chính, cho đÁn ngày 12 tháng 7 năm 2018. Vào tháng 1 năm 2019, các nhà phát triÅn cát lõi Python đã bầu ra một Hội đãng chỉ đ¿o gãm năm thành viên đÅ lãnh đ¿o dự án.

Python 2.0 đ°ợc phát hành vào ngày 16 tháng 10 năm 2000, với nhiÃu tính năng mới. Python 3.0, đ°ợc phát hành vào ngày 3 tháng 12 nm 2008, vi nhiu tớnh nng chớnh vn hỗ trợ ng°ợc Python 2.6.x và 2.7.x. Các bÁn phát hành của Python 3 tích hợp tián ích 2to3 giúp dịch mã tự động tÿ Python 2 sang Python 3.

Python 2.7 ban đầu đ°ợc chỉ định s¿ chÃm dứt ho¿t động vào năm 2015, nh°ng sau đó bị hỗn l¿i đÁn năm 2020 vì những lo ng¿i và viác chuyÅn đåi các code Python 2 hián có sang Python 3. Tÿ thßi điÅm đó, Python 2 khơng nhÁn đ°ợc thêm bÃt kỳ bÁn vá bÁo mÁt hoÁc cÁi tiÁn nào na.

Sau khi Python 2 b ngng hỗ tr, ch cịn Python 3.6.x và các phiên bÁn mới h¢n đ°ợc hỗ tr. Mt thòi gian sau, Python 3.6 cng b ngng hỗ tr. n nm 2021, Python 3.9.2 v 3.8.8 đ°ợc phát triÅn vì tÃt cÁ các phiên bÁn Python tr°ớc (bao gãm 2.7) đÃu có vÃn đà bÁo mÁt có thÅ khiÁn máy tính bị thực thi mã tÿ xa và nhißm độc bộ nhớ web cache. Vào năm 2022, Python 3.10.4 và 3.9.12 đ°ợc phát triÅn và các bÁn cũ h¢n bao gãm 3.8.13 và 3.7.13 đ°ợc cÁp nhÁt vì nhiÃu vÃn đà bÁo mÁt.

<b>1.3. Cài đ¿t, cÃu hình python </b>

Có nhiÃu cách khác nhau đÅ lÁp trình với Python. Phần này mơ tÁ ba cách phù hợp với các nhóm ng°ßi dùng với điÃu kián và thiÁt bị khác nhau.

Cách 1. LÁp trình Python trên máy tính sā dụng VS Code

<small>2 Theo PEP 619 -- Python 3.10 Release Schedule </small>

<small>3 Theo </small>

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<i>GVBS: Đào Thị Xuân Hường Trang 3 </i>

NÁu b¿n sá hữu một máy tính cá nhân thì nên dùng cách này đÅ tÁn dụng đ°ợc đầy đủ chức năng của Python một cách thuÁn tián.

Tr°ớc tiên, b¿n cần cài đÁt trình biên dịch Python (Python interpreter). Nên chọn phiên bÁn Python 3.7 hoÁc mới h¢n. <small>4</small>Một l°u ý khi cài đÁt Python intepreter là b¿n nên tick vào ô <Add Python ... to PATH= á cāa så cài đÁt đầu tiên (xem Hình 1-2).

Sau khi đã cài đÁt xong trình biên dịch Python, b¿n nên cài đÁt một editor (trình so¿n thÁo) hoÁc một IDE (Integrated Development Environment) lp trỡnh Python c dò dng hÂn. Cú nhiu editor, IDE khỏc nhau hỗ tr lp trỡnh Python. Trong giáo trình này, chúng tơi khun nghị sā dụng Visual Studio Code <small>5</small>

(VS Code). Editor này có các °u im nh:

Miòn phớ, mó nguón mỏ, hỗ tr nhiÃu nÃn tÁng (Windows, Linux, Mac).

 IntelliSense: giúp viÁt code nhanh chóng h¢n bằng cách đ°a ra các lựa chn t ng hon thnh code cho bn.

Hỗ tr tỡm v sa lỗi (debug) hiỏu qu.

Nhiu extension hữu ích: nh° kÁt nái với Git, đọc file Jupyter Notebook (.ipynb), hỗ tr Docker.

<i><b>HèNH 1-1 Lu ý: Khi cài đặt Python nên tick vào ô Add Python ... to PATH để thuận tiện chạy các Scripts Python về sau.. </b></i>

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<i>GVBS: Đào Thị Xuân Hường Trang 4 </i>

<i><b>HÌNH 1-2- Giao diện cÿa Visual Studio Code </b></i>

Sau khi cài đÁt VS Code xong, b¿n nên thực hián các b°ớc sau đÅ t¿o một file code Python đầu tiên và cũng VS Code hon tt ci t cỏc extension hỗ trợ lÁp trình Python.

- Chọn File > Open Folder&

- T¿o mới hoÁc chọn một th° mục rãi nhÃn Select Folder. L°u ý: đái với máy tính sā dụng Windows, b¿n nên chọn một th° mục trong å D: hoÁc một å đĩa mà b¿n có đầy đủ quyÃn ch¿y các mã lánh. Không dùng các th° mục có tên <python= hc <code= vì có thÅ gây lỗi v sau. Tờn v òng dn th mc tỏt nhÃt là không chứa khoÁng trắng và không chứa dÃu tiÁng Viát.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<i>GVBS: Đào Thị Xuân Hường Trang 5 </i>

- NhÃn vào biÅu t°ợng và nhÁp tên file. L°u ý: Tên file phÁi có phần má rộng .py. Không nên dùng tên file python.py hoÁc code.py trỏnh b lỗi khi chy. Tờn file tỏt nhÃt là không chứa khoÁng trắng và không chứa dÃu tiÁng Viát.

- Sau khi t¿o file xong, VS Code có thÅ hßi b¿n có mn cài đÁt extension cho Python không. Hãy chọn Install

- NhÁp nội dung sau đây vào file vÿa t¿o:#%% - NhÃn Shift-Enter đÅ ch¿y.

L°u ý: Lúc này VS Code có th hòi bn muỏn ci t cỏc extension hỗ tr không, hãy chọn Install.

- NÁu kÁt quÁ hián ra nh° hình sau tức là b¿n đã hồn thành cài đÁt và ch¿y thành công đo¿n lánh Python đầu tiên.

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<i>GVBS: Đào Thị Xuân Hường Trang 6 </i>

- Chọn File > Auto Save đÅ VS Code tự động l°u code.

<b>Cách 2. LÁp trình Python trên máy tính sử dāng trình dut web </b>

NÁu b¿n sā dụng máy tính cơng cộng hc một máy tính khơng thÅ cài đÁt Python thì b¿n có thÅ sā dụng trình dut web có kÁt nái internet và truy cÁp vào địa chỉ sau đÅ lÁp trình Python:

Lu ý: Cỏch ny khụng m bo hỗ tr y đủ chức năng của Python. Chỉ nên dùng khi không thÅ cài đÁt Python và VS Code nh° cách 1.

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<i>GVBS: Đào Thị Xuân Hường Trang 7 </i>

<i><b>HÌNH 1-3. <small>Giao diện trang OnlineGDB</small></b></i>

<b>Cách 3. LÁp trình Python sử dāng smartphone </b>

Trong tr°ßng hợp khơng có máy tính, b¿n v¿n có thÅ lÁp trình Python bằng cách sā dụng smartphone và cài đÁt ứng dụng Pydroid 3 (hoÁc một ứng dụng t°¢ng tự). L°u ý: cách này khơng đ°ợc khun khích sā dụng vỡ khụng hỗ tr tớnh nng ca Python. Ch nên sā dụng t¿m thßi cách này trong một thßi gian ngắn khi khơng thÅ dùng máy tính.

<i><b>HÌNH 1-4. Āng dụng Pydroid 3 trên Google Play </b></i>

<b>1.4. Mát sß låi khun hữu ích cho những ng°åi mãi </b>

LÁp trình là một kỹ năng. Vì vÁy nÁu muán lÁp trình tát khơng có cách nào khác ngồi thực hành. Tự mình thực hành càng nhiÃu càng tát!

Một sá kinh nghiám khi luyán lÁp trình:

- CÁm thÃy không hiÅu rõ khi lần đầu học và một khái niám, kỹ năng lÁp trình. ĐiÃu này là hồn tồn bình th°ßng! B¿n chỉ cần bß thêm chút thßi gian xem l¿i một vài lần, rãi tự mình ngãi code l¿i nội dung đ°ợc học thì s¿ dần dần hiÅu rõ.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<i>GVBS: Đào Thị Xuân Hường Trang 8 </i>

- ThÁm chí đơi khi b¿n đã rÃt cá gắng mà v¿n cÁm thÃy khơng hiÅu rõ hÁt. Khơng sao cÁ! Có một hián t°ợng là: d°ßng nh° não của chúng ta tự động tång hợp kiÁn thức mà nó tÿng biÁt qua. Sau một học kỳ, hoÁc vài tháng, thÁm chí một năm sau, b¿n s¿ ng¿c nhiên khi gÁp l¿i kiÁn thức lúc tr°ớc b¿n thÃy bÁ tắc: lúc này b¿n hiÅu nó rÃt rõ ràng! Vì vÁy, đÿng ng¿i khi học qua một lần mà ch°a hiÅu rõ.

- Keep learning!

- Những lần đầu lÁp trình đơi khi giáng học thuộc lòng, sao chép code. Tức là b¿n xem code m¿u rãi gõ l¿i giáng nh° vÁy. ĐiÃu này cũng hồn tồn bình th°ßng! Học thuộc ln ln là một phần của viác thu n¿p kiÁn thức. - Đÿng ng¿i ngãi gõ l¿i code m¿u. Tự mình gõ l¿i code khác xa với viác ngãi nhìn code và nghĩ rằng mình hiÅu. Gõ l¿i code giúp b¿n trÁi nghiám lÁp trình. Khi b¿n gõ và ch¿y code, b¿n s¿ tự nhiên ghi nhớ, t° duy và phát hiỏn cỏc lỗi, cỏc vn trong on lỏnh. Bn s¿ hiÅu nó cÁn k¿ và tÿ tÿ s¿ tự viÁt đ°ợc các đo¿n code theo ý mình.

- Internet cú th rt hu ớch. Nu gp nhng lỗi khó hiÅu khi lÁp trình, hc nghĩ mãi ch°a ra cách lÁp trình cho một vÃn đÃ, b¿n có thÅ thā google. NhiÃu khÁ năng b¿n s¿ tìm đ°ợc lßi giÁi tÿ các dißn đàn, các bài viÁt và lÁp trình.

Tuy nhiên, đÿng l¿m dụng! Lúc nào cũng tra google tr°ớc khi tự mình tìm cách giÁi quyÁt, hoÁc chỉ copy code mà khơng hiÅu, chắc chắn s¿ có h¿i cho b¿n! Ngoài ra, b¿n cũng nên cẩn thÁn với vÃn đà đ¿o văn (plagiarism). Nên tìm hiÅu và quy định bÁn quyÃn của đo¿n code mà b¿n định sā dụng và nhớ phÁi ghi nguãn.

- Thực hành càng nhiÃu càng tát!

<b>1.5. Các āng dāng hß trÿ lÁp trình python (IDE) </b>

- PyCharm Phn mm hỗ tr lp trỡnh Python hiỏu quÁ

PyCharm là một trong những phần mÃm đa nÃn tÁng có thÅ sā dụng các há điÃu hành nh° Windows, macOS v Linux. Chỳng c dựng hỗ tr lÁp trình Python. PyCharm chứa API mà các nhà phát triÅn có thÅ sā dụng đÅ viÁt các plugin Python của riêng họ. Thơng qua đó, họ có thÅ má rộng thêm các chức năng c¢ bÁn.

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<i>GVBS: Đào Thị Xuân Hường Trang 9 </i>

Link download: - Spyder – IDE hỗ tr nhiu tiỏn ớch

õy l phn mm hỗ trợ code Python sá hữu rÃt nhiÃu tính năng hữu ích giúp xây dựng ứng dụng nhanh chóng. Spyder đ°ợc thiÁt kÁ đÅ tích hợp với các phần mÃm má nguãn nh° Matplotlib, SciPy, NumPy, Pandas, SymPy& Phần mÃm này hon ton miòn phớ v hỗ tr a dng cỏc há điÃu hành nh° Windows, mac OS hay Linux.

<i><b>1-5. Spyder </b></i>

<b>Python Spyder IDE </b>

Sn phm phn mm ny hỗ trợ các tính năng hữu ích nh° ch¿y mã Python theo ơ, dịng hc theo file, v¿ biÅu đã hc chuỗi thòi gian. Ngoi ra, Spyder cũn cú kh năng thực hián thay đåi trong khung ngày hoÁc mÁng numpy. Chúng giúp mã code hồn thành nhanh chóng, phát hiỏn lỗi chớnh xỏc.

Link download Spyder: - Phần mÃm Pydev

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<i>GVBS: Đào Thị Xuân Hường Trang 10 </i>

Đây là một IDE hỗ tr lp trỡnh Python khỏ Ân gin vi vai trị là một trình thơng dịch m¿nh. SÁn phẩm phần mÃm chủ yÁu tÁp trung vào viác tái cÃu trỳc ca mó python, khc phc lỗi trong lp trỡnh giao dián, phân tích mã,&

<i><b>1-6. Pydev là một phần mềm tích hợp Django sở hữu nhiều tính năng nổi bật như gợi ý kiểu, tái cấu trúc, gỡ lỗi và phân tích mã, hỗ trợ mypy, định dạng màu đen và mơi trường ảo và phân tích chuỗi f. Ngồi ra, PyDev cịn hỗ trợ tích hợp PyLint, hỗ trợ bảng điều khiển tương tác, tích hợp Unittest cùng trình gỡ lỗi từ xa… </b></i>

Link tÁi phần mÃm Pydev : - Phần mÃm IDLE

L mt trong nhng phn mm hỗ tr lp trỡnh tát nhÃt cho Python, IDLE đã đ°ợc tích hợp với ngơn ngữ mÁc định IDLE – là một mơi tr°ßng phát triÅn tích hợp phå biÁn đ°ợc viÁt bằng Python và nó đã đ°ợc tích hợp với ngơn ngữ mÁc định. Phần mÃm này đ°ợc sā dụng hầu hÁt bái các nhà phát triÅn với trình độ c¢ bÁn, mn thực hành python nên khá đ¢n giÁn. NÁu b¿n muán tìm hiÅu Python, đây là một sự lựa chọn tái u.

IDLE cú th hỗ tr son tho vn bn đa cāa så với nhiÃu tính năng nh° hồn tác, tơ sáng đo¿n mã đã chọn, thụt đầu dịng thơng minh. Ngoi ra, cụng c cng giỳp g lỗi nhanh chóng t¿i các điÅm dÿng liên tục, chÁ độ xem ton cu. Mt khỏc cng cú kh nng hỗ tr hộp tho¿i, trình duyát hiáu quÁ.

Link tÁi phần mÃm IDLE: - Phn mm hỗ tr lp trỡnh Python Wing

NÁu b¿n đang loay hoay tìm một phần mÃm lÁp trình Python mà ch°a có lựa chọn phù hợp thì có thÅ nghĩ đÁn IDE Wing. Wing đ°ợc sā dụng khá phå biÁn với rÃt nhiÃu tính năng m¿nh m¿. Chính vì vÁy, các nhà phát triÅn khun khích sā dụng Wing đÅ lÁp trình Python. Với khÁ nng sa lỗi v trỡnh son tho vụ cựng thụng minh, Wing giúp giúp tác độ phát triÅn Python nhanh chúng v chớnh xỏc hÂn.

Phn mm hỗ tr lp trình Python Wing

Một vài tính năng nåi bÁt của Wing có thÅ kÁ đÁn là di chuyÅn xung quanh mã với định nghĩa, chỉnh sāa mục chỉ biÅu t°ợng, tỡm kim nhiu tp. Wing hỗ tr phỏt trin t xa và dß dàng tùy chỉnh cũng nh° má rộng. Phần mÃm có cung cÃp phiên bÁn dùng thā 30 ngày đÅ các nhà phát triÅn có thÅ trÁi nghiám các tính năng của nó.

Link tÁi Wing:

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<i>GVBS: Đào Thị Xuân Hường Trang 11 </i>

<b>Ch°¢ng 2. PHÉP TỐN C¡ BÀN, BI¾N VÀ NHÀP XUÂT TRONG PYTHON </b>

<i>Mục tiêu: Sau khi học xong chương này sinh viên có thể: </i>

- Trình bày đúng cú pháp khai báo biÁn

- Khai báo biÁn đúng cú pháp và đúng kiÅu dữ liáu - Sā dụng đ°ợc các toán tā c¢ bÁn trong python

Ch°¢ng này giúp ng°ßi học làm quen với các phép tốn c¢ bÁn, khái niám biÁn (variables) trong lÁp trình và các hàm c¢ bÁn đÅ nhÁp xuÃt dữ liáu trong Python.

<b>2.1. Sử dāng VS Code </b>

Phần này demo một sá cách thực thi lánh Python với VS Code. B¿n có thÅ tÁn dụng những cách này đÅ biÁn VS Code với Python thành một cơng cụ tính tốn nh° máy tính cầm tay (calculator).

L°u ý: Tr°ớc khi có thÅ ch¿y code Python trong VS Code, b¿n cần Cài đÁt Python (xem mục 1.3 Cài đÁt Python).

Sau đây giới thiáu ba cách thực thi lánh Python trong VS Code.

<b>Cách 1. T¿o và thực thi cell </b>

ĐÅ t¿o một cell, b¿n dùng cú pháp #%% Tên gợi nhớ cho cell nh° ví dụ sau:

ĐÅ ch¿y cell, b¿n đÁt con nháy vào 1 dòng bÃt kỳ trong cell (nằm giữa 2 đ°ßng kẻ màu xanh nh° trong hình trên), và nhÃn Run Cell (nằm á ngay phía trên dịng #%%) hc sā dụng tå hợp phím tắt Shift-Enter.

Khi b¿n ch¿y cell lần đầu tiên, VS Code s¿ load Python interpreter rãi mới thực thi code nên mÃt thßi gian một chút. Tÿ lần ch¿y thứ 2, code s¿ đ°ợc thực thi ngay vì Python interpreter đã đ°ợc load vào bộ nhớ rãi.

<b>Cách 2. Thực thi code trong cửa sá interactive </b>

ĐÅ sā dụng cách này tr°ớc tiên b¿n phÁi ch¿y ít nhÃt một cell theo cách 1 đÅ VS Code load Python interpreter và khái t¿o cāa så interactive (nh° hình d°ới).

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<i>GVBS: Đào Thị Xuân Hường Trang 12 </i>

Trong cāa så interactive, b¿n có thÅ nhÁp code vào dòng lánh (nằm d°ới cùng cāa så interactive, t¿i vị trí có ghi dịng chữ Type 8python9 code here and press Shift+Enter to run (nh° hình d°ới). Khi nhÁp xong, nhÃn Shift+Enter đÅ thực thi

<b>2.2. Các phép toán </b>

Python hỗ tr cỏc phộp toỏn c bn nh mụ tÁ trong bÁng sau

Trị tuyát đái abs() abs(-2) 2

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<i>GVBS: Đào Thị Xuân Hường Trang 13 </i>

NÁu b¿n muán tính những hàm tốn học khác nh° khai căn, l°ợng giác, thì cần sā dụng package math. Cú pháp nh° sau:

import math math.cos(3.14)

Một sá hàm toán học đ°ợc liát kê trong bÁng bên d°ới:

Cosine math.cos() math.cos(3.14) -0.9999 Sine math.sin() math.sin(2*3.14) -0.0031 Arc cosine math.acos() math.acos(1) 0 Arc sine math.asin() math.asin(-1) -1.5707 Tangent math.tan() math.tan(5) -3.3805 Trị tuyát đái math.fabs() math.fabs(-5.6) 5.6 ¯ớc chung lớn nhÃt math.gcd() math.gcd(20, 90) 10 Hàm mũ math.exp() math.exp(5) 148.4131

math.log(8) 2.0794 Hàm log math.log()

math.log(8, 2) 3 Căn bÁc 2 math.sqrt() math.sqrt(9) 3

Ghi chú: Khi cần tra cứu thông tin của một hàm, b¿n có thÅ dùng cú pháp với dÃu chÃm hßi, ví dụ: lánh math.log? s¿ hián thơng tin và hàm log.

<b>2.3. Bi¿n </b>

BiÁn (variables) là một trong những khái niám căn bÁn nhÃt trong lÁp trình. Một biÁn có thÅ xem nh° một n¢i chứa dữ liáu đ¢n giÁn, phục vụ cho các tác vụ đ°ợc lÁp trình. Ví

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<i>GVBS: Đào Thị Xn Hường Trang 14 </i>

dụ, khi viÁt ch°¢ng trình v¿ đã thị của một hàm sá bÁc 2 có d¿ng y = ax2 + bx + c, ta có thÅ t¿o ra các biÁn đÅ l°u giá trị của các há sá a, b và c.

ĐÅ t¿o ra một biÁn, b¿n cần tuân theo các quy định cú pháp (syntax) t¿o biÁn. Trong Python các quy định và biÁn nh° sau:

- ĐÅ t¿o biÁn trong Python, b¿n chỉ cần ghi tên biÁn và gán giá trị cho nó, ví dụ các dịng sau lánh (chú ý mỗi dũng lỏnh phi nm trờn mt hng riờng, dùng phím Enter đÅ xng dịng):

so1 = 4 so2 = 15

đã t¿o ra 2 biÁn có tên so1, so2 với các giá trị là 4, 15 t°¢ng ứng. Ghi chú: [Dành cho b¿n nào đã biÁt ngôn ngữ lÁp trình nh° C, C++] Python khơng u cầu khai báo biÁn hoÁc khai báo kiÅu dữ liáu cho biÁn. Khi b¿n gán giá trị cho biÁn, Python s¿ tự động xác định kiÅu dữ liáu cho biÁn đó.

- Tên biÁn phÁi bắt đầu bằng chữ cái hoÁc dÃu _ (dÃu dash t¿o ra bằng cách nhÃn tå hợp phím Shift -)

Ví dụ: các biÁn so1, _so1 và _1so là hợp lá, nh°ng biÁn 1so là không hợp lá vì bắt đầu bằng chữ sá 1.

- Tên biÁn không đ°ợc chứa khoÁng trắng hoÁc ký tự đÁc biát (ký tự đÁc biát là các ký tự không phÁi chữ cái và chữ sá (ngo¿i trÿ dÃu dash _), ví dụ @, &, ! là một sá ký tự đÁc biát).

Ví dụ: các biÁn phuongtrinh1 và phuong_trinh_1 là hợp lá, nh°ng biÁn phuong trinh1, phuongtrinh-1, phuongtrinh#1 là không hợp lá.

- Tên biÁn phÁi khác keywords của Python. Trong Python, cũng nh° các ngơn ngữ lÁp trình khác, một sá tÿ đã đ°ợc dành riêng cho các chức năng của ngơn ngữ, ví dụ if, for, while. Vì vÁy b¿n khơng đ°ợc dùng nhũng tÿ này đÁt tên biÁn. Ví dụ: các biÁn có tên if, for, break, import là khơng hợp lá vì chúng là các keywords, nh°ng các biÁn if1, for_, break_A một thì hợp lá vì có chứa thêm các ký tự khác nên khơng cịn là keywords.

Ghi chú: đÅ nhÁn biÁn một tÿ có phÁi keyword khơng, b¿n quan sát màu sắc của nó trong VS Code (VS Code tự chuyÅn tÿ thành màu xanh da trßi nÁu là keyword). Xem danh sách các keywords trong phần Phụ lục.

- Tên biÁn có phân biát chữ hoa và chữ th°ßng. Ví dụ: biÁn so1 và So1 là 2 biÁn khác nhau.

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<i>GVBS: Đào Thị Xuân Hường Trang 15 </i>

Ghi chú: mÁc dù b¿n có thÅ t¿o ra 2 biÁn so1 và So1 trong một ch°¢ng trình, tuy nhiên, một kinh nghiám viÁt code tát là b¿n nên tránh t¿o ra những biÁn q giáng nhau vì chúng dß gõy nhm ln v dò dn ti lỗi khi lp trình.

Ngồi các quy định cú pháp bắt buộc á trên, khi lÁp trình b¿n cũng nên tuân theo các kinh nghiám đÁt tên biÁn sau đây s¿ giúp code ca bn c chuyờn nghiỏp hÂn, khú b mc lỗi h¢n.

- Tránh đÁt tên biÁn trùng với tên hàm cài s¿n (built-in functions). Hàm cài s¿n là các hàm đ°ợc cung cÃp mÁc định trong Python hoÁc các packages (xem mục 4.2), ví dụ hàm print, input. Viác đÁt tên biÁn trùng với tên hàm cài s¿n s¿ lm chÂng trỡnh cú th gp lỗi khi bn gi các hàm này sau khi đã t¿o biÁn. B¿n có thÅ ch¿y thā dịng code sau:

print("Xin chao") Sau đó, ch¿y đo¿n code sau: print = 5 print("Xin chao")

ĐÅ ý rằng lần ch¿y dịng lánh print thì hàm s¿ ho¿t động bình th°ßng. Nh°ng khi ch¿y đo¿n code có dòng print = 5 (tức là ta t¿o ra biÁn tên print và gán giá trị 5 cho nó) thì hm s bỏo lỗi. x lý lỗi ny, bn ch¿y lánh del print đÅ xóa biÁn print trong bộ nhớ, khi đó hàm print s¿ ho¿t động trá l¿i.

Ghi chú: Trong VS Code, đÅ kiÅm tra xem một tÿ có trùng tên hàm cài s¿n khơng, b¿n nhÃn tå hợp phím Ctrl-Space (thanh cách). NÁu là hàm cài s¿n thì s¿ xt hián bÁng thơng tin nh° hình d°ới:

- ĐÁt tên biÁn có ý nghĩa. Kinh nghiám đ¢n giÁn này đã đ°ợc chứng minh trong thực tÁ có thÅ giúp cÁi thián đáng kÅ code của bn: dò c, dò bo trỡ, sa lỗi v dò phát triÅn h¢n. ĐiÃu này đÁc biát cần thiÁt khi b¿n viÁt những ch°¢ng trình phức t¿p và code đ°ợc viÁt bái một nhóm nhiÃu ng°ßi. Đÿng ng¿i các tên dài, chỉ ng¿i các tên khó hiÅu!

Ví dụ: Thay vì đÁt tên biÁn là a, N, f, g, b¿n hãy đÁt: he_so_a, so_thiet_bi, ham_loc_du_lieu, ham_phan_tich s¿ giúp ch°¢ng trình của b¿n dò c hÂn rt nhiu. Ghi chỳ: liỏt kờ các tên b¿n đã t¿o, dùng lánh whos. ĐÅ xóa một biÁn, dùng lánh del ten_bien, ví dụ del he_so_a.

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<i>GVBS: Đào Thị Xuân Hường Trang 16 </i>

<b>2.4. NhÁp xuÃt c¢ bÁn </b>

Dữ liáu đ°a vào ch°¢ng trình có thÅ thơng qua viác gán trực tiÁp vào biÁn (nh° mục trên), hoÁc nhÁp tÿ bàn phím, tÿ các thiÁt bị chuyên dụng (cÁm biÁn, camera), hoÁc tÿ file dữ liáu. Bên d°ới giới thiáu cách nhÁp dữ liáu c¢ bÁn tÿ bàn phím.

ĐÅ nhÁp dữ liáu tÿ bàn phím b¿n có thÅ dùng hàm input(), nh° các ví dụ sau:

Trong ví dụ 1, khi ch¿y dòng lánh nhÁp s¿ xuÃt hián ô đợi ng°ßi dùng nhÁp tên nh° sau (trong VS Code ô này xuÃt hián á trên cùng của cāa så VS Code):

Sau khi ng°ßi dùng nhÁp tên và nhÃn Enter thì tên đ°ợc nhÁp s¿ đ°ợc l°u vào biÁn ho_ten.

Trong ví dụ 2, đÅ ý trong dịng lánh nhÁp có hàm int(), hàm này có cơng dụng kiÅm tra và chuyÅn đåi dữ liáu đ°ợc nhÁp thành kiÅu sá nguyên. Khi ch¿y ví dụ này b¿n cũng s¿ thÃy xt hián ơ nhÁp t°¢ng tự nh° trên, nh°ng l°u ý rằng, b¿n cần nhÁp sá nguyên, nÁu khụng chÂng trỡnh s bỏo lỗi.

Trong vớ d 3, đo¿n lánh nhÁp t°¢ng tự ví dụ 2, chỉ khác á hàm float() thay cho hàm int(). Hàm float() đåi dữ liáu đ°ợc nhÁp và kiÅu sá thực.

L°u ý: Khi không dùng hàm chuyÅn đåi kiÅu dữ liáu (type casting) nh° hàm int(), float(), thì dữ liáu trÁ và tÿ hàm input() s¿ có kiÅu chữ (string) và khơng thÅ thực hián các phép tốn.

T°¢ng tự nh° viác nhÁp dữ liáu, viác xuÃt dữ liáu cũng có nhiÃu cách khác nhau nh° gán trực tiÁp vào biÁn (đÅ sā dụng tiÁp tục trong ch°¢ng trình), hc in chữ, v¿ hình lên màn hình, hoÁc truyÃn tới các thiÁt bị xuÃt (loa, máy in, thiÁt bị điÃu khiÅn), hoÁc l°u xuáng file. Bên d°ới giới thiáu cách in dữ liáu đ¢n giÁn ra màn hình.

ĐÅ in text lên màn hình, b¿n có thÅ dụng hàm print() của Python nh° các ví dụ bên d°ới: #%% Ví dÿ 2: nh¿p sß ngun

so_thiet_bi = int(input('Nhap so thiet bi:')) #%% Ví dÿ 2: nh¿p sß nguyên

so_thiet_bi = int(input('Nhap so thiet bi:')) #%% Ví dÿ 1: nh¿p chÿ

ho_ten = input('Xin nhap ho ten:')

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

<i>GVBS: Đào Thị Xuân Hường Trang 17 </i>

Khi thực thi ví dụ 1, dòng chữ Xin chao! s¿ đ°ợc in ra màn hình. Khi thực thi ví dụ 2, dịng chữ Tran An (nội dung của biÁn

ho_ten) s¿ đ°ợc in ra màn hình. Khi thực thi ví dụ 3,

dịng chữ Ho ten cua ban: Tran An s¿ đ°ợc in ra màn hình. Khi thực thi ví dụ 4, dịng chữ

Nghiem 1: 15.3456

Nghiem 2: 26.1234 s¿ đ°ợc in ra màn hình. Khi thực thi ví dụ 5, dòng chữ

Nghiem 1: 15.35 Nghiem 2:

26.12 s¿ đ°ợc in ra màn hình (đÅ ý giá trị của x1, x2 chỉ in ra 2 chữ sá thÁp phân). Chúng ta xem chi tiÁt dòng lánh trong ví dụ này:

#%% Ví dÿ 2: in nßi dung 1 bi¿nho_ten = "Tran An"

#%% Ví dÿ 3: in nßi dung 1 bi¿n kèm thơng báoprint("Ho ten cua ban:", ho_ten)

#%% Ví dÿ 4: in nßi dung nhißu bi¿nx1 = 15.3456

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<i>GVBS: Đào Thị Xuân Hường Trang 18 </i>

Đo¿n code %.2f có nghĩa là s¿ in ra sá thực với 2 sá thÁp phân. ĐÅ in 3 sá thÁp phân b¿n s¿ code thành: %.3f (con sá nằm tr°ớc chữ f chính là sá l°ợng chữ sá thÁp phân s¿ in ra).

Các biÁn cần in đ°ợc đÁt trong đo¿n code % ( ). Ví dụ: % (x1,x2) s¿ in ra giá trị của các biÁn x1, x2. L°u ý các biÁn đ°ợc in ra theo đúng thứ tự b¿n liát kê trong đo¿n code này. L°u ý: Trong ví dụ 5, dÃu # trong đánh dÃu đo¿n ghi chú (comments). Mọi nội dung đÁt sau dÃu # s¿ đ°ợc trình dịch Python bß qua, khơng thực thi. Thơng th°ßng trong lÁp trình, comments đ°ợc sā dụng đÅ ghi chú cho những đo¿n lánh quan trọng, hc đÅ giÁi thích cho cơng dụng các hàm hoÁc các đo¿n lánh phức t¿p. Khi viÁt comments nên viÁt rõ ràng nh°ng ngắn gọn. Tránh ghi q nhiÃu comments cho những đo¿n code đ¢n giÁn, vì cú th lm code ròm r, khú c hÂn.

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

<i>GVBS: Đào Thị Xuân Hường Trang 19 </i>

<b>Ch°¢ng 3. CÂU TRÚC ĐIÀU KHIÂN, VỊNG L¾P VÀ CÂU TRÚC MÀNG </b>

<i>Mục tiêu: Học xong chương này sinh viên có thể: </i>

- Trình bày đúng cú pháp các cÃu trúc điÃu khiÅn

- Sā dụng đ°ợc các cÃu trúc điÃu khiÅn đÅ giÁi các bài tốn thực tÁ

Trong ch°¢ng này, b¿n s¿ đ°ợc tìm hiÅu và câu trúc điÃu khiÅn IF - vòng lÁp – cÃu trúc tự động thực thi nhiÃu lần các đo¿n lánh theo kịch bÁn b¿n muán. Có hai dng vũng lp c hỗ tr trong Python l vòng lÁp while và vòng lÁp for.

<b>3.1. CÃu trúc if </b>

Lánh if là cÃu trúc r¿ nhánh trong Python. Nói một cách đ¢n giÁn, cÃu trúc r¿ nhánh là lựa chọn ch¿y lánh này hoÁc lánh khác. Ví dụ khi giÁi ph°¢ng trình bÁc 2, nÁu giá trị biát sá delta g 0 thì ta s¿ ch¿y lánh tính nghiám, còn nÁu giá trị biát sá delta < 0 thì ta ch¿y lánh in ra thơng báo ph°¢ng trình vơ nghiám. Lánh if chính là sự dißn đ¿t <nÁu= trong lÁp trình.

ĐÅ sā dụng đ°ợc lánh if, tr°ớc tiên ta cần biÁt quy tắc cú pháp của nó. Trong Python, lánh if đ°ợc quy định cú pháp nh° sau:

Luãng ho¿t động của khái lánh if trên đ°ợc mơ tÁ trong l°u đã á Hình 2-1. Một cách cụ thÅ, trong cú pháp if trên,

if, elif, else là các tÿ khóa (bắt buộc viÁt chính xác nh° vÁy).

L°u ý: Chỉ khái if là bắt buộc có, cịn khái elif và else có thÅ xt hián tùy ý. Cụ thÅ, khái elif có thÅ khơng xt hián hoÁc xuÃt hián

if dieu_kien_1: khoi_lenh_1 elif dieu_kien_2:

khoi_lenh_2: elif dieu_kien_3:

khoi_lenh_3: else:

khoi_lenh_N khoi_lenh_sau_if

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

<i>GVBS: Đào Thị Xuân Hường Trang 20 </i>

1 lần hc nhiÃu lần, cịn khái else có thÅ khơng xt hián hc xt hián 1 lần. Ví dụ, chúng ta có thÅ viÁt lánh if nh° sau:

hoÁc viÁt nh° sau:

hoÁc viÁt nh° sau:

- dieu_kien_1, dieu_kien_2, dieu_kien_3, dieu_kien_N là các mánh đà logic: có giá trị True hoÁc False (đúng hoÁc sai) khi ch¿y code. Ví dụ: 1>2 là một mánh đà sai (giá trị False), 5<6 là mánh đà đúng (True), N<10: mánh đà này đúng hoÁc sai tùy thuộc vào giá trị của biÁn N khi ch¿y code, ví dụ nÁu N = 9 thì mánh đà đúng (9<10). BÁng sau đây liát kê các tốn tā so sánh và tốn tā kÁt hợp có thÅ dùng trong khái điÃu kián.

So sánh lớn h¢n > 5>2 True So sỏnh nhò hÂn < 5<2 False

So sánh ln hÂn

ln hÂn>=So sỏnh nhò

hÂnhoc bng<=

nhò hÂn<=

if dieu_kien_1: khoi_lenh_1 else:

khoi_lenh_N khoi_lenh_sau_if if dieu_kien_1:

khoi_lenh_1 khoi_lenh_sau_if

if dieu_kien_1: khoi_lenh_1 elif dieu_kien_2:

khoi_lenh_2: khoi_lenh_sau_if

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

<i>GVBS: Đào Thị Xuân Hường Trang 21 </i>

<i><b>HÌNH 3-1 Lưu đồ cÿa khối lệnh if. </b></i>

Khi đ°ợc viÁt đúng cú pháp, lánh if s¿ ho¿t động theo nguyên tắc: điÃu kián nào đúng thì chỉ ch¿y duy nhÃt khái lánh ngay d°ới điÃu kián đó (các khái lánh khác s¿ bị bß qua). Các điÃu kián s¿ đ°ợc kiÅm tra

Lần l°ợt tÿ trên xuáng: dieu_kien_1 đ°ợc kiÅm tra tr°ớc, sau đó đÁn dieu_kien_2, rãi dieu_kien_3& Ví dụ:

- NÁu dieu_kien_1 đúng (giá trị True) thì khái lánh khoi_lenh_1 s¿ đ°ợc ch¿y. Sau khi ch¿y xong khoi_lenh_1 thì ch°¢ng trình s¿ nhÁy đÁn khoi_lenh_sau_if, tức là tồn bộ các dịng code cịn l¿i trong lánh if s¿ bị bß qua.

- NÁu dieu_kien_1 sai (giá trị False) thì khái lánh khoi_lenh_1 s¿ bị bß qua. Lúc này trình biên dịch Python s¿ kiÅm tra dieu_kien_2. NÁu dieu_kien_2 đúng thì s¿ ch¿y khoi_lenh_2. Sau khi ch¿y xong khoi_lenh_2 thì ch¿y đÁn khoi_lenh_sau_if. NÁu dieu_kien_2 sai thì kiÅm tra dieu_kien_3 và thực hián t°¢ng tự nh° trên.

- Khi tÃt cÁ các điÃu kián đÃu sai, nÁu có khái else thì lánh trong khái else s¿ đ°ợc ch¿y (tức lánh khoi_lenh_N s¿ ch¿y). NÁu khơng có khái else thì s¿ ch¿y khoi_lenh_sau_if.

L°u ý:

- Một khái lánh có thÅ bao gãm nhiÃu dòng lánh.

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

<i>GVBS: Đào Thị Xuân Hường Trang 22 </i>

- Mỗi dũng lỏnh Python c t trờn 1 dũng. Ngha là b¿n phÁi xuáng dòng (enter) khi viÁt xong 1 câu lánh.

- Các câu lánh trong một khái lánh phÁi có thụt đầu dịng (indentation) bằng nhau. Tức là nÁu dòng lánh 1 đ°ợc thụt đầu dòng bằng 3 khng trắng (space) thì dịng lánh 2 (trong khái đó) cũng phÁi nh° vÁy. NÁu b¿n thụt đầu dịng 4 khoÁng trắng, hoÁc 2 khoÁng trắng khi viÁt dòng lỏnh 2 thỡ s b lỗi. õy l quy nh cú pháp của Python nhằm đÁm bÁo ch°¢ng trình ngăn nắp, dß đọc.

<b>Ví dā 2.1: NhÁp 1 sá ngun và xác định sá đ°ợc nhÁp là ch¿n hay lẻ. </b>

Trong đo¿n lánh trên, phép toán % là phép chia lÃy d° (xem mục 2.2). NÁu sá đ°ợc nhÁp chia lÃy d° cho 2 bằng 0 (tức là nó chia hÁt cho 2) thì đây là sá ch¿n.

<b>Thực hành: B¿n hãy gõ l¿i đo¿n code trên và thực thi (Shift-Enter) rãi nhÁp vào các sá </b>

nguyên khác nhau đÅ xem kÁt quÁ đ°ợc in ra.

<b>Ví dā 2.2: NhÁp 2 sá thực và xác định xem chúng cùng dÃu hay trái dÃu. </b>

<b>Thực hành: B¿n hãy gõ l¿i đo¿n code trên và thực thi (Shift-Enter) rãi nhÁp vào các </b>

cÁp sá thực khác nhau đÅ xem kÁt quÁ đ°ợc in ra. Lý giÁi ho¿t động của ch°¢ng trình dựa vào các điÃu kián so1*so2 < 0 và so1*so2 > 0.

print(N, 'la so le.')

#%% Xác ßnh cùng d¿u, trái d¿u

so1 = float(input('Xin nhap so thu nhat:')) so2 = float(input('Xin nhap so thu hai:'))

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

<i>GVBS: Đào Thị Xuân Hường Trang 23 </i>

#%% Tìm sá lớn nhÃt trong 3 sáso1 = float(input('Nhap so thu nhat:'))

so2 = float(input('Nhap so thu hai:')) so3 = float(input('Nhap so thu ba:')) so_lon_nhat = so1

if so_lon_nhat < so2: so_lon_nhat = so2 if so_lon_nhat < so3:

so_lon_nhat = so3 print('So lon nhat:', so_lon_nhat)

<b>Bài tập có lời giải </b>

<b>Bài tÁp 1.ViÁt ch°¢ng trình đọc một ký tự tÿ bàn phím. NÁu ký tự đ°ợc nhÁp là nguyên </b>

âm gãm các điÅm chữ thành điÅm sá nh° cách tính điÅm á một sá tr°ßng đ¿i học trên thÁ giới. BÁng ánh x¿ có thÅ đ°ợc thÅ hián nh° sau

Tính tốn và hiÅn thị con sá điÅm t°¢ng ứng. Ngồi ra, ch°¢ng trình có thÅ đ°a ra thơng báo <yêu cầu nhÁp l¿i= trong tr°ßng hợp ng°ßi dùng nhÁp vào một ký tự không tãn t¿i trong bÁng trên.

<b>Bài tÁp 2. ViÁt ch°¢ng trình đánh giá hiáu quÁ làm viác của nhân viên. Một công ty </b>

muán đánh giá hiáu quÁ làm viác của nhân viên công ty theo mỗi nm. Thang o hiỏu qu lm viỏc s¿ đ°ợc đánh giá tÿ 0.0 và giá trị càng cao thì thÅ hián năng lực làm viác càng tát của nhân viên. Giá trị đánh giá n có thÅ là 0.0, 0.4 hc 0.6 hc lớn h¢n. Trong đó, các giá trị giữa 0.0 và 0.4 hoÁc 0.4 và 0.6 thì khơng đ°ợc sā dụng. Chi tiÁt đ°ợc thÅ hiỏn trong bng sau. Giỏ tr thỏng cho mỗi nhõn viên sau khi đánh giá s¿ t°¢ng ứng với cơng thức $2400*n. Hãy viÁt ch°¢ng trình đọc vào giá trị n tÿ ng°ßi dùng và hãy chỉ ra rằng hiáu q làm viác t°¢ng ứng của nhân viên có giá trị n cho hiáu quÁ công viác là unacceptable, acceptable và meritorious. NÁu giá trị n không thÅ hián đúng nh° trong bÁng thì đ°a ra thơng báo <b><vui lịng nhÁp l¿i=. </b>

<b>Bài tÁp 3. ViÁt ch°¢ng trình kiÅm tra nm nhun. Thụng thòng mỗi nm cú khong </b>

365 ngy. Tuy nhiên, thßi gian này phụ thuộc vào thßi gian Trái đÃt hồn thành một vịng xoay quanh MÁt trßi. ĐiÃu này d¿n đÁn có thÅ có thêm 1 ngày là ngày 29 tháng 2.

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

<i>GVBS: Đào Thị Xuân Hường Trang 24 </i>

Những năm có thêm ngày này đ°ợc xem là năm nhuÁn. Cách tính năm nhuÁn s¿ đ°ợc quyÁt định bái một sá điÃu sau:

 Sá năm chia hÁt cho 400 là năm nhuÁn  Các năm còn l¿i:

- nÁu chia hÁt cho 100 thì khơng là năm nhuÁn - nÁu chia hÁt cho 4 thì là năm nhn

 Các tr°ßng hợp cịn l¿i thì khơng là năm nhn

Hãy viÁt một ch°¢ng trình đọc vào sá năm tÿ ng°ßi dùng và hiÅn thị thơng báo chỉ ra rằng năm vÿa nhÁp có phÁi là năm nhuÁn không.

<b>Bài tÁp thực hành </b>

1. ViÁt code tính dián tích tam giác có c¿nh đáy dài 10 cm và cao 6 cm.

2. ViÁt code cho ng°ßi dùng nhÁp vào đ°ßng kính của 1 hình trịn tùy ý và tính dián tích hình trịn đó.

3. ViÁt code kiÅm tra biÅu thức sau đúng không (True or False). KiÅm tra với x = �㔋, <sup>�㔋 </sup>, <sup>4</sup><small>�㔋</small>

ngày 1 tháng 1 đái với một năm đ°ợc tính theo cơng thức sau:

KÁt q của công thức trên là một sá nguyên thÅ hián thứ trong tuần. Viác mã hóa thứ s¿ bắt đầu với ngày Chủ nhÁt với sá mã hóa là 0. T°¢ng tự, ngày thứ BÁy s¿ có giá trị mã hóa là 6. Hãy sā dụng công thức trên và viÁt mt chÂng trỡnh c sỏ nm t ngòi s dng. Ch°¢ng trình s¿ tính tốn và in ra thứ t°¢ng ứng với đái ngày 1 tháng 1 của năm mà ng°ßi dùng nhÁp.

<b>3.2. CÃu trúc l¿p While </b>

Cú pháp của vòng lÁp while nh° sau: while dieu_kien:

khoi_lenh_lap khoi_lenh_sau_while

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

<i>GVBS: Đào Thị Xuân Hường Trang 25 </i>

Luãng ho¿t động của vòng lÁp while đ°ợc mơ tÁ trong l°u đã á Hình 3-1.

Nhìn qua khái lánh while có cú pháp giáng với khái if tái giÁn. Ho¿t động của khái while nh° sau: khi dieu_kien còn đúng (True) thì cịn thực thi khoi_lenh_lap (tức là khoi_lenh_lap s¿ đ°ợc ch¿y nhiÃu lần), khi dieu_kien sai (False) thì s¿ ch¿y khoi_lenh_sau_while. ĐÅ dò hiu hÂn, chỳng ta xem vớ d sau.

<i><b>HèNH 3-2-Lưu đồ vịng lặp While </b></i>

<b>Ví dā 3.1: ViÁt code u cầu nhÁp sá N d°¢ng. NÁu nhÁp sai thì cho nhÁp l¿i </b>

đÁn khi đúng.

<b>L°u ý: ĐÅ vòng lÁp while ho¿t động đ°ợc cần thßa mãn hai điÅm sau: </b>

1. ĐiÃu kián dieu_kien phÁi đ°ợc khái t¿o tr°ớc. Tức là mọi biÁn trong dieu_kien phÁi đ°ợc gán giá trị s¿n. Thơng th°ßng ta s¿ khái t¿o biÁn sao cho dieu_kien có giá trị True á lần ch¿y đầu tiên.

2. Khái lánh khoi_lenh_lap phÁi có ít nhÃt 1 dịng lánh làm thay đåi điÃu kián dieu_kien. NÁu khơng vịng lÁp s¿ ch¿y khơng bao giß dÿng (do dieu_kien khơng bị thay đåi, nó s¿ đúng (True) mãi mãi nên vòng lÁp s¿ lÁp mãi mãi).

#%% Nh¿p sß d±¡ngN = -1

while N<=0:

N = int(input('Xin nhap so nguyen duong:')) print('So duoc nhap N =', N)

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

<i>GVBS: Đào Thị Xuân Hường Trang 26 </i>

Trong ví dụ á trên, lánh N = -1 đã khái t¿o giá trị cho biÁn N. NÁu khơng có lánh này thì điÃu kián N<=0 cha c khỏi to, s bỏo lỗi khi chy. Ngoài ra, đÅ ý rằng lánh N = int(input(&)) là câu lánh có thÅ làm thay đåi điÃu kián bái vì nó gán giá trị cho biÁn N. Khi giá trị của N thay đåi thì điÃu kián N<=0 có thÅ thay đåi (tÿ True thành False).

<b>Thực hành: B¿n hãy gõ l¿i đo¿n code trên và thực thi (Shift-Enter) rãi nhÁp </b>

vào các sá nguyên âm, sau đó nhÁp 1 sá nguyên d°¢ng và xem kÁt quÁ đ°ợc in ra.

<b>Ví dā 3.2: ViÁt code yêu cầu nhÁp sá N d°¢ng và tính N! </b>

<b>Nhắc l¿i l°u ý vi¿t lỏnh trong Python: </b>

Mỗi dũng lỏnh Python c đÁt trên 1 dòng. Nghĩa là b¿n phÁi xuáng dòng (enter) khi viÁt xong 1 câu lánh.

 Các câu lánh trong một khái lánh phÁi có thụt đầu dòng (indentation) bằng nhau. Tức là nÁu dòng lánh 1 đ°ợc thụt đầu dòng bằng 3 khoÁng trắng (space) thì dịng lánh 2 (trong khái đó) cũng phÁi nh° vÁy. NÁu b¿n thụt đầu dòng 4 khoÁng trắng, hoÁc 2 khng trắng khi viÁt dịng lánh 2 thì s¿ b lỗi. õy l quy nh cỳ phỏp ca Python nhm m bo chÂng trỡnh ngn np, dò c.

Trong ví dụ trên, các lánh N = int(input(&)) và i = 1 giúp khái t¿o điÃu kián i<=N. Lánh i += 1 giúp thay đåi điÃu kián. Dòng lánh giai_thua *= i t°¢ng đ°¢ng với lánh giai_thua = giai_thua*i. Đây là một cách viÁt tắt phép tính và gán trong Python, ví dụ:

a += 2, t°¢ng đ°¢ng a = a + 2 b /= 3, t°¢ng đ°¢ng b = b / 3 #%% Tính giai thÿa

print('N! =', giai_thua)

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

<i>GVBS: Đào Thị Xuân Hường Trang 27 </i>

<b>Thực hành: B¿n hãy gõ l¿i đo¿n code trên và thực thi (Shift-Enter) rãi nhÁp vào </b>

các sá nguyên d°¢ng N khác nhau và xem kÁt quÁ đ°ợc in ra.

<b>Ví dā 3.3: ViÁt code u cầu nhÁp sá N d°¢ng và tính tång 1+2+&+N. </b>

Trong code trên, đÅ ý lánh tong = 0. à đây chúng ta khái t¿o giá trị cho tång là 0 (so với ví dụ 2 á trên, ta khái t¿o giai thÿa bằng 1 vì phép tính nhân dãn).

<b>Thực hành: B¿n hãy gõ l¿i đo¿n code trên và thực thi (Shift-Enter) rãi nhÁp vào </b>

các sá nguyên d°¢ng N khác nhau và xem kÁt quÁ đ°ợc in ra.

<b>Ví dā 3.4: ViÁt code tìm max trong 3 sá thực nhÁp bái ng°ßi dùng. Sau khi ch¿y </b>

xong thì hßi ng°ßi dùng có mn ch¿y l¿i khơng. NÁu ng°ßi dùng nhÃn phím 8y9 thì ch¿y l¿i, nhÃn phím khác thì dÿng.

#%% Tìm max và lÁp l¿ichay_tiep = 'y'

while chay_tiep == 'y' or chay_tiep == 'Y': so1 = float(input('Nhap so thu nhat')) so2 = float(input('Nhap so thu hai'))

so3 = float(input('Nhap so thu ba')) so_lon_nhat = so1

if so_lon_nhat<so2:

so_lon_nhat=so2 if so_lon_nhat<so3:

so_lon_nhat=so3

print('So lon nhat: ', so_lon_nhat)

chay_tiep = input('Nhan "y" de chay lai, nhan phimkhac de thoat:') print('Da hoan thanh.')

#%% Tính giai thÿaN = -1

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

<i>GVBS: Đào Thị Xuân Hường Trang 28 </i>

Trong đo¿n code trên, b¿n hãy đÅ ý cách biÁn chay_tiep đ°ợc khái t¿o cũng nh° gán l¿i giá trị chay_tiep = input(&) đÅ đÁm bÁo điÃu kián s¿ có lúc sai (False) và vịng lÁp có thÅ dÿng.

<b>Thực hành: B¿n hãy gõ l¿i đo¿n code trên và thực thi (Shift-Enter) rãi nhÁp vào các sá thực, </b>

sau đó nhÁp <y= hoÁc <Y= đÅ ch¿y l¿i. NÁu nhÁp phím khác <y= và <Y= thì ch°¢ng trình s¿ dÿng.

<b>Ví dā 3.5: ViÁt code tính ln(1+x) bằng khai triÅn Taylor1 với |x|<1. Cho công thức khai triÅn </b>

Taylor của ln(1+x) (với |x|<1) nh° sau:

Trong code trên, đo¿n lánh x = float(input(&) giÁ định rằng ng°ßi dùng s¿ nhÁp x đúng yêu cầu (|x|<1).

ĐÅ viÁt code trên, ta cần phân tích biÅu thức của khai triÅn Taylor:

ĐÅ ý rằng biÅu thức tång này có các sá h¿ng có tính chÃt lÁp: tā sá của sá h¿ng sau bằng tā sá của sá h¿ng tr°ớc đó nhân với -x. Còn m¿u sá của các sá h¿ng thì tăng dần tÿ 1, 2, 3&

Các lánh:

#%% Tính ln(1+x) bằng khai triÅn Taylorx = float(input('Nhap x (-1<x<1):')) i = 1

tu_so = x mau_so = i

so_hang = tu_so/mau_so tong = so_hang

while abs(so_hang)>1e-10: i += 1

tu_so *= -x mau_so = i

so_hang = tu_so/mau_so tong += so_hang

print('ln( 1 +',x,') =',tong)

i = 1

tu_so = x mau_so = i

so_hang = tu_so/mau_so tong = so_hang

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

<i>GVBS: Đào Thị Xuân Hường Trang 29 </i>

là các lánh khái t¿o cho sá h¿ng và tång. Khi khái t¿o xong, ta có thÅ tính sá h¿ng sau bằng theo phân tích lÁp á trên.

Ngồi ra, bái vì khai triÅn Taylor của ln(1+x) là một dãy hội tụ (khi|x|<1), hay nói cách khác, các sá h¿ng trong dãy càng và sau càng có giá trị tut đái nhß (tiÁn và 0). Vì vÁy ta có thÅ thiÁt lÁp điÃu kián dÿng của vịng lÁp khi giá trị của sá h¿ng đã trá nên rÃt nhß, ví dụ 10-10 nh° trong điÃu kián trên code: abs(so_hang)>1e-10.

<b>Thực hành: ViÁt thêm đo¿n code bắt buộc ng°ßi dùng nhÁp x đúng yêu cầu (|x|<1). </b>

B¿n cũng có thÅ kiÅm tra độ chính xác của code đ°ợc viÁt bằng cách tính giá trị của ln(1+x) và đái chiÁu. Ví dụ đo¿n code sau có thÅ dùng đÅ tính giá trị cho ln(1+x):

<b>Thực hành: NhÁp đo¿n mã sau và đÁt tên là while_demo.py, sau đó hãy thực thi đo¿n mã và </b>

cho biÁt kÁt quÁ in ra màn hình.

Ví dụ, b¿n s¿ cần dùng mÁng nÁu muán l°u danh sách tên của các sinh viên trong 1 lớp. NÁu không dùng mÁng, b¿n s¿ phÁi t¿o nhiÃu biÁn bình th°ßng đÅ l°u các tên sinh viên, vỡ mỗi bin ch cha c 1 tờn. Cỏch lm này vÿa bÃt tián vÿa khó phát triÅn ch°¢ng trình, vì khi cần thêm một sinh viên, b¿n phÁi thêm 1 biÁn nữa trong code.

Một ví dụ khác là khi b¿n cần l°u giá trị nhiát độ trÁ và tÿ một cÁm biÁn nhiát mà b¿n dùng đÅ theo dõi một thiÁt bị nào đó (ví dụ bình đun nc, bỡnh gi nhiỏt). Gi s mỗi

print('demo - iteration while') i = 0

while i < 10: print(i) i += 1

import math

print('ln( 1 +',x,') =',math.log(1+x))

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

<i>GVBS: Đào Thị Xuân Hường Trang 30 </i>

phút cÁm biÁn này s¿ trÁ và 1 nhiát độ. Nh vy, nu khụng dựng mng thỡ c mỗi phỳt nhiát độ cũ s¿ bị mÃt (bị thay thÁ bái nhiát độ mới). ĐÅ l°u l¿i tÃt cÁ các giá trị nhiát độ sā dụng cho phân tích và sau (ví dụ đÅ v¿ biÅu đã thay đåi nhiát độ của thiÁt bị) thì ta cần l°u l¿i tÃt cÁ nhiát độ này. MÁng s¿ giúp b¿n l°u l¿i tÃt cÁ nhiát độ này.

Trong Python, có nhiÃu cách khác nhau đÅ t¿o ra các biÁn có kiÅu mÁng. Trong phần này chúng ta s¿ sā dụng list. ĐÅ t¿o một list, b¿n dùng dÃu ngoÁc vuông đÅ đánh dÃu bắt đầu và kÁt thúc list nh° các ví dụ sau:

Có thÅ thÃy mÁng t¿o bằng cú pháp list chứa đ°ợc các phần tā có kiÅu dữ liáu khác nhau (sá nguyên, sá thực, chữ). Các phần tā trong list đ°ợc ngăn cách bái dÃu phẩy. Phần tā kiÅu chữ phÁi đ°ợc đÁt trong dÃu nháy đ¢n ' hoÁc nháy kép ''.

B¿n cũng có thÅ t¿o list bằng cách ghép 2 list đã có với nhau: list4 = list1 + list2

ĐÅ xem nội dung của list b¿n có thÅ dùng lánh print(): print(list4)

ĐÅ truy xuÃt các phần tā trong list, ta cần biÁt các phần tā của list đÃu đ°ợc đánh sá, gọi là index. Có 2 d¿ng indexing trong list: index không âm và index âm. Ví dụ, xét

list1 = [-2 3 5.27, -19, 10] Các phần tā trong list này có index nh° sau:

ĐÅ truy xuÃt phần tā trong list, ta dùng cú pháp sau: ten_list[index]

Ví dụ, đÅ truy xuÃt phần tā 5.27 trong list1 ta dùng code sau: list1[2]

hoÁc

#%% T¿o list

list1 = [-2, 3, 5.27, -19, 10]

list2 = ['Tam', 'Thien', 'Hoa', 'Binh']

list3 = ['Tam', 10, 'Thien', 7.3, 'Hoa', 8, 'Binh', 9.2]

</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37">

<i>GVBS: Đào Thị Xuân Hường Trang 31 </i>

ten_list[start_index : stop_index : step]

Trong đó start_index và stop_index là index phần tā đầu và index phần tā cuái b¿n muán truy xuÃt, còn step là b°ớc nhÁy của index khi ch¿y tÿ start_index đÁn stop_index. Các giá trị cho start_index, stop_index, và step đÃu phÁi là sá nguyên.

L°u ý: Truy xuÃt slicing stop_index không bao gãm phần tā t¿i stop_index. Do đó, đÅ lÃy đ°ợc phần tā có index i ta cần phÁi dùng stop index bằng i+1.

Ví dụ 3.6: ĐÅ lÃy 3 phần tā đầu tiên của list1 ta dùng code sau: list1[0:3:1]

hoÁc dùng index âm:

list1[-5:-2:1] ĐÅ lÃy 3 phần tā cuái cùng của list1:

list1[2:5:1]

Tr°ßng hợp này nÁu dùng index âm b¿n s¿ không thÅ thu đ°ợc kÁt quÁ nh° mong muán: list1[-3:0:1]. Lý do là index 0 là phần tā đầu tiên của mÁng, trong khi với step bằng 1 thì phép slicing s¿ lÃy các phần tā với index tăng dần, tức là lÃy các phần tā theo chiÃu tÿ trái sang phÁi. Quan sát list1 chúng ta có thÅ thÃy khơng có cách nào đi tÿ trái sang phÁi xuÃt phát tÿ phần tā có index -3 mà đÁn đ°ợc phần tā có index 0.

Đái với tr°ßng hợp này, ta cần sā dụng giá trị mÁc định của start_index, stop_index, và step. Giá trị mÁc định của các thành phần s¿ đ°ợc trình biên dịch Python sā dụng khi b¿n đÅ khuyÁt các thành phần này trong lánh slicing (xem ví dụ bên d°ới).

Giá trị mÁc định của start_index là: 0

Giá trị mÁc định của stop_index s¿ lÃy hÁt các phần tā đÁn cuái mÁng (nÁu step có giá trị d°¢ng), hc lÃy hÁt các phần tā đÁn đầu mÁng (nÁu step có giá trị âm).

Giá trị mÁc định của step là: 1

Ví dụ, đÅ lÃy 3 phần tā cuái cùng của list1 ta có thÅ dùng slicing với index âm nh° sau:

</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38">

<i>GVBS: Đào Thị Xuân Hường Trang 32 </i>

list1[-3::1]

do stop_index bị khuyÁt nên trình dịch Python s¿ lÃy đÁn hÁt mÁng theo giá trị mÁc định (đÅ ý step bằng 1 là sá dÂng). Ngoi ra, ta cng cú th bò step bng 1 vì đây là giá trị mÁc định. Code sau đây cho kÁt quÁ giáng với lánh trên:

list1[-3:]

T°¢ng tự, b¿n có thÅ dùng code sau đÅ lÃy 3 phần tā đầu tiên của mÁng: list1[:3]

code trên bß qua start_index và step

Bên c¿nh viác truy xuÃt các phần tā của list, Python cung cÃp các hàm sau đÅ thao tác với list:

 Hàm append(): thêm phần tā vào cuái mÁng. Ví dụ, đÅ thêm phần tā 48 vào list1 ta dùng code: list1.append(48).

 Hàm insert(): chèn phần tā vào mÁng. Hàm này yêu cầu 2 tham sá (arguments) là vị trí chèn (index chèn) và giá trị chèn. Ví dụ, đÅ thêm phần tā 90 vào list1 á vị trí có index 2 ta dùng code: list1.insert(2, 90).

 Lánh del: xóa phần tā hc xóa mÁng. Ví dụ, đÅ xóa phần tā á vị trí có index 5 ta dùng code: del list1[5]. ĐÅ xóa tồn bộ list1: del list1.

<b>Thực hành: Sā dụng các hàm trên với các list của b¿n và in ra kÁt quÁ sau khi thực thi. </b>

Tìm hiÅu thêm hàm pop() với cơng dụng t°¢ng tự lánh del.

<b>L°u ý: Trong Python còn cung cÃp một d¿ng mÁng t°¢ng tự nh° list có tên là tuple. </b>

List và tuple có cơng năng và cách sā dụng giáng nhau, ngo¿i trÿ viác tuple là một mÁng hằng sá, có nghĩa là khi t¿o ra tuple, b¿n khơng thÅ thay đåi các phần tā của nó. ĐÅ t¿o tuple ta dùng cú pháp sā dụng dÃu ngoÁc đ¢n (thay cho ngoÁc vuông của list):

tuple1 = (5, 3.14, -6, 7)

<b>Thực hành: NhÁp đo¿n mã sau và đÁt tên là list_demo.py Sau đó hãy thực thi đo¿n mã </b>

và cho biÁt kÁt quÁ in ra màn hình. # declare lists

print('----declare lists') numbers = []

a = [2 7 10, ]

cities = ['Berlin', 'Seattle', 'Tokyo', 'Moscow'] b = [10, , 'Apple', 6 'Strawberry']

</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39">

<i>GVBS: Đào Thị Xuân Hường Trang 33 </i>

c = range(1 10, )

# print(lists)

print(' --- print(lists') print(a)

for city in cities:

print(city) print(b) print(c)

# get length of lists

print('----get length of lists') print(len(a)) print(len(cities))

# add item into list

print('----add item') numbers.append(10) numbers.append(5) cities.append('London') for i in numbers:

print(i) for city in cities:

print(city)

# get specific item

print('----get item') print(cities[2]) print(a[3]) # sortingprint(a.sort()) # edit item

print('----edit item') cities[2] = 'new city'

for city in cities: print(city) # remove item

print('----remove item')

</div><span class="text_page_counter">Trang 40</span><div class="page_container" data-page="40">

<i>GVBS: Đào Thị Xuân Hường Trang 34 </i>

a.remove(8) # by value

del cities[2] # by index

for city in cities: print(city)

<b>3.4. CÃu trúc l¿p For </b>

T°¢ng tự nh° vịng lÁp while, vịng lÁp for cũng có cơng dụng thực thi lÁp l¿i nhiÃu lần một khái lánh. Tuy nhiên, trong Python, vòng lÁp for đ°ợc thiÁt kÁ chủ yÁu đÅ làm viác với mÁng hoÁc các cÃu trúc t°¢ng tự mÁng. Do đó, có thÅ nói vịng lÁp while là vịng lÁp đa dụng (mọi tác vụ lÁp đÃu có thÅ dùng vịng lÁp này), cịn vịng lÁp for mang tính chun dụng cho mÁng.

Cú pháp của vòng lÁp for:

Luãng ho¿t động của vịng lÁp for đ°ợc mơ tÁ trong l°u đã á Hình 3-2.

Trong cú pháp trên, for và in là các tÿ khóa, bien_chay là một biÁn chứa các phần tā trong biÁn mang. Khi vòng lÁp đ°ợc thực thi, bien_chay s¿ lần l°ợt chứa các phần tā trong mang. Ví dụ, nÁu mang là một list có các phần tā [2, 4, -6, 50] thì khái lỏnh lp s c chy 4 ln, mỗi ln chy thì bien_chay s¿ lần l°ợt có các giá trị 2, 4, -6 và 50. Sau khi ch¿y lÁp 4 lần thì khoi_lap_sau_for s¿ đ°ợc thực thi.

for bien_chay in mang: khoi_lenh_lap khoi_lap_sau_for

</div>

×