1. Trang chủ
  2. » Giáo án - Bài giảng

Python 11 (Tài liệu theo sách giáo khoa Tin 11)

56 306 0

Đ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

Cấu trúc

  • LÀM QUEN PYTHON

    • 1. Giới thiệu về Python

    • 2. Giới thiệu Visual Studio Code (VS Code)

    • 3. Cài đặt

      • a. Trên máy tính

      • b. Trên điện thoại

      • c. Lập trình trên các website trực tuyến:

  • CHƯƠNG I: MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH

  • BÀI 1. KHÁI NIỆM LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH

    • 1. Khái niệm lập trình và ngôn ngữ lập trình

    • 2. Chương trình dịch

      • a. Khái niệm

      • b. Phân loại

  • BÀI 2. CÁC THÀNH PHẦN CỦA NGÔN NGỮ LẬP TRÌNH

    • 1. Các thành phần

      • a. Bảng chữ cái

      • b. Cú pháp

      • c. Ngữ nghĩa

    • 2. Một số khái niệm

      • a. Tên

      • b. Hằng

      • c. Biến

      • d. Chú thích

  • CHƯƠNG II: CHƯƠNG TRÌNH ĐƠN GIẢN

  • BÀI 3. CẤU TRÚC CHƯƠNG TRÌNH

    • 1. Cấu trúc chung

    • Trong đó: [<Phần khai báo>] có thể có hoặc không và nếu có thì có thể bao gồm nhiều nội dung khai báo khác nhau, mỗi loại có một cú pháp riêng biệt. <phần thân> bắt bộc phải có.

    • 2. Ví dụ chương trình đơn giản

      • a. Ví dụ 1

      • b. Ví dụ 2(*)

  • BÀI 4. MỘT SỐ KIỂU DỮ LIỆU CHUẨN

    • 1. Một số kiểu dữ liệu chuẩn

      • a. Kiểu nguyên

      • b. Kiểu thực:

      • c. Kiểu chuỗi

      • d. Kiểu lôgic

    • 2. Chuyển đổi kiểu dữ liệu

  • BÀI 5. BIẾN TRONG PYTHON

    • 1. Biến trong Python

    • 2. Kiểm tra kiểu dữ liệu của biến

  • BÀI 6. PHÉP TOÁN, BIỂU THỨC, CÂU LỆNH GÁN

    • 1. Phép toán

    • 2. Biểu thức số học

    • 3. Hàm số học chuẩn

    • 4. Biểu thức quan hệ

    • 5. Biểu thức lôgic

    • 6. Câu lệnh gán

  • BÀI 7. CÁC THỦ TỤC CHUẨN VÀO/RA ĐƠN GIẢN

    • 1. Nhập dữ liệu vào từ bàn phím

    • 2. Đưa dữ liệu ra màn hình

  • BÀI 8. SOẠN THẢO, DỊCH, THỰC HIỆN VÀ HIỆU CHỈNH CHƯƠNG TRÌNH

  • BÀI TẬP VÀ THỰC HÀNH 1

    • 1. Mục đích, yêu cầu

    • 2. Nội dung

    • CÂU HỎI VÀ BÀI TẬP

  • CHƯƠNG III: CẤU TRÚC RẼ NHÁNH VÀ LẶP

  • BÀI 9. CẤU TRÚC RẼ NHÁNH

    • 1. Câu lệnh if

      • a. Dạng thiếu

      • b. Dạng đủ

    • 2. Một số ví dụ

      • a. Ví dụ 1

      • b. Ví dụ 2

    • BÀI TẬP

  • BÀI 10. CẤU TRÚC LẶP

    • 1. Câu lệnh for

      • a. Ví dụ 1

      • b. Ví dụ 2

      • c. Ví dụ 3

      • d. Ví dụ 4

    • 2. Câu lệnh while

      • a. Ví dụ 1

      • b. Ví dụ 2

    • BÀI TẬP

  • BÀI TẬP VÀ THỰC HÀNH 2

    • 1. Mục đích, yêu cầu

    • 2. Nội dung

    • CÂU HỎI VÀ BÀI TẬP

  • CHƯƠNG IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC

  • BÀI 11: KIỂU DANH SÁCH - LIST

    • 1. Khởi tạo danh sách List

    • 2. Các phép toán và phương thức của List

      • a. Hàm tính độ dài danh sách

      • b. Danh sách rỗng

      • c. Phép + và * danh sách

      • d. Các phương thức của List

    • 3. Một số thao tác xử lý trong List

      • a. Nhập danh sách các phần tử

      • b. In danh sách các phần tử

      • c. Xử lý trong List

    • BÀI TẬP VẬN DỤNG

    • BÀI TẬP

  • BÀI TẬP VÀ THỰC HÀNH 3

    • 1. Mục đích, yêu cầu

    • 2. Nội dung

      • Bài 1

      • Bài 2

  • BÀI TẬP VÀ THỰC HÀNH 4

    • 1. Mục đích, yêu cầu

    • 2. Nội dung

      • Bài 1

      • Bài 2

  • BÀI 12: KIỂU XÂU (CHUỖI KÍ TỰ)

    • 1. Dữ liệu kiểu xâu

    • 2. Các thao tác xử lí xâu

      • a. Các phép toán

      • b. Nhóm lệnh điều chỉnh liên quan đến chữ hoa, thường

      • c. Nhóm lệnh điều chỉnh khoảng trống thừa

      • d. Một số câu lệnh khác

    • 3. Một số ví dụ

    • BÀI TẬP

  • BÀI TẬP VÀ THỰC HÀNH 5

    • 1. Mục đích, yêu cầu

    • 2. Nội dung

      • Bài 1

      • Bài 2

      • Bài 3

  • BÀI 14. KIỂU DỮ LIỆU TỆP

    • 1. Vai trò kiểu tệp

    • 2. Phân loại tệp và thao tác với tệp

      • a. Phân loại

      • b. Thao tác

  • BÀI 15. THAO TÁC VỚI TỆP

    • 1. Mở tệp

    • 2. Đọc/ghi tệp văn bản

      • a. Đọc tệp văn bản

      • b. Ghi tệp văn bản

    • 3. Đóng tệp

    • BÀI TẬP

  • BÀI 16. VÍ DỤ LÀM VIỆC VỚI TỆP

    • 1. Ví dụ 1

    • 2. Ví dụ 2

    • CÂU HỎI VÀ BÀI TẬP

  • CHƯƠNG VI. CHƯƠNG TRÌNH CON VÀ LẬP TRÌNH CÓ CẤU TRÚC

  • BÀI 17. CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI

    • 1. Khái niệm chương trình con

    • 2. Phân loại và cấu trúc của chương trình con

      • a. Phân loại

      • b. Cấu trúc chương trình con

      • c. Thực hiện chương trình con

  • BÀI 18. VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON

    • 1. Định nghĩa hàm số

      • a. Hàm không trả về giá trị

      • b. Hàm có trả về giá trị

      • c. Hàm định nghĩa trực tiếp

    • 2. Ví dụ

      • a. Ví dụ 1

      • b. Ví dụ 2

      • c. Ví dụ 3

    • BÀI TẬP

  • BÀI TẬP VÀ THỰC HÀNH 6

    • 1. Mục đích, yêu cầu

    • 2. Nội dung

  • BÀI TẬP VÀ THỰC HÀNH 7

    • 1. Mục đích, yêu cầu

    • 2. Nội dung

