CHUYÊN đề 1 tài LIỆU bồi DƯỠNG học SINH GIỎI TIN học bậc THCS CAN BAN PYTHON

22 878 5
CHUYÊN đề 1 tài LIỆU bồi DƯỠNG học SINH GIỎI TIN học bậc THCS CAN BAN PYTHON

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI TIN HỌC BẬC THCS CHUYÊN ĐỀ 1 CĂN BẢN NGÔN NGỮ LẬP TRÌNH PYTHON 3 x Tác giả NGƯT Nguyễn Tấn Phong Đơn vị Trường THCS Đồng Nai, huyện Cát Tiên, tỉnh Lâm Đồng PHẦN I TÌM HIỂU NGÔN NGỮ LẬP TRÌNH PYTHON I Python là gì? Môi trường IDE để lập trình python? 1 Python là gì? Python là một ngôn ngữ lập trình, tương tự như những ngôn ngữ lập trình mà chúng ta đã biết như Pascal, CC++, Scratch, mBlock Về lý thuyết thì tất cả các NNLT đều với mục đích là trung gian giao tiếp.

TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI TIN HỌC BẬC THCS CHUN ĐỀ 1: CĂN BẢN NGƠN NGỮ LẬP TRÌNH PYTHON 3.x Tác giả: NGƯT Nguyễn Tấn Phong Đơn vị: Trường THCS Đồng Nai, huyện Cát Tiên, tỉnh Lâm Đồng PHẦN I: TÌM HIỂU NGƠN NGỮ LẬP TRÌNH PYTHON I Python gì? Mơi trường IDE để lập trình python? Python gì? Python ngơn ngữ lập trình, tương tự ngơn ngữ lập trình mà biết Pascal, C/C++, Scratch, mBlock Về lý thuyết tất NNLT với mục đích trung gian giao tiếp người máy tính, NNLT có quy ước riêng để người “diễn đạt” “suy nghĩ, thị” cho máy tính Ví dụ nhé: người Việt Nam, người Mỹ, người Trung Quốc, … người quốc gia lại có loại “chữ viết tiếng nói” khác người quốc gia “quy ước”, nơm na hiểu “chữ viết tiếng nói” giống NNLT Về góc độ khoa học máy tính NNLT cơng cụ để người giải tốn thực tế máy tính thông qua cấu trúc liệu/cơ sở liệu thuật tốn/thuật giải Đứng quan điểm thuật tốn/thuật giải chịu ảnh hưởng đến loại NNLT mà ta chọn lựa, cấu trúc liệu/cơ sở liệu lại chịu ảnh hướng lớn từ NNLT mà ta chọn lựa Điều lý giải có nhiều loại NNLT vậy? Bởi loại NNLT điều có ưu điểm vượt trội cấu trúc liệu/cơ sở liệu tính hướng đối tượng Chẳng hạn: Ưu điểm NNLT Pascal câu lệnh diễn đạt tường minh theo ngơn ngữ nói, nhược điểm phạm vi cấu trúc liệu nhỏ, tính hướng đối tượng sở liệu không rõ ràng Ngược lại, NNLT C++ lại có cấu trúc liệu lớn, tính hướng đối tượng CSDL tốt câu lệnh lại diễn đạt không tường minh NNLT Scratch khắc phục nhược điểm Pascal/C++ lại có thêm nhiều ưu điểm lập trình ứng dụng đa tảng lại có nhược điểm diễn đạt thuật toán phức tạp nhiều so với Pascal/C++ Python xem ngôn ngữ bậc cao phổ biến nay, xét góc độ dạy học chương trình phổ thơng bậc THCS THPT Python NNLT khắc phụ hạn chế NNLT Pascal C/C++ Điều thể rõ điểm: + Câu lệnh diễn đạt tường minh theo ngơn ngữ nói + Phạm vi liệu lớn, tính hướng đối tượng tường minh + Khả lập trình đa tảng Mơi trường IDE để lập trình python? Hiểu đơn giản nhé! Con người hiểu ngôn ngữ người (lời nói, cử chỉ, hành vi, chữ viết, …) Máy tính hiểu ngơn ngữ máy (dạng nhị phân, tương ứng với trạng thái có (1) khơng có (0) dòng điện qua dãy song song mạch điện, gọi bit, chữ viết người tương ứng bit = byte) Vậy muốn người giao tiếp với máy tính cần có đối tượng trung gian làm “phiên dịch” gọi trình biên dịch (hoặc trình thơng dịch – khái niệm xuất gần đây) Về bản, trình biên dịch trình thơng dịch có chung nhiệm vụ “phiên dịch” tức chuyển đổi “ngôn ngữ” người thành “ngôn ngữ máy” Điểm khác dễ hiểu Căn ngơn ngữ lập trình python Tài liệu bồi dưỡng học sinh giỏi tin học bậc THCS là, trình biên dịch dịch tồn chương trình trước thực thi (tức gửi cho CPU thực thi), cịn trình thơng dịch dịch thực thi câu lệnh từ xuống Do vậy, trình thơng dịch nhiều thời gian trình biên dịch Ví dụ: chương trình có 1000 câu lệnh, câu lệnh thứ 1000 bị lỗi cú pháp, trình biên dịch báo lỗi tiến hành thực thi trình thơng dịch thực thi 999 câu lệnh phía trước, đến câu lệnh thứ 1000 báo lỗi Và trình biên dịch/thơng dịch tối thiểu cần thành phần sau: - Một trình soạn thảo: để “diễn đạt” “suy nghĩ, thị” người cho máy tính, ta gọi mã nguồn (source code) - Một trình dịch (compiler): Để dịch mã nguồn người sang hệ nhị phân cho máy tính hiểu - Một trình sốt lỗi (debugger): giúp tìm lỗi “diễn đạt” người mã nguồn dịch sang ngôn ngữ máy Một công cụ bao gồm thành phần gọi mơi trường lập trình IDE (integreted development environment, dịch nôm na môi trường phát triển tích hợp) Một NNLT có nhiều mơi trường lập trình IDE khác nhau, IDE ln đảm bảo cấu trúc NNLT IDE khác có thêm ưu điểm khác Ví dụ: NNLT Pascal có IDE Turbo Pascal, Borland Pascal, Pascal for Dos, Pascal for win, Free Pascal, Lazarus Pascal, olalaPascal, …; NNLT C++ có IDE Turbo C++, Borland C++, Code::Blocks, DevC++, Visual C++, Eclipse C++, … Python có nhiều mơi trường lập trình IDE đa dạng Python 3.x.x Shell, Sublime Text 3, notepad++, PyCharm,… tùy vào sở thích lập trình viên mà chọn IDE phù hợp 2.1 Hướng dẫn cài đặt Python 3.x.x Shell a Tải phần mềm Python 3.x.x Shell Địa chỉ: https://www.python.org/downloads/ Chú ý quan trọng: Python có hai phiên 2.x 3.x; phiên 2.x dừng hỗ trợ vào 01.01.2020; phiên 3.x tiếp tục phát triển với nhiều thư viện Việc chọn lựa phiên 2.x hay 3.x có khác biệt cách trình bày câu lệnh khả hỗ trợ lập trình đa tảng khác (Hình tải python 3.10.0 cho hệ điều hành windows) NGƯT Nguyễn Tấn Phong - Trường THCS Đồng Nai, huyện Cát Tiên, tỉnh Lâm Đồng Căn ngơn ngữ lập trình python Tài liệu bồi dưỡng học sinh giỏi tin học bậc THCS b Cài đặt Python 3.x.x (.x.x phiên phát triển tại, ví dụ hình phiên 3.10.0, phiên thường xuyên cập nhật theo thời gian nhà phát triển cung cấp; phiên sau ln tích hợp thêm điểm mới) Khi tải tập tin có chữ “python-3.x.x.exe” về, nhấp đôi chuột vào tập tin đề cài đặt Việc cài đặt đơn giản nhanh chóng Hãy để tất option mặc định chạy chương trình Khi cài đặt xong menu Start Windows có icon hình: (Hình python 3.10 cho hệ điều hành windows 64bit) + IDLE (Python 3.10 64-bit) mơi trường lập trình kết hợp viết code thành tập tin *.py viết lệnh thực thi (trong chuyên đề làm việc với môi trường IDLE) + Python 3.8 (64-bit) mơi trường lập trình viết lệnh thực thi (gọi interactive mode) c Giao diện IDLE (Python 3.10 64-bit) c.1 Giao diện interactive mode (viết lệnh thực thi ngay) Trong cửa sổ bên thấy có phần chính: (1)Thanh cơng cụ (menu): bao gồm nhiều, số chúng sử dụng thường xuyên (2) Phần trung tâm soạn thảo lệnh: nơi bạn viết code python chế độ chạy lệnh trực tiếp (interactive mode) xem kết thực thi chương trình (bao gồm kết tính tốn thơng báo lỗi) NGƯT Nguyễn Tấn Phong - Trường THCS Đồng Nai, huyện Cát Tiên, tỉnh Lâm Đồng Căn ngơn ngữ lập trình python Tài liệu bồi dưỡng học sinh giỏi tin học bậc THCS c.2 Giao diện coding mode (viết lệnh thành tập tin) Từ giao diện interactive mode, chọn File => New (hoặc Ctrl + N) Khi đó, giao diện coding mode (viết lệnh thành tập tin) mở hình Đây giao diện giúp lập trình viên xếp lệnh thành tập tin *.py để thực thi Hãy gõ dòng lệnh hình Bây nhấn File => Save (hoặc Ctrl + S) Gõ vào tên chương trình ctdautien.py Hãy nhấn phím F5 xem kết cửa sổ interactive mode Hãy đặc biệt ghi nhớ ấn F5 để dịch chạy chương trình c.3/ Tìm hiểu “chương trình đầu tiên” có gì? Hãy quan sát nội dung đoạn code mà bạn tạo hình: Câu lệnh python Giải thích Viết thích tập tin *.py; Các thích để người dùng dễ hiểu, khơng phải lệnh thực thi chương trình Khai báo biến ten, chờ nhận liệu từ bàn phím In dòng chữ: Xin chào bạn … NGƯT Nguyễn Tấn Phong - Trường THCS Đồng Nai, huyện Cát Tiên, tỉnh Lâm Đồng Căn ngơn ngữ lập trình python Tài liệu bồi dưỡng học sinh giỏi tin học bậc THCS PHẦN II: LẬP TRÌNH PYTHON CƠ BẢN I CÁC KIỂU DỮ LIỆU CƠ BẢN TRONG PYTHON Python có kiểu liệu sau: Kiểu python liệu Từ khóa Ví dụ Phạm vi giá trị -7; 8; 9; 125478 Vô hạn, cấp phát động Số nguyên int 2.56; -56.52 Vô hạn, cấp phát động Số thực float True; False true/false Lơ gíc bool ‘abcd123EFG’ Vơ hạn, cấp phát động Chuỗi kí tự str Trong Python kiểu liệu có phạm vi giá trị lớn, có cấu trúc nhớ cho liệu dạng động, khác hoàn toàn Pascal C/C++ dạng tĩnh Hiểu đơn giản nhớ chứa/lưu liệu tự thay đổi phù hợp với giá trị mà nhận, nhớ máy tính lớn phạm vi giá trị python lớn II KHAI BÁO BIẾN TRONG PYTHON Thông thường NNLT yêu cầu khai báo biến kèm với kiểu liệu biến kiểu liệu có tính tĩnh suốt trình thực thi, Python cho phép khai báo biến tùy thích vị trí mà người lập trình muốn, khơng cần phải khai báo kèm kiểu liệu, chương trình tự nhận diện kiểu liệu theo giá trị mà nhận, kiểu liệu biến động, kể thủ tục/hàm cấu trúc lặp Cú pháp: biến = Ví dụ: a = 10 -> biến a kiểu int a = 10.0 -> biến a kiểu float a = '10' -> biến a kiểu str Ví dụ: Ở hình biến st thay đổi kiểu liệu tính từ nhận giá trị Chú ý: - Lệnh type(biến) để kiểm tra kiểu liệu biến python - Tên biến đặt theo qui tắc phải bắt đầu chữ cái, khơng có khoảng trắng khơng trùng với từ khố; python phân biệt chữ in hoa in thường Ví dụ: dongia, Dongia, donGia, … biến khác NGƯT Nguyễn Tấn Phong - Trường THCS Đồng Nai, huyện Cát Tiên, tỉnh Lâm Đồng Căn ngơn ngữ lập trình python Tài liệu bồi dưỡng học sinh giỏi tin học bậc THCS III PHÉP TOÁN, BIỂU THỨC VÀ CÂU LỆNH TRONG PYTHON Phép “gán” Trong python phép “gán” tạo giá trị cho biến, dùng dấu “=” để phép gán Chú ý quan trọng: Trong python có phân biệt chữ hoa thường biến Ví dụ: a = 10 → Gán số 10 giá trị nhớ biến a b = 20 → Gán số 20 giá trị nhớ biến b c = a + b → Gán kết phép tính a+b = 30 giá trị nhớ biến c Chú ý: Biến lần xuất chương trình chương trình dấu “=” hiểu khai báo giá trị khởi đầu cho biến Từ lần sau trở đi, dấu ‘=’ phép gán Phép toán: a Phép toán số học: Python Phép toán Kí hiệu Ví dụ Cộng + 3+5 -> Trừ – -> -2 Nhân * 3*5 -> 15 Chia / 4/2 ->2.0 Chia nguyên // 4//2->2 Chia dư % 5%3 -> Lũy thừa ** 2**3 ->8 b Chuyển đổi kiểu liệu/Ép kiểu Python Python qui ước tất chữ số “0 9” nhập vào từ bán phím mặc định kiểu chuỗi (tức khơng thể thực phép tốn số học với giá trị đó), muốn thực phép tính phải chuyển liệu (cịn gọi ép kiểu) Ép kiểu Hàm chuyển Ví dụ thành xâu ký tự str() thành số nguyên int() thành số thực float() c Các phép toán so sánh: Đây phép toán mà giá trị trả lại sai Nếu giá trị biểu thức nhận giá trị 1, ngược lại sai biểu thức nhận giá trị Nói cách khác giá trị cụ thể khái niệm "đúng", "sai" Mở rộng C++ quan niệm giá trị khác "đúng" giá trị "sai" Python Phép tốn Kí hiệu Ví dụ Bằng == 3==4 -> Khác != 3!=4 ->1 Lớn > 3>4 -> NGƯT Nguyễn Tấn Phong - Trường THCS Đồng Nai, huyện Cát Tiên, tỉnh Lâm Đồng Căn ngơn ngữ lập trình python Lớn Bé Bé Tài liệu bồi dưỡng học sinh giỏi tin học bậc THCS >= < =4 -> 3 3 d Các phép tốn lơ gíc (luận lý): Hai tốn hạng loại phép tốn phải có kiểu lôgic tức nhận hai giá trị "đúng" (được thể số nguyên khác 0) "sai" (thể 0) Khi giá trị trả lại phép toán cho bảng sau: Python Phép tốn Kí hiệu Ví dụ Và and (3 > 1) and (7 Hoặc or or (4 >= 6) -> Không, phủ định not not (4 + < 7) -> Biểu thức: Biểu thức dãy kí hiệu kết hợp toán hạng, phép toán cặp dấu () theo qui tắc định Các toán hạng hằng, biến, hàm Biểu thức cung cấp cách thức để tính giá trị dựa tốn hạng tốn tử biểu thức Ví dụ: (x + y) * - ; - x + sqrt(y) ; (-b + sqrt(delta)) / (2*a) ; Câu lệnh đơn/ghép: a Lệnh đơn: câu lệnh python thiết lập từ từ khoá biểu thức … b Lệnh ghép (hay khối lệnh): Một số câu lệnh gọi lệnh có cấu trúc, tức bên lại chứa dãy lệnh khác Trong Python, khối lệnh ghép nhận biết thơng qua thụt lề Đó lý thụt lề Python vơ quan trọng, bạn thụt thò nhầm bị báo lỗi Quan trọng: dùng dấu “;” câu lệnh khối lệnh viết dịng Các hàm tốn học có sẵn: a Một số hàm tốn học có sẵn Python Python Ý nghĩa Ví dụ abs(x) Giá trị tuyệt đối x x**2 Bình phương x x**0.5 Căn bậc x round(x) Làm tròn đến số nguyên gần b Một số hàm toán học module math Mặc định, python có số phép tốn hàm tốn học Ngồi thư viện (module) math có thêm nhiều hàm nâng cao thêm số NGƯT Nguyễn Tấn Phong - Trường THCS Đồng Nai, huyện Cát Tiên, tỉnh Lâm Đồng Căn ngôn ngữ lập trình python Tài liệu bồi dưỡng học sinh giỏi tin học bậc THCS Để dùng mudule math đầu chương trình phải import thư viện math vào Cú pháp: import math IV NHẬP XUẤT DỮ LIỆU MỀM Khái niệm liệu: a Khái niệm: Về liệu NNLT (Pyhton, C/C++, Pascal, Scratch, …) hiểu chữ, số ký tự đặc biệt có bàn phím Như vậy, NNLT có ba dạng liệu sau: - Kiểu số: gồm số nguyên số thực - Kiểu ký tự: gồm chữ (gọi ký tự) nhìn thấy bàn phím, bao gồm: chữ thường, chữ in hoa, chữ số, ký tự đặc biệt (như dấu phẩy, dấu #, dấu cách, dấu !, @, &, …) Một chữ kiểu kí tự, nhiều ký tự kiểu xâu kí tự - Kiểu lơ gíc: kiểu liệu dạng logic (thường viết bool, có giá trị True/False) dùng để xác định tính sai phép toán, gồm phép toán so sánh (>, >=, lặp – (1+2) = lần b Lặp với số phần tử chuỗi, list hay tuple Cú pháp: for i in chuỗi: [phần tử 1,phần tử 2, …,phần tử n]: (giá trị 1,giá trị 2, …,giá trị n): Số lần lặp = số phần tử có list hay tuple Ví dụ: [1,’1’,’teo’,’ti’,[1,5]] -> lặp lần Chú ý: Trong Python, kiểu danh sách list tuple giống phần tử có kiểu liệu tùy ý, khác phần tử list thay đổi giá trị được, tuple khơng thay đổi Một số ví dụ vịng lặp for while python Ví dụ 2.1: Viết chương trình nhập vào số nguyên dương n Xuất hình tổng số nguyên chẵn phạm vi từ đến n? Chẳng hạn: Nhập n = 10; Xuất hình: 30 Nhập n = -10; Xuất hình: -30 NGƯT Nguyễn Tấn Phong - Trường THCS Đồng Nai, huyện Cát Tiên, tỉnh Lâm Đồng Căn ngơn ngữ lập trình python 12 Tài liệu bồi dưỡng học sinh giỏi tin học bậc THCS */Code Python Cách 1: Dùng bước nhảy hàm range() Cách 2: Dùng phép toán chia lấy dư (%) Ví dụ 2.2: Viết chương trình nhập vào số ngun n Tính giai thừa n? Cơng thức tính giai thừa n: n! = 1.2.3…n */Code Python Bây ta thử với n = n = 100 nhé! Ví dụ 2.3: Viết chương trình nhập vào chuỗi số nguyên, xuất hình số nguyên tách từ chuỗi? Chẳng hạn: Nhập vào s = -12 25 -36, xuất hình số: -12, 0, 25, -36 */Code python Chú ý: Ở dòng lệnh thứ 4, biến điều khiển vòng lặp i tự nhận liệu kiểu chuỗi theo sequence st.split(‘ ’) Do dòng lệnh số 5, ta phải dùng hàm ép kiểu int(i) để chuyển chuỗi số i thành số nguyên có giá trị chuỗi i Ta dùng hàm eval(i) thay cho int(i) Ví dụ 2.4: Viết chương trình nhập vào hai số nguyên a b Xuất hình UCLN hai số a, b? */Code python NGƯT Nguyễn Tấn Phong - Trường THCS Đồng Nai, huyện Cát Tiên, tỉnh Lâm Đồng Căn ngơn ngữ lập trình python 13 Tài liệu bồi dưỡng học sinh giỏi tin học bậc THCS VII MỘT SỐ KIỂU DỮ LIỆU CÓ CẤU TRÚC Kiểu liệu có cấu trúc hay cịn gọi cấu trúc liệu (CTDL) kiểu liệu mà đối tượng liệu tổ chức theo cấu trúc định có trình tự Tổ chức cấu trúc phổ biến dãy phần tử Trong phần trình bày kiểu liệu thường dùng với học sinh bậc THCS chuỗi (string) danh sách (list); cách vận dụng list mảng chiều hai chiều chương trình THCS Kiểu liệu chuỗi (Xâu kí tự) Trong python, chuỗi hay xâu kí tự hiểu tập hợp nhiều ký tự tính từ trái qua phải Để khai báo liệu kiểu chuỗi, ta thực theo cú pháp sau: Tên_biến_chuỗi = 'giá_trị_chuỗi ' Lưu ý: Trong python dùng cặp dấu nháy đơn ' ' cặp dấu nháy kép " " để xác định giá_trị_chuỗi Ví dụ: Hai chuỗi s1, s2 có giá trị python a Chỉ số phần tử chuỗi (indexing) Trong Python, kí tự tạo nên chuỗi đánh số từ tới n – -n tới -1 từ trái qua phải, với n số kí tự có chuỗi Ví dụ: Chuỗi s1 có 13 ký tự, số kí tự đánh sau: ns = s i n h n a m 0 8 10 11 12 Chỉ số (index) -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 Muốn truy xuất đến phần tử chuỗi ta dùng số Ví dụ: Quan trọng: Chuỗi Python bất biến, có nghĩa khơng thể thay đổi giá trị phép gán giá trị cho phần tử chuỗi Ví dụ: Nếu ta đổi kí tự ‘a’ thành ‘k’ chuỗi s1 phép gán, báo lỗi - Để duyệt qua chuỗi ta dùng vịng lặp Ví dụ: b Cắt chuỗi Cắt chuỗi tạo chuỗi chuỗi ban đầu Cú pháp: biến_chuỗi[vị trí bắt đầu : vị trí dừng : bước nhảy] NGƯT Nguyễn Tấn Phong - Trường THCS Đồng Nai, huyện Cát Tiên, tỉnh Lâm Đồng Căn ngơn ngữ lập trình python 14 Tài liệu bồi dưỡng học sinh giỏi tin học bậc THCS Ví dụ: c Tốn tử chuỗi python Phép tốn + Gộp chuỗi Phép toán * Lặp chuỗi d Một số hàm thường dùng kiểu chuỗi python Cú pháp: tên_hàm(chuỗi) len(chuỗi) Độ dài chuỗi max(chuỗi) eval(chuỗi) Tính chuỗi biểu thức toán học min(chuỗi) sorted(chuỗi) sorted(chuỗi, reverse = True) Ví dụ: Kí tự lớn chuỗi Kí tự bé chuỗi Sắp xếp chuỗi tăng dần Sắp xếp chuỗi giảm dần e Một số phương thức thường dùng kiểu chuỗi python Cú pháp: chuỗi.phương_thức() chuỗi.split(‘kí tự’) Tách chuỗi thành chuỗi ‘kí tự’ chuỗi.strip() Bỏ khoảng trắng trước sau chuỗi chuỗi.upper() Chuyển chuỗi thành chữ in hoa chuỗi.lower() Chuyển chuỗi thành chữ thường chuỗi.replace(s1,s2) Thay chuỗi s1 chuỗi s2 chuỗi chuỗi.count(s1) Đếm số chuỗi s1 có chuỗi chuỗi.find(s1) Cho biết vị trí chuỗi s1 chuỗi chuỗi.index(‘kí tự’) Cho biết số ‘kí tự’ chuỗi Chú ý: - Với kiểu liễu chuỗi python ta truy cập/xem cách nhập chuỗi phương thức để ta chọn (như hình) NGƯT Nguyễn Tấn Phong - Trường THCS Đồng Nai, huyện Cát Tiên, tỉnh Lâm Đồng Căn ngơn ngữ lập trình python 15 Tài liệu bồi dưỡng học sinh giỏi tin học bậc THCS f Thay đổi giá trị chuỗi python Không thể gán phần tử chuỗi giá trị khác ta thay đổi chuỗi phần tử chuỗi cách gán chuỗi với sau kết hợp tốn tử, hàm phương thức Ví dụ 1: Kết xuất hình: Ví dụ 2: Nhập chuỗi từ bàn phím Hãy xuất hình chuỗi loại bỏ khoảng trắng thừa? */Code Python Kết chạy code: Mảng chiều (hay danh sách List) Tương tự chuỗi kí tự, mảng chiều hay danh sách (List) tập hợp gồm nhiều phần tử có thứ tự theo số (index) từ trái sang phải Điểm khác List chuỗi: So sánh Xâu kí tự (str) Danh sách (list) Giống Là tập hợp gồm nhiều phần tử có thứ tự theo số (index) từ trái sang phải Khác - Mỗi phần tử chứa ký tự (1 - Mỗi phần tử số, kí chữ) tự, chuỗi list tuple - Có thể thay đổi giá trị phép - Không thể thay đổi giá trị gán phép gán Để khai báo liệu kiểu list, ta thực theo cú pháp sau: Tên_biến_list = [phần tử 0, phần tử 1,…, phần tử n] Hoặc Tên_biến_list = [giá trị khởi tạo]*số phần tử Ví dụ: a=[] -> khai báo list có tên a rỗng b=[1,2, ' teo', ' ti',[12,25]] -> khai báo list có tên b chứa nhiều phần tử teo ti [12,25] NGƯT Nguyễn Tấn Phong - Trường THCS Đồng Nai, huyện Cát Tiên, tỉnh Lâm Đồng Căn ngơn ngữ lập trình python 16 Tài liệu bồi dưỡng học sinh giỏi tin học bậc THCS c = [5]*10 -> khai báo list c có 10 phần tử số 5 5 5 5 5 Chú ý: - Một list mà tất phần tử chứa số thường gọi dãy số Ví dụ: a = [1,2,8,-20,6,7] -> list a gọi dãy số - Muốn truy xuất đến phần tử chuỗi ta dùng số Ví dụ: b=[1,2, ' teo', ' ti',[12,25]] Truy xuất: b[1]-> 2; b[2]-> ' teo'; b[4]-> [12,25] - Để duyệt qua chuỗi ta dùng vòng lặp - Để thay đổi giá trị phần tử list, ta dùng phép gán: b[2] = 'cun' -> thay giá trị 'teo' giá trị 'cun' - Các hàm thường dùng list: list(), len(), max(), min(), sorted(), sum(), … - Các phương thức thường dùng list: append(), insert(), reverse(), extend(), count(), index(),remove(), pop(), sort(), clear() Phân biệt hàm phương thức list: + Hàm trả giá trị cần tìm kiếm list khơng làm thay đổi list Cú pháp: tên_hàm(tên_list) + Phương thức làm thay đổi nhiều giá trị list khác với list ban đầu Cú pháp: tên_list.tên_phương_thức() VIII DỮ LIỆU KIỂU FILE TEXT Vai trò kiểu tệp Tất liệu có kiểu: int, float, str, list, … lưu trữ nhớ (RAM) liệu bị tắt máy Với số toán, liệu cần lưu trữ để xử lí nhiều lần với khối lượng lớn cần có kiểu liệu tệp (file) Kiểu liệu tệp có đặc điểm sau: - Được lưu trữ lâu dài nhớ (đĩa từ, CD,…) không bị tắt nguồn điện; - Lượng thơng tin lưu trữ tệp lớn phụ thuộc vào dung lượng đĩa Tệp văn Tệp văn tệp mà liệu ghi dạng kí tự theo mã ASCII Trong tệp văn bản, dãy kí tự kết thúc nhóm kí tự xuống dịng (#32) hay kí tự kết thúc tệp Các liệu dạng văn sách, tài liệu, học, giáo án, chương trình nguồn viết ngôn ngữ bậc cao, thường lưu trữ dạng tệp văn Hai thao tác tệp ghi liệu vào tệp đọc liệu từ tệp Thao tác đọc/ghi với tệp thực với phần tử tệp Để thao tác với kiểu liệu tệp, người lập trình cần tìm hiểu cách thức mà ngơn ngữ lập trình cung cấp, gồm vấn đề chính: (1) Khai báo biến kiểu file (để liên kết với tên file) (2) Mở file để: + Đọc liệu; + Ghi liệu; (3) Đóng file NGƯT Nguyễn Tấn Phong - Trường THCS Đồng Nai, huyện Cát Tiên, tỉnh Lâm Đồng Căn ngơn ngữ lập trình python 17 Tài liệu bồi dưỡng học sinh giỏi tin học bậc THCS Thao tác với file văn (text) python 3.1 Tạo file văn để lưu liệu python nào? Bước 1: Từ môi trường soạn thảo mã nguồn Python => New (hoặc Ctrl + N) => Nhập liệu vào ô soạn thảo => Save (hoặc Ctrl + S) Bước 2: Lưu tệp với tên người dùng đặt kèm theo phần mở rộng qui định Ví dụ: Tạo file có tên UCLN.INP chứa hai số nguyên cách khoảng trắng UCLN.INP UCLN.OUT 10 3.2 Mở file để xem liệu Để mở file văn ta thực sau: Từ môi trường soạn thảo mã nguồn Python => Open (hoặc Ctrl + O) => Chọn file cần mở xem hộp thoại Chú ý: Trong thi HSG môn tin, nội dung liệu file vào cho trước đề Thí sinh dự thi tự tạo file liệu vào viết lệnh để NNLT tạo file liệu Ví dụ: Đề thi HSG tỉnh Lâm Đồng 3.3 Thao tác với file văn a) Biến file Là “tên” người dùng đặt để lưu địa file (tương tự biến có kiểu liệu khác) Ví dụ: f, f1, fi, fo, … b) Mở tệp Để đọc ghi file mở file cơng việc Python cho phép thực điều với hàm open() Cú pháp: = open('tên file.mở rộng',mode) NGƯT Nguyễn Tấn Phong - Trường THCS Đồng Nai, huyện Cát Tiên, tỉnh Lâm Đồng Căn ngôn ngữ lập trình python 18 Tài liệu bồi dưỡng học sinh giỏi tin học bậc THCS Trong đó: - 'tên file.mở rộng' tên tập tin cần mở - mode quy định cách thức mà tập tin mở để thao tác đọc ghi Nếu ghi 'w' mở file để ghi liệu, bỏ qua không ghi ghi 'r' mở để đọc liệu Ví dụ: fi = open('UCLN.INP') -> định biến fi mở file có tên UCLN.INP để đọc liệu fo = open('UCLN.OUT','w') -> định biến fo mở file có tên UCLN.OUT để ghi liệu c) Lệnh đọc liệu từ file vào biến nhớ Cú pháp: = .readline().split() Ví dụ: fi = open('UCLN.INP') a,b = map(int,fi.readline().split()) print(a) print(b) Chú ý: - Chỉ lệnh split() thị đọc giá trị file gặp khoảng trắng gán giá trị đọc vào biến Nếu có số khơng dùng lệnh split() - Bất kỳ giá trị đọc từ bàn phím hay đọc từ file dạng text, ngôn ngữ python mặc định gán cho kiểu chuỗi str Nên muốn dùng liệu đọc lên từ file dạng số (để tính tốn được) phải dùng hàm chuyển liệu số Có hàm để chuyển dạng số int(), float() eval() Chẳng hạn: fi = open('UCLN.INP') a,b = fi.readline().split() #lệnh đọc liệu từ file lên cho biến a b a,b=int(a), float(b) #chuyển a thành số nguyên, b thành số thực print(a) print(b) - Để chuyển nhóm nhiều giá trị kiểu (ví dụ chữ số) kiểu số (int, float) ta dùng hàm map(kiểu số cần chuyển, liệu có cấu trúc) Chẳng hạn: a,b = map(int,fi.readline().split()) # đọc chữ số chuyển thành int gán cho biến a b a = list(map(int,fi.readline().split())) # đọc tất chữ số dòng chuyển thành int gán vào mảng chiều a d) Lệnh ghi liệu từ biến nhớ vào file Cú pháp: .write(‘nội dung giá trị cần ghi’) print(nội dung giá trị cần ghi, file = ) Ví dụ: fo = open('UCLN.OUT','w') fo.write(str(a)) print(a,file=fo) Chú ý: - Nếu ghi vào file lệnh fo.write() liệu số phải dùng hàm str() chuyển liệu số chuỗi Nếu dùng lệnh print() khơng cần chuyển phải thêm thị file=fo - Muốn ghi xuống dòng phải thêm thị \n NGƯT Nguyễn Tấn Phong - Trường THCS Đồng Nai, huyện Cát Tiên, tỉnh Lâm Đồng Căn ngôn ngữ lập trình python 19 Tài liệu bồi dưỡng học sinh giỏi tin học bậc THCS e) Đóng tệp Sau làm việc xong với tệp cần phải đóng tệp Việc đóng tệp đặc biệt quan trọng sau ghi liệu, hệ thống thực hoàn tất việc ghi liệu tệp Thủ tục đóng tệp có dạng: .close() Ví dụ fi.close(); fo.close(); Ví dụ: Viết chương trình giải phương trình bậc ax + b = */Cách giải phương trình bậc ax+b=0 sau: + Nếu a = b = phương trình vơ số nghiệm + Nếu a = b ≠ phương trình vơ nghiệm 𝑏 + Nếu a ≠ phương trình có nghiệm x = − 𝑎 - Dữ liệu đọc vào từ file: PTBN.INP + Dòng chứa hai số nguyên a b, cách khoảng trắng - Dữ liệu ghi file: PTBN.OUT + Dòng ghi kết nghiệm tìm PTBN.INP PTBN.OUT 00 vơ số nghiệm 10 -2 **/Hướng dẫn chương trình mẫu: Lần lượt thực thao tác sau để giải toán với liệu đọc file: Thao tác 1: Tạo file liệu đầu vào có tên PTBN.INP Bước Từ môi trường viết lệnh Python => New (hoặc Ctrl + N) => Nhập liệu vào ô soạn thảo (chú ý: số giá trị biến phải cách khoảng trắng) => Save (hoặc Ctrl + S) Bước Lưu tệp với tên người dùng đặt kèm theo phần mở rộng qui định Đến đây, tạo file liệu đầu vào PTBN.INP Các tập khác làm tương tự NGƯT Nguyễn Tấn Phong - Trường THCS Đồng Nai, huyện Cát Tiên, tỉnh Lâm Đồng Căn ngơn ngữ lập trình python 20 Tài liệu bồi dưỡng học sinh giỏi tin học bậc THCS Thao tác 2: Tạo file làm (source code) có tên PTBN.py Bước Từ môi trường viết lệnh Python => New (hoặc Ctrl + N) => Save (hoặc Ctrl + S) => Viết hoàn chỉnh code để giải toán Bước Nhấn Ctrl + S để lưu trước chạy Bước Viết code chạy thử để giải toán Code mẫu tham khảo: Thao tác 3: Kiểm tra lại kết làm ghi file PTBN.OUT Bước Từ môi trường viết lệnh Python => File => Open (hoặc Ctrl + O) => mở file lưu đĩa (như hình): NGƯT Nguyễn Tấn Phong - Trường THCS Đồng Nai, huyện Cát Tiên, tỉnh Lâm Đồng Căn ngôn ngữ lập trình python 21 Tài liệu bồi dưỡng học sinh giỏi tin học bậc THCS Kiểm tra kết từ file mở ra: - - HẾT - - MỘT SỐ HÀM TÍCH HỢP SẴN TRONG PYTHON Tên abs() input() int() float() eval() str() isinstance() format() bin() oct() hex() chr() Công dụng Trả giá trị tuyệt đối số Đọc từ bàn phím trả chuỗi Trả số nguyên từ số chuỗi Trả số thập phân từ số, chuỗi Tính giá trị biểu thức Chuyển đối tượng cho thành chuỗi Kiểm tra kiểu liệu đối tượng (int, float, str, list) Trả representation định dạng giá trị Chuyển số nguyên sang chuỗi nhị phân Chuyển số nguyên sang chuỗi bát phân Chuyển số nguyên sang chuỗi thập lục phân Trả ký tự có mã code Unicode NGƯT Nguyễn Tấn Phong Ví dụ abs(-7) -> int('12') -> 12; int(3/2) ->1 float('2.3') -> 2.3; float(3/2) -> 1.5 eval('3+5*2-5/2') -> 10.5 str(15) -> '15' isinstance(2,int) -> True format(123.446, ".2f") bin(15) -> '0b1111' oct(10) -> '0o12' hex(10) -> '0xa' chr(65) -> A - Trường THCS Đồng Nai, huyện Cát Tiên, tỉnh Lâm Đồng Căn ngơn ngữ lập trình python ord() len() range() list() max() min() round() sum() pow() sorted() reversed() open() type() print() 22 Tài liệu bồi dưỡng học sinh giỏi tin học bậc THCS Trả mã code Unicode ký tự Trả độ dài đối tượng (list, str) Trả list số nguyên từ số bắt đầu đến số kết thúc -1 Tạo list Python (list, str) Trả phần tử lớn (list, str) Trả phần tử nhỏ (list, str) Làm trịn số thập phân Tính tổng đối tượng, phải có đối tượng list(int,float) Trả x mũ y Trả list xếp Trả iterator đảo ngược dãy Trả đối tượng File Trả kiểu đối tượng In đối tượng cung cấp ord('A') -> 65 len('asd4') -> range(1,5) ->1, 2, 3, range(1,5) -> [1,2,3,4] MỘT SỐ HÀM TỐN HỌC TRONG MODULE MATH Muốn sử dụng cần viết lệnh import math trước dùng đến lệnh Ví dụ: Tên math.pi math.sqrt(x) math.floor(x) math.ceil(x) math.trunc(x) math.factorial(n) math.gcd(a,b) math.sin(x) math.cos(x) math.tan(x) math.asin(x) math.acos(x) math.atan(x) NGƯT Nguyễn Tấn Phong Công dụng Số  (3.141592…) Căn bậc x Làm tròn xuống Làm tròn lên Bỏ phần thập phân số thực x n! = 1.2 n Ước chung lớn a b Các hàm lượng giác Ví dụ - Trường THCS Đồng Nai, huyện Cát Tiên, tỉnh Lâm Đồng ... trình python 17 Tài liệu bồi dưỡng học sinh giỏi tin học bậc THCS Thao tác với file văn (text) python 3 .1 Tạo file văn để lưu liệu python nào? Bước 1: Từ môi trường soạn thảo mã nguồn Python. .. Trường THCS Đồng Nai, huyện Cát Tiên, tỉnh Lâm Đồng Căn ngôn ngữ lập trình python 10 Tài liệu bồi dưỡng học sinh giỏi tin học bậc THCS Ví dụ: Viết chương trình xếp loại học lực học kỳ học sinh. .. THCS Đồng Nai, huyện Cát Tiên, tỉnh Lâm Đồng Căn ngơn ngữ lập trình python Tài liệu bồi dưỡng học sinh giỏi tin học bậc THCS PHẦN II: LẬP TRÌNH PYTHON CƠ BẢN I CÁC KIỂU DỮ LIỆU CƠ BẢN TRONG PYTHON

