Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 36 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
36
Dung lượng
1,04 MB
Nội dung
NHẬP MƠN TƯ DUY TÍNH TỐN Bài 2: Ngơn ngữ lập trình python Tóm tắt nội dung trước Khái niệm “tư tính tốn”: phân rã tốn, nhận mẫu, trừu tượng hóa, thiết kế thuật giải Khái niệm “thuật tốn” Đặc tính: máy móc, hữu hạn, tổng quát, đắn rõ ràng (dữ liệu đầu vào / kết đầu ra) Ba cấu trúc bản: tuần tự, rẽ nhánh, lặp lại Ba cách mơ tả thuật tốn Lưu đồ Nassi–Shneiderman Sơ đồ khối Mã giả TRƯƠNG XUÂN NAM Thông báo Trong tuần chưa có buổi thực hành Lý do: nghỉ 2/9 nên chưa đủ kiến thức lý thuyết để bắt đầu làm tập Lịch thực hành phòng đào tạo bố trí tuần, cần học buổi (1 tín = buổi x tiết) Lịch học cụ thể: Buổi 1: tuần từ 17/9 - 22/9 Buổi 2: tuần từ 24/9 - 29/9 Buổi 3: tuần từ 01/10 - 06/10 Buổi 4: tuần từ 08/10 - 13/10 Buổi 5: tuần từ 15/10 - 20/10 TRƯƠNG XUÂN NAM Nội dung Giới thiệu ngôn ngữ python Cách thực câu lệnh, chương trình Biến, khai báo chuỗi, khối lệnh Nhập liệu xuất liệu Kiểu liệu phép tốn liên quan Vài ví dụ minh họa Bài tập TRƯƠNG XUÂN NAM Phần Giới thiệu ngôn ngữ python TRƯƠNG XUÂN NAM Giới thiệu ngôn ngữ python Python lần đầu giới thiệu vào tháng 12/1989 Tác giả Guido van Rossum (Hà Lan) Sinh năm 1956 Hiện làm cho Google Python kế thừa từ ngôn ngữ ABC Python giới thiệu năm 2000 Hỗ trợ unicode Mã python phổ biến Python phát hành năm 2008 Hiện có phiên 3.7 Python 4? Năm 2023 (dự kiến) TRƯƠNG XUÂN NAM Giới thiệu ngôn ngữ python Là ngôn ngữ có mã nguồn mở Là ngơn ngữ kịch (scripting programming language) Thích hợp với DevOps (người viết code người vận hành) Khai báo biến tự nhiên, phong phú động Nhiều phép tính cấp cao cung cấp sẵn Thường thơng dịch thay biên dịch • Biên dịch: dịch tồn thành mã máy thực thi • Thơng dịch: dịch lệnh, xong lệnh chạy lệnh Những người cuồng python (pythonista) cho ngôn ngữ sáng tiện dụng đến mức ta dùng cho khâu lập trình (chứ khơng phải viết script) TRƯƠNG XUÂN NAM Giới thiệu ngôn ngữ python Vừa hướng thủ tục, vừa hướng đối tượng Hỗ trợ module hỗ trợ gói (package) Xử lý lỗi ngoại lệ (exception) Kiểu liệu động mức cao Có khả tương tác với module viết ngôn ngữ lập trình khác Có thể nhúng vào ứng dụng giao tiếp kịch (scripting interface) TRƯƠNG XUÂN NAM Ưu điểm ngơn ngữ python Có ngữ pháp đơn giản, dễ đọc Viết mã ngắn gọn chương trình tương đương viết C, C++, C#, Java,… Có thư viện chuẩn module ngoài, đáp ứng gần nhu cầu lập trình Có khả chạy nhiều tảng (Windows, Linux, Unix, OS/2, Mac, Amiga, máy ảo NET, máy ảo Java, Nokia Series 60,…) Có cộng đồng lập trình lớn, hệ thống thư viện chuẩn, mã nguồn chia sẻ nhiều TRƯƠNG XUÂN NAM Nhưng python có nhược điểm Chương trình chạy chậm Giao tiếp với thư viện viết ngơn ngữ khác tương đối khó khăn Yếu hỗ trợ tính tốn di động Cách viết khối lệnh dễ gây nhầm lẫn cho người bắt đầu lập trình Gỡ lỗi địi hỏi kinh nghiệm Kém hỗ trợ sở liệu TRƯƠNG XUÂN NAM 10 Chuỗi thô (raw string) Vấn đề: dễ nhầm lẫn chuỗi có dấu gạch chéo (\) Chẳng hạn viết tên file "c:\teamview" Python cho phép bỏ qua chuỗi thoát cách đánh dấu chữ r vào trước chuỗi, định dạng gọi chuỗi thô Cú pháp: r'nội dung chuỗi' TRƯƠNG XUÂN NAM 22 Khối lệnh Python sử dụng khoảng trắng để phân biệt khối lệnh age = int(input("Bạn tuổi? ")) print("Ồ bạn đã", age, "tuổi rồi!") if age>=18: print("Đủ tuổi bầu") if age>100: print("Có vẻ sai sai!") else: print("Nhỏ quá") Chú ý: Không quy định số lượng khoảng trắng phải sử dụng Các lệnh khối phải sử dụng số khoảng trắng Sử dụng tab space được, phải thống TRƯƠNG XUÂN NAM 23 Phần Nhập liệu xuất liệu TRƯƠNG XUÂN NAM 24 Xuất liệu Sử dụng hàm print để in liệu hình >>> print(42) 42 >>> print("a = a = 3.564 >>> print("a = a = 3.564 >>> print("a", a b >>> print("a", ab >>> print(192, 192.168.178.42 >>> print("a", a:-)b ", a) \n", a) "b") "b", sep="") 168, 178, 42, sep=".") "b", sep=":-)") TRƯƠNG XUÂN NAM 25 Nhập liệu Sử dụng hàm input để nhập liệu từ bàn phím name = input("Tên bạn gì? ") print("Xin chào bạn " + name + "!") age = input("Bạn tuổi? ") print("Ồ, bạn " + age + " tuổi rồi!") Có thể kết hợp chuyển kiểu muốn tường minh age = int(input("Bạn tuổi? ")) print("Ồ bạn %d tuổi rồi!" % age) TRƯƠNG XUÂN NAM 26 Phần Kiểu liệu phép toán liên quan TRƯƠNG XUÂN NAM 27 Kiểu số Python cho phép viết số nguyên theo số hệ số thông dụng lập trình A B C D = = = = 1234 0xAF1 0o772 0b1001 # # # # hệ hệ hệ hệ cơ cơ số số số số 10 16 Sử dụng hàm phù hợp để chuyển đổi từ số nguyên thành string hệ số 10, 16, K L M N = = = = str(1234) hex(1234) oct(1234) bin(1234) # # # # chuyển chuyển chuyển chuyển thành thành thành thành TRƯƠNG XUÂN NAM str str str str ở ở hệ hệ hệ hệ cơ cơ số số số số 10 16 28 Kiểu số Từ python 3, số ngun khơng có giới hạn số chữ số Số thực (float) python viết theo dạng thơng thường dạng khoa học X = 12.34 Y = 314.15279e-2 # dạng số nguyên phần mũ 10 Python hỗ trợ kiểu phức, với chữ j đại diện cho phần ảo A = 3+4j B = 2-2j print(A+B) # in (5+2j) TRƯƠNG XUÂN NAM 29 Phép toán Python hỗ trợ nhiều phép toán số, logic, so sánh, phép toán bit phép kiểm tra tập Các phép tốn số thơng thường: +, -, *, %, ** Python có phép chia: • Chia (/): • Chia nguyên (//): 10/3 10//3 # 3.3333333333333335 # (nhanh phép /) Các phép logic: and, or, not • Python khơng có phép xor logic, trường hợp muốn tính phép xor thay phép so sánh khác (bool(a) != bool(b)) Các phép so sánh: Các phép toán bit: Phép kiểm tra tập (in, not in): =, !=, == &, |, ^, ~, in [1, 2, 3] TRƯƠNG XUÂN NAM 30 Phần Vài ví dụ minh họa TRƯƠNG XUÂN NAM 31 Giải phương trình bậc a = float(input("A = ")) b = float(input("B = ")) c = float(input("C = ")) delta = b*b-4*a*c Nhập a,b,c kiểu số thực tính delta if delta==0: print("Nghiem kep: x = ", str(-b/2/a)) if delta0: print("X1 = " + str((-b+delta**0.5)/2/a)) print("X2 = " + str((-b-delta**0.5)/2/a)) TRƯƠNG XUÂN NAM Biện luận trường hợp delta Các khối lệnh viết thụt vào so với khối cha Tính bậc phép lũy thừa 0.5 32 Tính n! def giaithua(n): Định nghĩa hàm với tham số n gt = for i in range(2, n+1): gt = gt * i Vòng lặp cho i chạy từ đến n return gt Trả kết a = int(input("Nhập giá trị n: ")) print("N! =", giaithua(a)) Nhập số n nguyên Gọi hàm tính in kết TRƯƠNG XUÂN NAM 33 Tính UCLN (thuật tốn euclid) a = int(input("A = ")) b = int(input("B = ")) Nhập số nguyên a b while (b > 0): Vòng lặp chừng b > if (a > b): Xử lý a > b a, b = b, a % b else: Xử lý a