Nội dung

Tài liệu được biên soạn theo cấu trúc sách giáo khoa tin học 11. Python là một ngôn ngữ lập trình bậc cao cho các mục đích lập trình đa năng, do Guido van Rossum tạo ra và lần đầu ra mắt vào năm 1991. Một số lợi ích khi học lập trình Python: Đơn giản và dễ dàng tìm hiểu. Python là ngôn ngữ cực kỳ đơn giản và dễ đọc, dễ học, dễ nhớ, nhưng vẫn rất mạnh mẽ. Các ưu điểm như miễn phí mã nguồn mở, highlevel, thông dịch, cộng đồng lớn, … thuận tiện cho người mới học lập trình.

(Tài liệu sử dụng nội bộ) LÀM QUEN PYTHON Giới thiệu Python Python ngôn ngữ lập trình bậc cao cho mục đích lập trình đa năng, Guido van Rossum tạo lần đầu mắt vào năm 1991 Một số lợi ích học lập trình Python: - Đơn giản dễ dàng tìm hiểu Python ngơn ngữ đơn giản dễ đọc, dễ học, dễ nhớ, mạnh mẽ Các ưu điểm miễn phí & mã nguồn mở, high-level, thông dịch, cộng đồng lớn, … thuận tiện cho người học lập trình - Chạy nhiều tảng dễ mở rộng Python hỗ trợ hầu hết tảng Tính mở rộng Python cho phép tích hợp Java thành phần NET Bạn gọi thư viện C C ++ để sử dụng - Phát triển Web Python có loạt framework cho việc phát triển trang web Các framework phổ biến Django, Flask, Pylons, Vì framework viết Python, code chạy nhanh nhiều ổn định - Trí tuệ nhân tạo AI chủ đề nóng ngành CNTT Từ cho cỗ máy bắt chước não người, có khả suy nghĩ, phân tích đưa định Có nhiều thư viện hỗ trợ tốt như: sklearn cho thuật toán Machine Learning bản, tensorflow, pytorch, keras, theano … cho thuật toán Deep Learning - Đồ họa máy tính Python sử dụng nhiều dự án Nó sử dụng để xây dựng GUI ứng dụng desktop Nó sử dụng thư viện Tkinter để nhanh chóng dễ dàng tạo ứng dụng - Big Data Các thư viện hỗ trợ Pydoop, Dask Pyspark cho xử lý Big Data - Khoa học liệu Data Science lý lớn để Python đứng đầu với thư viện hỗ trợ Pandas, NumPy, Matplotlib Giới thiệu Visual Studio Code (VS Code) - Visual Studio Code trình soạn thảo mã nguồn mở, gọn nhẹ có khả vận hành mạnh mẽ đa tảng (Windows, Linux macOS) phát triển Microsoft - Dễ dàng việc chỉnh sửa, xây dựng gỡ lỗi VS Code kết hợp đơn giản trình chỉnh sửa với mạnh mẽ cơng cụ phát triển Debug, Git Control, Syntax Higlight nhiều - Tốc độ ưu vượt trội VS Code cung cấp hệ sinh thái mở rộng vô phong phú, hỗ trợ vơ số ngơn ngữ lập trình khác Python, JavaScript, HTML, CSS, TypeScript, C ++, Java, PHP, Go, C, PHP, SQL, Ruby, Objective-C, … - Cung cấp sẵn tính IntelliSense lập trình viên sử dụng để lập trình thơng minh, thơng tin tham số, hỗ trợ nội dung, thông tin nhanh gợi ý code - Sự hỗ trợ cộng đồng GitHub Là dự án mã nguồn mở nên bạn hồn tồn tham gia đóng góp tìm kiếm giúp đỡ từ cộng đồng GitHub Thị phần VS Code năm 2019 Nhờ ưu điểm bật mình, VS Code trở thành lựa chọn hàng đầu nhiều lập trình viên, giúp đảm bảo tiến độ đạt hiệu công việc cao Cài đặt a Trên máy tính Cài Python Tải từ https://www.python.org/downloads/ cài đặt (Phiên 3.9.7) Lưu ý lựa chọn cài OS System Type (x86, x64) Cài chương trình soạn thảo VS Code (IDE) Tải đây: https://code.visualstudio.com/download Giao diện VS Code sau cài đặt: Cài đặt tiện ích mở rộng cần thiết cho VS Code để lập trình ngơn ngữ Python * Các chương trình soạn thảo khác Ngồi Visual Studio Code, sử dụng số phần mềm soạn thảo khác Visual Studio, PyCharm, PyScripter, Sublime Text, … b Trên điện thoại Sử dụng điện thoại thông minh hệ điều hành Android, tải cài đặt phần mềm Pydroid CH Play c Lập trình website trực tuyến: Truy cập: google.com.vn, tìm kiếm từ khóa: “python online”, truy cập trang: https://www.online-python.com/ https://www.onlinegdb.com/ https://www.programiz.com/python-programming/online-compiler/ CHƯƠNG I: MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH  Khái niệm sở lập trình  Khái niệm thành phần ngơn ngữ lập trình  Vai trị phân loại chương trình dịch BÀI KHÁI NIỆM LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH Như biết, tốn có thuật tốn giải máy tính điện tử Khi giải tốn máy tính điện tử, sau bước xác định toán xây dựng lựa chọn thuật toán khả thi bước lập trình Khái niệm lập trình ngơn ngữ lập trình Lập trình sử dụng cấu trúc liệu câu lệnh ngơn ngữ lập trình cụ thể để mô tả liệu diễn đạt thao tác thuật tốn Ngơn ngữ dùng để viết chương trình máy tính gọi ngơn ngữ lập trình Ngơn ngữ lập trình gồm loại: ngơn ngữ máy, hợp ngữ, ngơn ngữ bậc cao Chương trình viết ngơn ngữ lập trình bậc cao nói chung khơng phụ thuộc vào máy, nghĩa chương trình thực nhiều máy Chương trình viết ngơn ngữ máy nạp trực tiếp vào nhớ thực cịn chương trình viết ngơn ngữ lập trình bậc cao phải chuyển đổi thành chương trình ngơn ngữ máy thực Chương trình dịch a Khái niệm Chương trình đặc biệt có chức chuyển đổi chương trình viết ngơn ngữ lập trình bậc cao thành chương trình thực máy tính cụ thể gọi chương trình dịch Chương trình dịch nhận đầu vào chương trình viết ngơn ngữ lập trình bậc cao (chương trình nguồn) thực chuyển đổi sang ngơn ngữ máy (chương trình đích) Chương trình nguồn  Chương trình dịch  Chương trình đích b Phân loại - Thông dịch: Thông dịch thực cách lặp lại dãy bước sau: + Kiểm tra tính đắn câu lệnh chương trình nguồn; + Chuyển đổi câu lệnh thành hay nhiều câu lệnh tương ứng ngôn ngữ máy; + Thực câu lệnh vừa chuyển đổi - Biên dịch: Biên dịch thực qua hai bước: + Duyệt, kiểm tra, phát lỗi, kiểm tra tính đắn câu lệnh chương trình nguồn; + Dịch tồn chương trình nguồn thành chương trình đích thực máy lưu trữ để sử dụng lại cần thiết Thơng thường, với chương trình dịch cịn có số dịch vụ liên quan biên soạn, lưu trữ, tìm kiếm, cho biết kết trung gian, Toàn dịch vụ tạo thành môi trường làm việc ngôn ngữ lập trình cụ thể Ví dụ, Turbo Pascal 7.0, Free Pascal 1.2, Visual Pascal 2.1, ngôn ngữ Pascal, C++, Python BÀI CÁC THÀNH PHẦN CỦA NGÔN NGỮ LẬP TRÌNH Các thành phần Mỗi ngơn ngữ lập trình thường có ba thành phần bảng chữ cái, cú pháp ngữ nghĩa a Bảng chữ Là tập kí tự dùng để viết chương trình Khơng phép dùng kí tự ngồi kí tự quy định bảng chữ Trong Python, sử dụng mặc định bảng mã Unicode với 128000 kí tự Dưới bảng chữ bảng mã ASCII bao gồm kí tự: Các chữ thường chữ in hoa bảng chữ tiếng Anh: abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ - 10 chữ số thập phân Ả Rập: - Các kí tự đặc biệt: + - * / = , (dấu phẩy) { } : ' (dấu nháy) _ (dấu gạch dưới) < > [ ; # ^ $ @ & ( ) dấu cách (mã ASCII 32) ] b Cú pháp Là quy tắc để viết chương trình Dựa vào chúng, người lập trình chương trình dịch biết tổ hợp kí tự bảng chữ hợp lệ tổ hợp khơng hợp lệ Nhờ đó, mơ tả xác thuật tốn để máy thực c Ngữ nghĩa Xác định ý nghĩa thao tác cần phải thực hiện, ứng với tổ hợp kí tự dựa vào ngữ cảnh Tóm lại: Cú pháp cho biết cách viết chương trình hợp lệ, cịn ngữ nghĩa xác định ý nghĩa tổ hợp kí tự chương trình Các lỗi cú pháp chương trình dịch phát thơng báo cho người lập trình biết Chỉ có chương trình khơng có lỗi cú pháp dịch sang ngôn ngữ máy Các lỗi ngữ nghĩa khó phát Phần lớn lỗi ngữ nghĩa phát thực chương trình liệu cụ thể Một số khái niệm a Tên Mọi đối tượng chương trình phải đặt tên Tên dãy liên tiếp khơng q 256 kí tự bao gồm chữ số, chữ dấu gạch bắt đầu chữ dấu gạch Trong chương trình dịch Python, tên có phân biệt chữ hoa, chữ thường Nhiều ngơn ngữ lập trình, có Python, phân biệt ba loại tên: Loại tên Tên dành riêng Tên chuẩn Ý nghĩa Một số tên ngơn ngữ lập trình quy định dùng với ý nghĩa xác định, người lập trình không sử dụng với ý nghĩa khác Những tên gọi tên dành riêng (còn gọi từ khố) Một số tên ngơn ngữ lập trình dùng với ý nghĩa Những tên gọi tên chuẩn Tuy nhiên, người lập trình khai báo dùng chúng với ý nghĩa mục đích khác Ý nghĩa tên chuẩn quy định thư viện Ví dụ Trong Pascal: program, uses, const, Trong C++: main, include, if, while, Trong Python: print, if, else, Trong Pascal: abs, sqr, integer, byte, Trong C++: cin, ngơn ngữ lập trình Tên người lập trình đặt Tên người lập trình đặt dùng với ý nghĩa riêng, xác định cách khai báo trước sử dụng Các tên không trùng với tên dành riêng cout, getchar, Trong Python: str, float, int, A1 DELTA CT_Vidu b Hằng Là đại lượng có giá trị khơng thay đổi q trình thực chương trình - Hằng số học số ngun hay số thực, có dấu khơng dấu - Hằng lôgic giá trị đúng/sai tương ứng với True/False Python - Hằng chuỗi chuỗi kí tự bảng chữ Khi viết, chuỗi kí tự đặt cặp dấu nháy đơn cặp dấu nháy kép Ví dụ: - Hằng số học: -5 1.5 -22.36 +3.14159 -2.236E01 - Hằng logic: True +18 0.5 1.0E-6 False - Hằng chuỗi: “Tin học 11”, ‘Python’ c Biến Là đại lượng đặt tên, dùng để lưu trữ giá trị giá trị thay đổi trình thực chương trình Tuỳ theo cách lưu trữ xử lí, Python phân biệt nhiều loại biến Các biến dùng chương trình phải khai báo d Chú thích Có thể đặt đoạn thích chương trình nguồn Các thích giúp cho người đọc chương trình nhận biết ngữ nghĩa chương trình dễ Chú thích khơng ảnh hưởng đến nội dung chương trình nguồn chương trình dịch bỏ qua Cách tạo thích Python đặt nội dung thích sau dấu # Tồn dòng đánh dấu dấu "#" xuống dòng coi dòng thích trình thơng dịch Python bỏ qua dịng thực dịch chương trình để thực thi Ví dụ: CÂU HỎI VÀ BÀI TẬP Tại người ta phải xây dựng ngơn ngữ lập trình bậc cao? Chương trình dịch gì? Tại cần phải có chương trình dịch? Biên dịch thông dịch khác nào? Hãy cho biết điểm khác tên dành riêng tên chuẩn Hãy tự viết ba tên theo quy tắc Python có độ dài khác 6 Hãy cho biết biểu diễn biểu diễn Python rõ lỗi trường hợp: a) 150.0 b) -22 c) 6,23 d) '43' e) A20 f) 1.06E-15 g) 4+6 h) 'C i) “TRUE” CHƯƠNG II: CHƯƠNG TRÌNH ĐƠN GIẢN  Cấu trúc chương trình  Các kiến thức kiểu liệu, phép toán, biểu thức, câu lệnh gán, tổ chức vào/ra đơn giản  Cách thực chương trình mơi trường Python BÀI CẤU TRÚC CHƯƠNG TRÌNH Cấu trúc chung - Một chương trình viết ngơn ngữ lập trình bậc cao gồm phần sau: [] Trong đó: [] có khơng có bao gồm nhiều nội dung khai báo khác nhau, loại có cú pháp riêng biệt bắt bộc phải có - Chương trình viết ngơn ngữ lập trình Python chương trình viết câu lệnh - Thông thường câu lệnh Python viết theo định dạng mà câu lệnh viết dòng - Chúng ta viết nhiều câu lệnh dịng, khơng tốt làm giảm khả đọc câu lệnh Tuy nhiên, bạn viết nhiều dòng cách chấm dứt câu với trợ giúp dấu ‘;’ Trong trường hợp này, dấu ‘;’ sử dụng dấu kết thúc câu lệnh Minh họa: Kết quả: Ví dụ chương trình đơn giản a Ví dụ Chương trình sau thực việc đưa hình thơng báo "Hello World!" Thực hiện: Gõ câu lệnh vào vùng soạn thảo print(‘Hello World!’) print(“Hello World!”) Thực VS Code: Minh họa Kết b Ví dụ 2(*) Viết chương trình đưa hình thơng tin cá nhân bao gồm thơng tin: Họ tên, lớp, năm sinh, số tuổi (được tính năm hệ thống trừ năm sinh), số điện thoại, email liên hệ Gợi ý: Sử dụng module: datetime để lấy năm hệ thống Chương trình: Kết quả: BÀI MỘT SỐ KIỂU DỮ LIỆU CHUẨN Các tốn thực tế thường có liệu vào kết thuộc kiểu liệu quen biết số nguyên, số thực, kí tự, Khi lập trình cho tốn vậy, người lập trình sử dụng kiểu liệu thường gặp hạn chế định, phụ thuộc vào yếu tố dung lượng nhớ, khả xử lí CPU, Vì vậy, ngơn ngữ lập trình thường cung cấp số kiểu liệu chuẩn cho biết phạm vi giá trị lưu trữ, dung lượng nhớ cần thiết để lưu trữ phép toán tác động lên liệu Dưới xét số kiểu liệu chuẩn thường dùng cho biến đơn Python Một số kiểu liệu chuẩn a Kiểu nguyên Là kiểu không chứa dấu thập phân, không giới hạn số ký tự mà phụ thuộc vào nhớ máy tính Khi gán giá trị số nguyên cho biến biến tự động gán kiểu số nguyên Ký hiệu: int b Kiểu thực: Là kiểu có chứa dấu thập phân Trong Python có giới hạn tối đa 15 chữ số phần thập phân Khi gán giá trị số thực cho biến biến tự động gán kiểu số thực Ký hiệu: float c Kiểu chuỗi Hay cịn gọi kiểu xâu, khơng giới hạn độ dài ký tự Ký hiệu: str d Kiểu lơgic Kiểu liệu có hai giá trị: True/False tương ứng đúng/sai Ký hiệu: bool Lưu ý: Ngồi ra, Python cịn có kiểu liệu: complex; list, tuple, range; dict; set, frozenset; bytes, bytearray, memoryview Trong phần sau chương trình tìm hiểu thêm Chuyển đổi kiểu liệu Trong Python, để chuyển đổi kiểu liệu sử dụng cú pháp: () Ví dụ: int(6.2) # Chuyển giá trị thực 6.2 sang giá trị nguyên, kết quả: int(9.8) # Chuyển giá trị thực 9.8 sang giá trị nguyên, kết quả: Minh họa: Kết quả: 10 BÀI TẬP VÀ THỰC HÀNH Mục đích, yêu cầu Làm quen với việc tìm kiếm, thay biến đổi xâu Nội dung Bài Nhập vào từ bàn phím xâu Kiểm tra xâu có phải xâu đối xứng hay không Xâu đối xứng có tính chất: đọc từ phải sang trái thu kết giống đọc từ tría sang phải (cịn gọi xâu palindrome) Chương trình Kết Bài Viết chương trình nhập từ bàn phím xâu kí tự S thơng báo hình số lần xuất chữ tiếng Anh S (không phân biệt chữ hoa hay thường) Chương trình Kết Bài Nhập vào từ bàn phím xâu Thay tất cụm kí tự ‘anh’ cụm kí tự ‘em’ Chương trình Kết 42 CHƯƠNG V TỆP VÀ THAO TÁC VỚI TỆP  Vai trò đặc điểm kiểu liệu tệp;  Thao tác với tệp văn BÀI 14 KIỂU DỮ LIỆU TỆP Vai trò kiểu tệp Tất liệu có kiểu liệu xét 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 Phân loại tệp thao tác với tệp a Phân loại - Xét theo cách tổ chức liệu, phân tệp thành hai loại: + 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 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 + Tệp có cấu trúc tệp chứa liệu tổ chức theo cách thức định Dữ liệu ảnh, âm thanh, thường lưu trữ dạng tệp có cấu trúc - Xét theo cách thức truy cập, phân tệp thành hai loại: + Tệp truy cập cho phép truy cập đến liệu tệp cách đầu tệp qua tất liệu trước + Tệp truy cập trực tiếp cho phép tham chiếu đến liệu cần truy cập cách xác định trực tiếp vị trí (thường số hiệu) liệu b Thao tác - Khác với List, số lượng phần tử tệp không xác định trước - 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 cách: + Mở tệp + Đọc/ghi liệu + Đóng tệp 43 BÀI 15 THAO TÁC VỚI TỆP Mở tệp Để đọc ghi tệp mở tệp công việc Python cho phép thực điều với hàm open() Lệnh open() có tham số với cú pháp: = open(, mode) Trong đó: : tên biến tệp người lập trình đặt : tên tệp văn cần mở mode: quy định cách thức mà tập tin, mode có dạng “r” – đọc “w” – mở để ghi Khi bị bỏ qua mặc định ký tự “r” Một số mode thường sử dụng: Chế độ (mode) r w a r+ w+ a+ Chức Mở tệp để đọc Đây chế độ mặc định Mở tệp để viết mode Nếu tệp tồn tại, ghi đè nội dung Tạo tệp tệp không tồn Mở tệp để bổ sung Giữ nguyên nội dung tệp, thêm liệu vào cuối tệp Mở tệp để đọc ghi Cho phép ghi đọc từ tệp Cho phép thêm vào đọc từ tệp Ví dụ: Tạo đối tượng fDoc fGhi thơng qua lệnh open() fDoc = open("D:\input.txt", "r") fGhi = open("D:\ouput.txt", "w") Đọc/ghi tệp văn a Đọc tệp văn Cú pháp .read() .readline() .readlines() Mô tả Đọc toàn nội dung tệp Đọc dịng (tiếp theo) tệp Đọc tồn nội dung tệp vào danh sách List mà phần tử xâu ký tự, dòng tệp tệp vừa đọc Ví dụ: Trong tệp “D:\input.txt” chứa giá trị số nguyên viết dịng Câu lệnh đọc giá trị viết sau: cd = int(fDoc.readline()) cr = int(fDoc.readline()) b Ghi tệp văn Cú pháp .write() Mô tả Ghi tệp tính từ vị trí đọc thời 44 Ghi danh sách xâu ký tự (List of string) tệp tính từ vị trí đọc thời Mỗi xâu ghi dòng Lưu ý: Muốn sau lệnh write() xuống dịng cần chèn dãy điều khiển “\n” vào cuối xâu .writelines() ký tự Ví dụ: cv = (cd + cr) * dt = cd * cr noiDung = str(cv) + "\n" + str(dt) fGhi.write(noiDung) Đó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ụ: fDoc.close() fGhi.close() * Một số lưu ý khác: - Hàm tell(): cho biết vị trí bên tệp - Hàm seek(): thay đổi vị trí bên tệp - Có thể sử dụng vòng lặp for để đọc dòng nội dung tệp kiểu liệu tuần tự: BÀI TẬP Chương trình đọc số nguyên chiều dài chiều rộng HCN tệp “D:\input.txt” Ghi kết chu vi diện tích HCN vào tệp “D:\output.txt” Chương trình Kết 45 46 BÀI 16 VÍ DỤ LÀM VIỆC VỚI TỆP Ví dụ Giả sử ta tạo sẵn tệp input.txt ổ đĩa D: có cấu trúc sau: Cấu trúc Dịng chuỗi kí tự Dịng số ngun khơng q 100 Dịng số thực a1 a2 a3 … an Dòng kí tự Ví dụ Khanh 3.2 6.1 5.3 7.5 8.8 T Yêu cầu: Hãy tạo chuỗi s để lưu dòng 1, số nguyên n để lưu trữ dòng 2, mảng để lưu dòng biến kiểu char để lưu dòng Ghi lên tệp “output.txt” số trung bình cộng n số a1, a2, a3 …, an Chương trình: Kết quả: Ví dụ Cho file văn “danhsach.txt” danh sách lớp 10 Tin Danh sách gồm nhiều dòng, dịng chuỗi kí tự ghi họ tên học sinh Viết chương trình đọc liệu từ file “danhsach.txt”, ghi file “output.txt” danh sách lớp theo thứ tự ngược lại với file “danhsach.txt” Ví dụ: danhsach.txt Nguyen Tien Tung Do Tien Si output.txt Kieu Phong Do Tien Si 47 Kieu Phong Nguyen Tien Tung Chương trình: Kết quả: CÂU HỎI VÀ BÀI TẬP Nêu số trường hợp cần phải dùng tệp? Khi cần đọc/ghi liệu từ/vào tệp phải dùng thao tác nào? Tại cần phải có câu lệnh mở tệp trước đọc/ghi tệp? Tại phải dùng câu lệnh đóng tệp sau kết thúc ghi liệu vào tệp? 48 CHƯƠNG VI CHƯƠNG TRÌNH CON VÀ LẬP TRÌNH CĨ CẤU TRÚC  Khái niệm chương trình con;  Chương trình con: cấu trúc phân loại;  Tham số hình thức tham số thực sự;  Biến cục bộ, biến tồn cục;  Thư viện chương trình BÀI 17 CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI Khái niệm chương trình Các chương trình giải tốn phức tạp thường dài, gồm hàng trăm, hàng nghìn lệnh Khi đọc chương trình dài, khó nhận biết chương trình thực cơng việc việc hiệu chỉnh chương trình khó khăn Vì vậy, vấn đề đặt phải cấu tạo chương trình chương trình dễ đọc, dễ hiệu chỉnh, nâng cấp Mặt khác, việc giải tốn phức tạp thường địi hỏi nói chung phân thành tốn Với toán phức tạp hơn, toán lại phân chia thành tốn nhỏ Quá trình phân rã làm "mịn" dần toán gọi cách thiết kế từ xuống Tương tự, lập trình để giải tốn máy tính phân chia chương trình (gọi chương trình chính) thành mơđun, khối bao gồm lệnh giải toán Mỗi khối lệnh xây dựng thành chương trình Sau đó, chương trình xây dựng từ chương trình Có thể xem chương trình chương trình xây dựng từ chương trình khác Cách lập trình dựa phương pháp lập trình có cấu trúc chương trình xây dựng gọi chương trình có cấu trúc Chương trình dãy lệnh mơ tả số thao tác định thực (được gọi) từ nhiều vị trí chương trình * Lợi ích việc sử dụng chương trình - Tránh việc phải viết lặp lặp lại dãy lệnh tương tự ví dụ tính TLuythua Ngơn ngữ lập trình cho phép tổ chức dãy lệnh thành chương trình Sau đó, chương trình cần đến dãy lệnh cần gọi thực chương trình - Khi phải viết chương trình lớn hàng nghìn, hàng vạn lệnh, cần huy động nhiều người tham gia, giao cho người (hoặc nhóm) viết chương trình con, sau lắp ghép chúng lại thành chương trình Ví dụ, với toán mà việc tổ chức liệu vào không đơn giản thường người ta chia toán thành ba toán nhập, xử lí xuất liệu, viết chương trình tương ứng - Thuận tiện cho phát triển, nâng cấp chương trình Do chương trình tạo thành từ chương trình nên chương trình dễ đọc, dễ hiểu, dễ kiểm tra hiệu chỉnh Việc nâng cấp, phát triển chương trình đó, chí bổ sung thêm chương trình nói chung khơng gây ảnh hưởng đến chương trình khác - Hiện nay, ngày có nhiều thiết bị kĩ thuật số tiện ích máy quay phim, máy ảnh, máy ghi âm, thiết bị âm thanh, hình màu độ phân giải cao, kết nối với máy tính Việc thiết kế chương trình thực giao tiếp với thiết bị cần thiết giúp mở rộng khả ứng dụng ngôn ngữ Phân loại cấu trúc chương trình a Phân loại Trong nhiều ngơn ngữ lập trình, chương trình thường gồm hai loại: 49 - Hàm số có trả giá trị: chương trình thực số thao tác trả nhiều giá trị qua tên - Hàm số khơng trả giá trị: chương trình số lệnh định không trả giá trị qua tên b Cấu trúc chương trình Phần đầu dùng để khai báo tên, tham số hình thức (nếu có) Phần thân dãy câu lệnh thực để từ liệu vào ta nhận liệu hay kết mong muốn Tham số hình thức - Các biến khai báo cho liệu vào/ra gọi tham số hình thức chương trình Tham số hình thức gán giá trị mặc định (nên gọi tham số lựa chọn) cú pháp: = - Các biến khai báo để dùng riêng chương trình gọi biến cục - Nói chung, chương trình chương trình khác sử dụng biến cục chương trình chương trình sử dụng biến chương trình Do vậy, biến chương trình gọi biến tồn cục - Một chương trình thường có khơng có tham số hình thức, có khơng có biến cục c Thực chương trình Tham số thực Để thực (gọi) chương trình con, ta cần phải có lệnh gọi tương tự lệnh gọi hàm chuẩn, bao gồm tên chương trình với tham số (nếu có) biến chứa liệu vào tương ứng với tham số hình thức đặt cặp ngoặc ( ) Các biến gọi tham số thực Khi thực chương trình con, tham số hình thức để nhập liệu vào nhận giá trị tham số thực tương ứng, tham số hình thức để lưu trữ liệu trả giá trị cho tham số thực tương ứng Ví dụ: Kết quả: 50 51 BÀI 18 VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON Các ngơn ngữ lập trình có quy tắc viết sử dụng chương trình Trong mục xét cách viết sử dụng chương trình (hàm số) Python Định nghĩa hàm số a Hàm không trả giá trị def ([]): [] b Hàm có trả giá trị def ([]): [] return c Hàm định nghĩa trực tiếp Trong Python, ngồi cách định nghĩa hàm thống thơng qua từ khóa def, cịn có cách định nghĩa nhanh hàm số hàm số tính cơng thức Cách tạo hàm số cịn gọi hàm vơ danh (hàm lambda) = lambda : Lưu ý: Tên hàm số đặt theo quy cách đặt tên Python Danh sách tham số có khơng có, tham số viết cách dấu phẩy Đối với hàm có trả giá trị, bắt buộc phải có lệnh return Lệnh có tác dụng dừng hàm số trả giá trị cho hàm số Nếu trả nhiều giá trị, viết cách dấu phẩy Khi cần thực hàm số, ta phải viết lệnh gọi hàm số Ví dụ a Ví dụ Chương trình vẽ hình chữ nhật: Kết quả: 52 b Ví dụ Chương trình tính chu vi diện tích hình chữ nhật: Kết quả: c Ví dụ Tính giá trị biểu thức: x2 + y2, với x, y số nguyên nhập từ bàn phím Chương trình Kết 53 BÀI TẬP Bài 1: Viết hàm kiểm tra tính chẵn, lẻ số nguyên Đọc liệu từ file “input.txt” có cấu trúc gồm: - Dòng đầu chứa số nguyên dương - dòng kế tiếp, dòng thứ ghi số nguyên dương nhỏ Xuất file “output.txt” dòng, dòng ghi “so chan” chẵn ghi “so le” số lẻ Bài 2: Viết hàm kiểm tra tính nguyên tố số nguyên Đọc liệu từ file “input.txt” có cấu trúc gồm: - Dịng đầu chứa số nguyên dương - Dòng thứ hai ghi số nguyên dương nhỏ Xuất file “output.txt” số nguyên số số nguyên tố số nêu Ví dụ: Input.txt Output.txt 10 13 Bài 3: Viết hàm tính ước chung lớn hai số nguyên Đọc liệu từ file “input.txt” gồm số nguyên a b c d biểu thị hai phân số Xuất file “output.txt” hai số nguyên x y kết tổng Ví dụ: Input.txt 18 Output.txt 17 18 Bài 4: Một bìa đục lỗ hình vng biểu diễn ma trận vuông gồm số 0, với ý nghĩa ô bị đục lỗ ngược lại Mỗi lần xoay bìa góc , vị trí bìa thay đổi khác so với ban đầu Viết chương trình xuất hình ma trận biểu diễn cho bìa sau quay lần Dữ liệu: Từ file “input.txt” gồm: - Dòng đầu ghi hai số nguyên - Trong dòng kế tiếp, dòng ghi số 0, biểu diễn trạng thái ban đầu bìa Kết quả: Ghi file “output.txt” dòng, dòng ghi số 0, biểu diễn trạng thái bìa sau thực lần xoay Ví dụ: “input.txt” 41 0111 0010 1100 0100 “output.txt” 1000 1100 1011 0010 54 BÀI TẬP VÀ THỰC HÀNH Mục đích, yêu cầu - Rèn luyện thao tác xử lí chuỗi, kĩ tạo hiệu ứng chữ chạy hình - Nâng cao kĩ viết, sử dụng chương trình Nội dung - Viết chương trình nhập xâu ký tự từ bàn phím đưa xâu hình có dạng dịng chữ chạy hình văn 25x80 Gợi ý: + Viết hàm CatDan(s1, s2) nhận đầu vào xâu s1, tạo xâu s2 thu từ xâu s1 việc chuyển kí tự xuống vị trí cuối Ví dụ s1 = ‘abcd’ s2 = ‘bcda’ + Viết hàm CanGiua(s) nhận đầu vào xâu s, bổ sung vào đầu s số dấu cách để đưa hình xâu kí tự s ban đầu dịng (80 kí tự) - Viết hàm ChuChay(s, dong) nhận đầu vào xâu s biến nguyên dong, đưa xâu s có dạng chữ chạy dịng dong Viết chạy chương trình có sử dụng hàm số 55 BÀI TẬP VÀ THỰC HÀNH Mục đích, yêu cầu - Nâng cao kĩ viết, sử dụng chương trình - Biết cách viết chương trình có cấu trúc để giải tốn máy tính Nội dung Viết chương trình sử dụng hàm chương trình để giải tốn: Cho tệp liệu TAMGIAC.INP có cấu trúc sau: - Dịng chứa số N; - N dòng tiếp theo, dòng chứa sáu số thực xA, yA, xB, yB, xC, yC toạ độ ba đỉnh A(xA, yA), B(xB, yB), C(xC, yC) tam giác ABC Hãy nhập liệu từ tệp cho, đưa tệp TAMGIAC.OUT gồm ba dòng: - Dòng số lượng tam giác đều; - Dòng thứ hai số lượng tam giác cân (nhưng khơng đều); - Dịng thứ ba số lượng tam giác vuông 56

Ngày đăng: 07/12/2021, 19:18

TỪ KHÓA LIÊN QUAN

w