Ngày đăng: 30/04/2022, 07:11

Hình ảnh liên quan

(Hình trên là tải python 3.10.0 cho hệ điều hành windows) - CHUYÊN đề 1 tài LIỆU bồi DƯỠNG học SINH GIỎI TIN học bậc THCS CAN BAN PYTHON

Hình tr.

ên là tải python 3.10.0 cho hệ điều hành windows) Xem tại trang 2 của tài liệu.
Khi cài đặt xong trên menu Start của Windows có icon như hình: - CHUYÊN đề 1 tài LIỆU bồi DƯỠNG học SINH GIỎI TIN học bậc THCS CAN BAN PYTHON

hi.

cài đặt xong trên menu Start của Windows có icon như hình: Xem tại trang 3 của tài liệu.
(.x.x là phiên bản phát triển hiện tại, ví dụ trong hình là phiên bản 3.10.0, các phiên bản này thường xuyên được cập nhật theo thời gian do nhà phát triển cung cấp; phiên  bản sau luôn được tích hợp thêm điểm mới) - CHUYÊN đề 1 tài LIỆU bồi DƯỠNG học SINH GIỎI TIN học bậc THCS CAN BAN PYTHON

x.x.

là phiên bản phát triển hiện tại, ví dụ trong hình là phiên bản 3.10.0, các phiên bản này thường xuyên được cập nhật theo thời gian do nhà phát triển cung cấp; phiên bản sau luôn được tích hợp thêm điểm mới) Xem tại trang 3 của tài liệu.
giao diện coding mode (viết lệnh thành tập tin) sẽ được mở như hình. Đây là giao diện giúp lập trình viên sắp xếp các lệnh thành một tập tin *.py để thực thi tuần tự - CHUYÊN đề 1 tài LIỆU bồi DƯỠNG học SINH GIỎI TIN học bậc THCS CAN BAN PYTHON

