Bản thảo Lập trình cơ bản với Python cung cấp cho người học những kiến thức như: Câu lệnh cơ bản; biểu thức điều kiện; xây dựng hàm; vòng lặp; danh sách; chuỗi; từ điển. Mời các bạn cùng tham khảo!
Bản Thảo Lập trình với Python MỤC LỤC Bài 1: CÂU LỆNH CƠ BẢN Cài đặt Python Viết chương trình Câu lệnh print Biến kiểu liệu 10 Hiển thị chuỗi theo định dạng 14 Phép toán 14 Câu lệnh nhập từ bàn phím 16 BÀI TẬP CHƯƠNG 18 Bài 2: BIỂU THỨC ĐIỀU KIỆN 19 Phép toán so sánh 19 Phép toán and or 20 Độ ưu tiên toán tử 21 Điều kiện if 21 Điều kiện if … else 22 Điều kiện if … elif … else 23 Biểu thức điều kiện 24 Cấu trúc try … catch 24 BÀI TẬP CHƯƠNG 27 Bài 3: XÂY DỰNG HÀM 30 Định nghĩa hàm 30 Hàm không trả kết 31 Hàm trả kết 32 Thuộc tính name 33 Hàm đệ quy 34 BÀI TẬP CHƯƠNG 35 Bài 4: VÒNG LẶP 37 Vòng lặp while 37 Trang Bản Thảo Lập trình với Python Vịng lặp for 38 Vòng lặp lồng Vòng lặp lồng while 42 Lệnh break vòng lặp Lệnh break lệnh ngừng vòng lặp 43 Lệnh continue vòng lặp 45 Lệnh pass 45 BÀI TẬP CHƯƠNG 47 ÔN TẬP GIỮA KỲ 50 Bài 5: Danh sách 52 Bài 6: Chuỗi 60 Bài 8: TỪ ĐIỂN 70 Khai báo liệu 70 Kiểu liệu động 71 Tạo từ điển từ kiểu liệu khác 71 Truy xuất phần tử 72 Thay đổi giá trị 72 Duyệt từ điển 73 Thêm, xóa phần tử 73 BÀI TẬP CHƯƠNG 74 Bài 9: BỘ (TUPLE) 77 Khai báo liệu 77 Kiểu liệu cố định 78 Truy xuất phần tử 78 Duyệt với vòng lặp 78 Thêm, xóa phần tử 79 Các hàm Bộ 79 BÀI TẬP CHƯƠNG 80 Bài 10: TẬP TIN 83 Giới thiệu tập tin 83 Trình tự thao tác với tập tin 83 Mở tập tin 84 Đọc tập tin 85 Ghi tập tin 86 Trang Bản Thảo Lập trình với Python Đóng tập tin 87 Xóa tập tin 87 BÀI TẬP CHƯƠNG 10 88 TÀI LIỆU THAM KHẢO 92 Trang Bản Thảo Lập trình với Python GIỚI THIỆU Python ngơn ngữ lập trình cấp cao, hỗ trợ người dùng dạng: tương tác dòng lệnh (command line); script và hướng đối tượng Chương trình Python viết trình soạn thảo văn (Notepad, Notepad++, IDE Python, PyCharm, …) có phần mở rộng *.py Trong chương trình viết ngơn ngữ khác C/C++; VB, NET phải thực biên dịch (compiler), chương trình viết Python thực thi thơng qua trình thơng dịch (interpreter) Các thư viện Python đa dạng, từ thư viện NumPy sử dụng lĩnh vực tính tốn ma trận, thống kê, phân tích liệu, đến thư viện hỗ trợ lập trình ứng dụng mạng Socket, Webservice, lập trình thiết kế web với framework Flask hay Django Mặc dù ngơn ngữ lập trình cấp cao, cách tiếp cận Python theo ngôn ngữ kịch (script) nên phù hợp với tất người bước chân vào mơi trường lập trình Python phát triển Guido Van Rossum vào cuối năm 1980 đầu năm 1990 Viện Nguyên cứu toán khoa học máy tính Hà Lan, và phát hành lần vào tháng năm 1991 Nó xây dựng nhiều tảng khác gồm: ABC, Modula3, C, C++, Algol-68, SmallTalk, and Unix shell and other scripting languages Hiện tại, Python lưu hành theo giấy phép mã nguồn mở GNU – GPL Một số đặc điểm Python: Trang Bản Thảo • Lập trình với Python Dễ học: từ khóa Python tương đối ít, cấu trúc đơn giản cú pháp rõ ràng Phù hợp với bạn tiếp cận học ngơn ngữ lập trình • Dễ đọc: Câu lệnh python rõ ràng và tường minh, dễ đọc dễ viết ngơn ngữ lập trình khác C/C++, Java, … • Dễ bảo trì: Mã nguồn python bảo trì dễ dàng • Thư viện chuẩn linh hoạt: Phần lớn thư viện python tương thích với mơi trường Unix, Windows Macintosh Chương trình viết Python thực thi tảng khác mà khơng có thay đổi Nó chạy liền mạch hầu hết tất tảng Windows, macOS, Linux • Chế độ tương tác (Interactive mode): Python hỗ trợ chế độ tương tác cho phép lập trình viên kiểm tra debug chương trình • Lập trình giao diện (GUI): Python hỗ trợ lập trình giao diện, người sử dụng thiết kế chương trình ứng dụng khác • OOP (Object Oriented Programming): Mọi thứ Python là hướng đối tượng Lập trình hướng đối tượng (OOP) giúp giải vấn đề phức tạp cách trực quan Với OOP, bạn phân chia vấn đề phức tạp thành tập nhỏ cách tạo đối tượng • Mã nguồn mở: Python có cộng đồng rộng lớn xây dựng và phát triển, người dùng sử dụng và phân phối Python • Khả mở rộng nhúng: Giả sử ứng dụng đòi hỏi phức tạp lớn, bạn dễ dàng kết hợp phần code C, C++ và ngôn ngữ khác (có thể gọi từ C) vào code Python Điều này cung cấp cho ứng dụng bạn tính tốt khả scripting mà ngơn ngữ lập trình khác khó làm • Ngơn ngữ thơng dịch cấp cao: Không giống C/C++, với Python, bạn lo lắng nhiệm vụ khó khăn Trang Bản Thảo Lập trình với Python quản lý nhớ, dọn dẹp liệu vô nghĩa, Khi chạy code Python, tự động chuyển đổi code sang ngơn ngữ máy tính hiểu Bạn khơng cần lo lắng hoạt động cấp thấp nào • Thư viện tiêu chuẩn lớn để giải tác vụ phổ biến: Python có số lượng lớn thư viện tiêu chuẩn giúp cho công việc lập trình bạn trở nên dễ thở nhiều, đơn giản khơng phải tự viết tất code Ví dụ: Bạn cần kết nối sở liệu MySQL Web server? Bạn nhập thư viện MySQLdb và sử dụng Những thư viện này kiểm tra kỹ lưỡng và sử dụng hàng trăm người Vì vậy, bạn chắn khơng làm hỏng code hay ứng dụng • Hướng đối tượng: Mọi thứ Python là hướng đối tượng Lập trình hướng đối tượng (OOP) giúp giải vấn đề phức tạp cách trực quan Với OOP, bạn phân chia vấn đề phức tạp thành tập nhỏ cách tạo đối tượng Trang Bản Thảo Lập trình với Python Bài 1: CÂU LỆNH CƠ BẢN Mục tiêu: - Làm quen với giao diện Python - Có thể thực thao tác nhập/xuất - Có thể thực các phép tính Nội dung chính: - Cài đặt Python - Thực hành câu lệnh print - Thực hành phép toán - Thực hành câu lệnh raw_input Cài đặt Python Python chạy hệ điều hành Window/Linux, Trong phần thực hành sinh viên thực cài đặt Python hệ điều hành Window Các bước thực hiện: Bước 1: Download Python địa www.python.org/download Trang Bản Thảo Lập trình với Python Bước 2: Mở ứng dụng Python Shell (vào menu start > python > python 3.5.1 shell) Dấu >>>: dấu nhắc lệnh chờ thực Thí dụ 1: sử dụng câu lệnh print để hiển thị chuổi “hello world” Viết chương trình Ghi câu lệnh trực tiếp dấu nhắc lệnh (của chương trình Python shell) cách thơng thường để thực thao tác đơn giản, dùng chương trình có nhiều câu lệnh Trong trường hợp này, cách phù hợp sử dụng trình soạn thảo (vào menu File Python shell > new File) để viết chương trình, lưu chương trình lại với định dạng *.Py, chương trình này cịn gọi Script Trang Bản Thảo Lập trình với Python Câu lệnh print Được dùng để hiển thị liệu Cú pháp: Cú pháp 1: print ("chuỗi thị") Thí dụ 2: print ("This line will be printed.") Kết hiển thị: This line will be printed Cú pháp 2: print ("chuỗi thị", bieu thuc/gia tri, tham so) Trang Bản Thảo Lập trình với Python Thí dụ 3: print ("2 + is", + 2) print ("3 * is", * 4) print ("100 - is", 100 - 1) print ("(33 + 2) / + 11.5 is", (33 + 2) / + 11.5) Kết hiển thị: + is * is 12 100 - is 99 (33 + 2) / + 11.5 is 18.5 Lưu ý: Với phiên Python 2.7, cú pháp thị sau: print "chuỗi thị" Biến kiểu liệu Biến: Biến (variable) là tên đặt nhớ máy tính, người lập trình sử dụng biến để lưu trữ liệu và để truy vấn liệu cần thiết Kiểu liệu: kiểu liệu (datatype hay type) cách phân loại liệu cho trình biên dịch (compiler) thơng dịch (interpreter) hiểu người lập trình muốn sử dụng liệu Hầu hết ngôn ngữ hỗ trợ nhiều kiểu liệu khác kiểu số thực, kiểu số nguyên, kiểu luận lý (Boolean), kiểu chuỗi, kiễu danh sách, … Trong tìm hiểu kiểu liệu số chuỗi Trong Trang 10 Bản Thảo Lập trình với Python Kiểu liệu cố định Một khởi tạo giá trị cho ta khơng thể thay đổi giá trị Đồng nghĩa với việc, khơng thể thêm phần tử vào có sẵn mytuple = ("apple", "banana", "cherry") mytuple[1] = "blackcurrant" #error Trong ví dụ ta khơng thể thay đổi giá trị “banana” thành “blackcurrant” Để thay đổi giá trị hay thêm phần tử vào Bộ phải thực qua phương pháp gián tiếp Hay nói cách khác, ta phải tạo Bộ với phần tử mà muốn giữ lại Bộ cũ và bổ sung thêm liệu Ví du: mytuple = (1, 2, 3, 4) mytuple = mytuple + (5, 6) Lưu ý, biến mytuple lần gán sau là hoàn toàn Truy xuất phần tử Truy xuất phần tử Bộ tương tự danh sách Nghĩa là sử dung mục đếm từ để truy xuất vị trí phần tử Bộ mytuple = ("apple", "banana", "cherry") print(mytuple[1]) Việc truy xuất đến mục nằm ngoài mục cho phép Bộ gây lỗi mytuple = ("apple", "banana", "cherry") print(mytuple[9]) #error Duyệt với vòng lặp Ta dụng vịng lặp nào để duyệt qua phần tử Bộ Nói chung là giống với cách làm việc với danh sách Trang 78 Bản Thảo Lập trình với Python mytuple = ("apple", "banana", "cherry") for x in mytuple: print(x) Thêm, xóa phần tử Một lần lưu ý là ta khơng thể thêm hay xóa phần tử Bộ Để thực việc thêm, xóa ta phải thực cách gián tiếp Các cách này sinh Bộ mytuple = (1, 2, 3, 4) mytuple = mytuple + (5, 6) mytuple = (2,) + mytuple[1:] # Thêm (5,6) vào mytuple # Thay giá trị Trong ví dụ trên, mytuple vế trái phép gán là Bộ hoàn toàn Các hàm Bộ Để lấy chiều dài Bộ, ta dùng hàm len(): mytuple = (1, 2, 3, 4) len(mytuple) # chiều dài mytuple Để lấy vị trí (index) giá trị có Bộ, ta dùng hàm index() Hay để đếm số lần xuất giá trị bất kì, ta dùng hàm count() Lưu ý là hai hàm này phải xác định Bộ cho trước mytuple = (1, 1, 3, 4) mytuple.index(4) #4 xuất vị trí mytuple.count(2) #số lần xuất Trang 79 Bản Thảo Lập trình với Python BÀI TẬP CHƯƠNG Bài 9.1 Viết chương trình tạo tuple từ liệu người dùng nhập vào Ví dụ: Các giá trị người dùng nhập: Bộ tạo là: (1,2,3,4) Bài 9.2 Viết chương trình thêm phần tử vào cuối cho trước Ví dụ: (“a”, 2, “b”, “c”) Thêm: 2.5 Bộ sau thêm: (“a”, 2, “b”, “c”, 2.5) Bài 9.3 Viết chương trình xóa phần tử cuối khỏi cho trước Ví dụ: (“a”, 2, “b”, “c”) Bộ sau xóa: (“a”, 2, “b”) Bài 9.4 Viết chương trình thêm phần tử vào vị trí bất kì cho trước Giá trị vị trí người dùng định Vị trí tính từ Ví dụ: (“a”, 2, “b”, “c”) Trang 80 Bản Thảo Lập trình với Python Thêm vào vị trí Bộ sau thêm: (“a”, 2, 8, “b”, “c”) Bài 9.4 Viết chương trình xóa phần tử vị trí bất kì cho trước Vị trí người dùng định tính từ Ví dụ: (“a”, 2, “b”, “c”) Xóa ví trí Bộ sau xóa: (“a”, “b”, “c”) Bài 9.5 Viết chương trình xóa các phần tử trùng cho trước (nếu có phần tử trùng giữ lại phần tử gặp được) Ví dụ: (“a”, 2, “b”, 2, “a”, “c”, “a”) Bộ sau xóa: (“a”, 2, “b”, “c”) Bài 9.6 Viết chương trình tính tổng số có (số ngun, số thực) Ví dụ: (“a”, 3, “b”, 2.5, “a”, 8.5, “a”) Tổng là: 14 Bài 9.7 Viết chương trình đảo lại thứ tự Ví dụ: (“a”, “b”, “c”) Bộ sau đảo là: (“c”, “b”, “a”) Bài 9.7 Viết chương trình xếp chứa số nguyên lại theo thứ tự tăng dần Ví dụ: (8, 2, 9, 15, 2, 1) Bộ sau xếp là: (1, 2, 2, 8, 9, 15) Trang 81 Bản Thảo Lập trình với Python Bài 9.8 Viết chương trình kiểm tra xem có đối xứng khơng Ví dụ: (1, 2, 3, 3, 2, 1) Bộ đối xứng (1, 2, 3, 2, 1) Bộ đối xứng () Bộ đối xứng (1, 2, 3, 4, 2, 1) Bộ không đối xứng Bài 9.9 Viết chương trình tìm phần tử lớn thứ k số nguyên Với k người dùng định Ví dụ: (8, 2, 9, 15, 2, 1) k Phần tử lớn thứ k là Trang 82 Bản Thảo Lập trình với Python Bài 10: TẬP TIN Mục tiêu: - Lưu trữ liệu lên tập tin - Truy xuất liệu tập tin - Sử dụng liệu sau đọc Nội dung chính: - Đóng mở tập tin - Ghi liệu lên tập tin - Đọc liệu từ tập tin - Thao tác liệu Giới thiệu tập tin Tập tin sử dụng để lưu trữ liệu lên thiết bị ổ cứng, mạng… Trong máy tính, tập tin chia làm hai loại: tập tin văn và tập tin nhị phân Nói cách vắn tắt, tập tin văn chứa nội dung là kí tự mà người đọc Tập tin nhị phân chứa nội dung là byte thơ mà có chương trình đặc thù hiểu và thể nội dung tương ứng Đối với tập tin văn bản, Python hỗ trợ chuẩn ASCII và Unicode Cách truy xuất dạng có phần khác Để đơn giản và phù hợp với mức độ môn học, tạm thời gác Unicode qua bên và tập trung chủ yếu vào ACII Đối với tập tin nhị phân, lướt nhẹ qua cách mở và khơng sâu vào Trình tự thao tác với tập tin Khi thao tác với tập tin, thường trải qua giai đoạn: Trang 83 Bản Thảo - Lập trình với Python Mở tập tin với đường dẫn xác định đến nơi chứa tập tin và kèm với là mode mà muốn thao tác - Kế tiếp, ta thực thao tác mà muốn làm với tập tin đọc, ghi, di chuyển tập tin - Cuối là đóng tập tin lại để giải phóng tài ngun hoàn tất q trình ghi lên ổ cứng Trong thao tác trên, thường lập trình viên qn viết thao tác cuối (đóng tập tin) Python có chức phát và tự thực cơng việc cần thiết để đóng tập tin lập trình viên quên Điều này giúp cho chương trình tránh lỗi xảy Tuy nhiên, thói quen lập trình tốt là nhớ đóng tập tin lại xài xong Mở tập tin Python hỗ trợ hàm open() để mở tập tin: f = open("demofile.txt") Ví dụ mở file có tên là demofile.txt nơi chứa code python Khi mở thành công, Python trả đối tượng file và đặt tên cho là f Ta định đường dẫn tuyệt đối chuỗi tập tin cách này khơng khuyến khích Với cách mở trên, file mở mặc định với chế độ mở là văn và việc mở để dành cho đọc Trong trường hợp muốn thực mục đích khác mở để ghi, mở tập tin nhị phân, … ta cần định thêm đối số thứ hai hàm Đối số dạng chuỗi f = open("demofile.txt", "rt") Trong ví dụ, định rõ mở file để đọc và tập tin dạng văn Các cấu hình: Trang 84 Bản Thảo Lập trình với Python - “r”: đọc (mặc định) - “a”: mở ghi tiếp (tạo file chưa có) - “w”: viết (tạo file chưa có) - “x”: tạo (nếu có file báo lỗi) Có thể bổ sung thêm loại tập tin: - “t”: loại tập tin văn (mặc định) - “b”: loại tập tin nhị phân Đọc tập tin Các hàm mà Python hỗ trợ cho việc đọc: - read(): đọc toàn nội dung file vào biến chuỗi - read(N): đọc N kí tự (hoặc byte) vào biến chuỗi - readline(): đọc dòng (bao gồm dấu xuống dòng \n) vào biến chuỗi - readlines(): đọc toàn file vào danh sách dịng Ví dụ: f = open("demofile.txt", "r") print(f.read()) print(f.read(5)) print(f.readline()) print(f.readlines()) Để đọc dòng hết file, ta làm sau: f = open('script2.py') while True: line = f.readline() if not line: break print(line.upper(), end='') Trong ví dụ, ta kiểm tra biến line để biết dấu hiệu kết thúc file Khi đạt đến vị trí cuối, biến line rỗng Ngồi cách trên, ta dùng cú pháp đơn giản hơn: Trang 85 Bản Thảo Lập trình với Python f = open("demofile.txt", "rt") for line in f: print(line) Ghi tập tin Các hàm hỗ trợ cho việc viết nội dung lên tập tin: - write(aString): viết chuỗi lên tập tin - writelines(aList): viết tất dòng danh sách lên tập tin Ví dụ: f = open("demofile.txt", "w") f.write("Hello World") Ta viết tiếp tập tin sẵn có: f = open("demofile.txt", "a") f.write("Now the file has one more line!" Lưu ý: để viết đối tượng là chuỗi lên file, ta phải chuyển đổi (convert) đối tượng này thành chuỗi trước ghi Phương thức write() không tự động làm cho công việc này X, Y, Z = 43, 44, 45 S = 'Spam' D = {'a': 1, 'b': 2} L = [1, 2, 3] F = open('datafile.txt', 'w') F.write(S + '\n') F.write('%s,%s,%s\n' % (X, Y, Z)) F.write(str(L) + '$' + str(D) + '\n') F.close() Một trường hợp ngoại lệ là dùng hàm writelines() cho phép ghi danh sách lên file Tuy nhiên, phần tử danh sách phải dạng chuỗi Trang 86 Bản Thảo Lập trình với Python Đóng tập tin Một thói quen lập trình tốt là nên đóng file lại khơng cịn sử dụng myfile = open('myfile.txt', 'w') myfile.write('hello text file\n') myfile.close() Xóa tập tin Để xóa tập tin ta phải sử dụng import module hệ thống và chạy thực thi hàm remove(): import os os.remove("demofile.txt") Lưu ý, file không tồn tại, lệnh này phát sinh lỗi Để khắc phục nguy này ta nên kiểm ta file có tồn khơng trước xóa import os if os.path.exists("demofile.txt"): os.remove("demofile.txt") else: print("The file does not exist") Python cung cấp cho thêm hàm xóa thư mục: import os os.rmdir("myfolder") Trang 87 Bản Thảo Lập trình với Python BÀI TẬP CHƯƠNG 10 Bài 10.1 Viết chương trình tạo tập tin văn với tên nội dung người dùng định Ví dụ: Tên tập tin: abc.txt Nội dung: “Hello World” Bài 10.2 Viết chương trình đọc nội dung tập tin văn cho trước Tên tập tin người dùng định Trong tập tin có nhiều dịng chữ Ví dụ: Tên tập tin: abc.txt Nội dung: Hello World I Love You Very Much I am here Where are you? Bài 10.3 Viết chương trình đọc danh sách các số ghi tập tin văn bản, với số cách dấu khoảng trắng Hiển thị danh sách hình tính tổng các số đó Ví dụ: Tên tập tin: abc.txt Nội dung: 5.5 6.5 Tổng là: 22 Trang 88 Bản Thảo Lập trình với Python Bài 10.4 Viết chương trình ghi thêm nội dung vào tập tin văn có hệ thống Ví dụ: Tên tập tin: abc.txt Nội dung có: “Hello” Nội dung thêm: “my love” Bài 10.5 Viết chương trình xóa tập tin có hệ thống Ví dụ: Tên tập tin: abc.txt Đã xóa tập tin Tên tập tin: xyz.txt Tập tin khơng tìm thấy Bài 10.6 Viết chương trình xóa tồn tập tin thư mục có sẵn Lưu ý, khơng xóa thư mực Ví dụ: Thư mục: myFolder Đã xóa tất tập tin thư mục Bài 10.6 Viết chương trình nối tập tin văn lại thành tập tin nhất Ví dụ: Tập tin: abc.txt và def.txt Tập tin nối là abcdef.txt Trang 89 Bản Thảo Lập trình với Python Bài 10.6 Viết chương trình tách tập tin văn thành các tập tin cho tập tin không quá x kí tự số lượng tập tin tạo nhất Với x số kí tự người dùng định Ví dụ: Tập tin: abc.txt Tập tin nối là a.txt, b.txt, c.txt, d.txt Bài 10.7 Viết chương trình ghi danh sách sinh viên lên tập tin sau đó đọc lại vào danh sách khác Kiểm tra hai danh sách có giống không Thông tin sinh viên bao gồm: - Mã SV - Họ tên - Năm sinh - Giới tính - Điểm Toán - Điểm Lý - Điểm Hóa Mỗi sinh viên cách dòng trống Danh sách phải có nhất sinh viên Trang 90 Bản Thảo Lập trình với Python Ví dụ: Tên tập tin: abc.txt Nội dung: Trang 91 Bản Thảo Lập trình với Python TÀI LIỆU THAM KHẢO https://www.python-course.eu/conditional_statements.php https://www.w3schools.com/python/python_conditions.asp https://jaxenter.com/differences-python-2-3-148432.html https://jaxenter.com/implement-switch-case-statement-python138315.html Trang 92 ... sử dụng trình soạn thảo (vào menu File Python shell > new File) để viết chương trình, lưu chương trình lại với định dạng *.Py, chương trình này gọi Script Trang Bản Thảo Lập trình với Python. .. Trang Bản Thảo Lập trình với Python GIỚI THIỆU Python ngơn ngữ lập trình cấp cao, hỗ trợ người dùng dạng: tương tác dòng lệnh (command line); script và hướng đối tượng Chương trình Python viết trình. .. int(age) + 1) Trang 16 Bản Thảo Lập trình với Python Lưu ý: int (chuỗi): chuyển từ chuỗi sang số nguyên float (chuỗi): chuyển từ chuỗi sang số thực Trang 17 Bản Thảo Lập trình với Python BÀI TẬP CHƯƠNG