giao.

diện coding mode (viết lệnh thành tập tin) sẽ được mở như hình. Đây là giao diện giúp lập trình viên sắp xếp các lệnh thành một tập tin *.py để thực thi tuần tự Xem tại trang 4 của tài liệu.
(còn gọi là đọc dữ liệu từ bàn phím) hoặc xuất ra màn hình để xem (còn gọi là ghi dữ liệu ra màn hình) thì gọi là thao tác vào/ra dữ liệu mềm (hay nhập/xuất chuẩn)  - CHUYÊN đề 1 tài LIỆU bồi DƯỠNG học SINH GIỎI TIN học bậc THCS CAN BAN PYTHON

c.

òn gọi là đọc dữ liệu từ bàn phím) hoặc xuất ra màn hình để xem (còn gọi là ghi dữ liệu ra màn hình) thì gọi là thao tác vào/ra dữ liệu mềm (hay nhập/xuất chuẩn) Xem tại trang 8 của tài liệu.
2. Lệnh nhập/xuất chuẩn từ bàn phím/màn hình - CHUYÊN đề 1 tài LIỆU bồi DƯỠNG học SINH GIỎI TIN học bậc THCS CAN BAN PYTHON

2..

Lệnh nhập/xuất chuẩn từ bàn phím/màn hình Xem tại trang 9 của tài liệu.
Ví dụ 2.1: Viết chương trình nhập vào một số nguyên dương n. Xuất ra màn hình - CHUYÊN đề 1 tài LIỆU bồi DƯỠNG học SINH GIỎI TIN học bậc THCS CAN BAN PYTHON

d.

ụ 2.1: Viết chương trình nhập vào một số nguyên dương n. Xuất ra màn hình Xem tại trang 11 của tài liệu.
Ví dụ 2.4: Viết chương trình nhập vào hai số nguyê na và b. Xuất ra màn hình - CHUYÊN đề 1 tài LIỆU bồi DƯỠNG học SINH GIỎI TIN học bậc THCS CAN BAN PYTHON

d.

ụ 2.4: Viết chương trình nhập vào hai số nguyê na và b. Xuất ra màn hình Xem tại trang 12 của tài liệu.
Kết quả xuất ra màn hình: - CHUYÊN đề 1 tài LIỆU bồi DƯỠNG học SINH GIỎI TIN học bậc THCS CAN BAN PYTHON

t.

quả xuất ra màn hình: Xem tại trang 15 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan