1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài giảng Lập trình Python

177 8 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

Thông tin cơ bản

Định dạng
Số trang 177
Dung lượng 3,27 MB

Nội dung

Chương trình dịch NHẬP MÔN TƯ DUY TÍNH TOÁN Bài 1 Giới thiệu môn học và phần mềm python Nội dung 1 Thông tin chung về môn học 2 “Tư duy tính toán” là gì? 3 Thuật toán ▪ Sơ đồ khối ▪ Lưu đồ Nassi–Shnei[.]

NHẬP MƠN TƯ DUY TÍNH TỐN Bài 1: Giới thiệu môn học phần mềm python Nội dung Thông tin chung mơn học “Tư tính tốn” gì? Thuật tốn ▪ Sơ đồ khối ▪ Lưu đồ Nassi–Shneiderman ▪ Mã giả Giới thiệu ngôn ngữ python Cách thực câu lệnh, chương trình Bài tập thảo luận TRƯƠNG XUÂN NAM Phần Thông tin chung môn học TRƯƠNG XUÂN NAM Giới thiệu môn học ▪ Tên môn: Nhập mơn Tư Tính tốn (Introduction to Computational Thinking) ▪ Số tín chỉ: ▪ Nội dung chính: ▪ ▪ ▪ ▪ Thế “tư tính tốn” Một số cách biểu diễn thuật tốn Cơ ngơn ngữ lập trình python Một số thuật tốn đơn giản sử dụng python ▪ Giảng viên: Trương Xuân Nam, khoa CNTT ▪ Email: namtx@wru.vn / truongxuannam@gmail.com TRƯƠNG XUÂN NAM Tài liệu môn học phần mềm học tập ▪ Tài liệu chính: giảng giáo viên ▪ Sách giáo trình biên soạn, chưa có ▪ Phần mềm học tập: python 3.x ▪ Có thể sử dụng phần mềm nào, miễn hỗ trợ ngôn ngữ python 3.5 trở lên ▪ Trên lớp, thầy giáo minh họa phần mềm tiêu chuẩn, lấy từ site https://www.python.org ▪ Bài giảng, tập, mã nguồn, điểm số,… đưa lên site https://txnam.net mục BÀI GIẢNG ▪ Bài giảng tập đưa lên trước học ▪ Trong thực hành, sinh viên vào website lấy tập để làm, giáo viên không gửi cho lớp ▪ Điểm trình cơng bố website TRƯƠNG XN NAM Phần mềm học tập TRƯƠNG XUÂN NAM Kiến thức yêu cầu ▪ Đã biết sử dụng ngơn ngữ lập trình (C/C++, C#, Java, Javascript, Pascal,…) ▪ Vì học nhanh, nhiều kiến thức ▪ Sử dụng tức viết chương trình với ngơn ngữ ▪ Có kiến thức khái niệm lập trình ▪ Mơn học giúp sinh viên hiểu khái niệm ▪ Biết sử dụng email ▪ Nộp tập vào email thầy giáo: cần ghi rõ tên sinh viên, nộp nào, buổi tập số ▪ Có thể email cho thầy giáo để hỏi thêm vấn đề môn học ▪ Chú ý: copy bạn khác để nộp bị cấm thi TRƯƠNG XUÂN NAM Đánh giá kết ▪ Điểm môn học: ▪ Điểm trình: 50% ▪ Điểm thi cuối kỳ: 50% ▪ Điểm trình: ▪ Điểm danh ▪ Bài làm lớp, phòng lab ▪ Bài tập nhà (nộp qua email) ▪ Thi cuối kỳ: ▪ ▪ ▪ ▪ Thi trắc nghiệm Học thi nấy, khơng hỏi ngồi mơn học Khơng có giới hạn nội dung thi Không sử dụng tài liệu tham khảo TRƯƠNG XUÂN NAM Mục tiêu môn học ▪ Làm quen với cách thuật tốn ứng dụng vào tốn thực tế ▪ Mơ tả tốn theo cách dân máy tính ▪ Lựa chọn phương pháp xử lý phù hợp ▪ Biết cài đặt thuật giải ngơn ngữ lập trình (python) ▪ Rèn luyện thói quen lập trình cách “trong sáng” ;) ▪ Học lập trình python phần bản, để sử dụng mơn học sau TRƯƠNG XUÂN NAM Lời khuyên ĐI HỌC ĐẦY ĐỦ LÀM HẾT TẤT CẢ CÁC BÀI TẬP Chỉ thôi!!! TRƯƠNG XUÂN NAM 10 Phần Dictionary (từ điển) TRƯƠNG XUÂN NAM 15 Dictionary (từ điển) ▪ Từ điển danh sách từ (key) định nghĩa (value) ▪ u cầu key khơng trùng nhau, xem từ điển loại set ▪ Từ điển khai báo theo cú pháp set >>> dic = {1:'one', 2:'two', 3:'three'} >>> print(dic[1]) 'one' >>> dic[4]='four' >>> print(dic) {1: 'one', 2: 'two', 3: 'three', 4: 'four'} TRƯƠNG XUÂN NAM 16 Dictionary (từ điển) ▪ Chú ý: loại liệu immutable (khơng thể thay đổi) dùng làm key từ điển dic = { (1,2,3):"abc", 3.1415:"abc"} dic = { [1,2,3]:"abc"} # lỗi ▪ Một số phép toán / phương thức thường dùng ▪ ▪ ▪ ▪ ▪ ▪ len(d): trả độ dài từ điển (số cặp key-value) del d[k]: xóa key k (và value tương ứng) k in d: trả True có key k từ điển k not in d: trả True khơng có key k từ điển pop(k): trả value tương ứng với k xóa cặp popitem(): trả (và xóa) cặp (key, value) tùy ý TRƯƠNG XUÂN NAM 17 Dictionary (từ điển) ▪ Một số phép toán / phương thức thường dùng ▪ get(k): lấy value tương ứng với key k • Khác phép [] chỗ get trả None k key ▪ update(w): ghép nội dung từ từ điển w vào từ điển (nếu key trùng lấy value từ w) ▪ items(): trả list cặp (key, value) ▪ keys(): trả key từ điển ▪ values(): trả value từ điển ▪ pop(k): trả value tương ứng với k xóa cặp ▪ popitem(): trả (và xóa) cặp (key, value) tùy ý TRƯƠNG XUÂN NAM 18 Dictionary (từ điển) ▪ Dùng zip để ghép list thành từ điển >>> l1 = ["a","b","c"] >>> l2 = [1,2,3] >>> c = zip(l1, l2) >>> for i in c: print(i) ('a', 1) ('b', 2) ('c', 3) TRƯƠNG XUÂN NAM 19 Phần Bài tập TRƯƠNG XUÂN NAM 20 Bài tập Tạo tập hợp gồm phần tử từ đến 99, in chúng hình 2.Tạo tập hợp gồm số nguyên lẻ khoảng từ đến 199, in chúng hình 3.Tạo tập hợp gồm số nhập vào từ bàn phím (nhập dòng, cách ký tự trống), tìm in số phần tử tập, giá trị lớn nhỏ tập 4.Cho D từ điển định nghĩa cách đọc chữ số tiếng Anh, in value D theo thứ tự tăng dần 5.Nhập từ điển D, in value khác từ điển TRƯƠNG XUÂN NAM 21 Bài tập 6.Nhập từ điển D có value số nguyên, in hình giá trị value lớn 7.Nhập string S, tạo từ điển D key chữ xuất S value tương ứng số lần xuất chữ S ▪ Ví dụ: S = “dai hoc thuy loi” D = { ‘d’:1, ‘a’:1, ‘i’:2, ‘ ’:3, ‘h’:2, ‘o’:2, ‘c’:1, ‘t’:1, ‘u’:1, ‘y’:1, ‘l’:1 } TRƯƠNG XUÂN NAM 22 Nhập mơn Tư Tính tốn – Phần thực hành buổi Phần 1: thực hành theo ví dụ lớp (dành cho bạn cảm thấy cần tập luyện thêm để làm quen với python, sử dụng phần mềm soạn thảo mã nguồn phù hợp với bạn) Gõ chạy thử ví dụ trang 9, slide lý thuyết 2, thử số tuổi 9, 19, 109 Gõ chạy thử ví dụ trang 25, slide lý thuyết Gõ chạy thử ví dụ trang 26, slide lý thuyết 2, điều chỉnh lại mã ví dụ để khơng cần nhập n mà tính ln 2019! Gõ chạy thử ví dụ trang 27, slide lý thuyết Phần 2: giải tập Bài tập số phần (trang 29, slide lý thuyết 2) Bạn có 10 triệu đồng tài khoản ngân hàng, với lãi xuất 5,1% hàng năm Tính xem sau năm bạn có 500 triệu đồng? Giải phương trình bậc đầy đủ Trong đoạn mã ví dụ trang 25 slide lý thuyết có chương trình giải phương trình bậc Tuy nhiên, biết ngôn ngữ python hỗ trợ kiểu số phức, delta âm phương trình bậc khơng phải vơ nghiệm mà có nghiệm phức Hãy sửa đổi chương trình để in nghiệm phức tương ứng với trường hợp delta âm Trung bình trung vị Trung bình dãy số giá trị chia tổng dãy cho thành viên dãy, trung vị dãy số giá trị nằm dãy số xếp tăng dần (hoặc giảm dần) Ví dụ dãy [1, 2, 3, 7, 7] có giá trị trung bình trung vị Chênh lệch chúng đơn vị Viết chương trình nhập số thực a, b, c, d e Tính in hình giá trị chênh lệch trung bình trung vị dãy [a, b, c, d, e] Tổng ba Nhập vào từ bàn phím số nguyên dương A, sau tính in hình tổng Z = A + AA + AAA, AA AAA hình thành cách viết liên tiếp giá trị A Ví dụ: Nhập A = Z = + 55 + 555 = 615 Nhập A = 21 Z = 21 + 2121 + 212121 = 214263 Nhập mơn Tư Tính tốn – Phần thực hành buổi Phần 1: giải tập phần lý thuyết lặp rẽ nhánh Biến đổi Collatz Với số nguyên dương N, ta định nghĩa phép biến đổi C sau: 𝑁 , 𝐶(𝑁) = { 3𝑁 + 1, 𝑛ế𝑢 𝑁 𝑐ℎẵ𝑛 𝑛ế𝑢 𝑁 𝑙ẻ Áp dụng liên tiếp phép biến đổi C số bất kỳ, ta thu số 1, ví dụ: 13 → 40 → 20 → 10 → → 16 → → → → Viết chương trình cho người dùng nhập vào số N nguyên dương, sau in trình biến đổi số N Bộ ba pythagore Bộ số tự nhiên (a, b, c) gọi ba pythagore cạnh tam giác vng, nói khác: 𝑎2 + 𝑏 = 𝑐 Cho N = 12, ta có ba pythagore (3, 4, 5) có tổng 12 Viết chương trình nhập số nguyên dương N, in ba pythagore có tổng N Phần 2: số tập bổ sung phần string Chuyển đổi chuỗi Viết chương trình liên tiếp nhập vào chuỗi, người dùng nhập vào chuỗi rỗng dừng, khơng chuyển toàn nội dung chuỗi vừa nhập thành chữ thường, in tiếp tục lặp lại việc nhập liệu Tách chuỗi Một người nhập thông tin cá nhân cách viết liên tiếp tên riêng, số điện thoại email, thành phần cách dấu phẩy, nhập liệu từ người dùng in thơng tin mà chương trình nhận Ví dụ: người dùng nhập “txnam,091.210.2165,namtx@wru.vn” Chương trình in ra: - Tên: txnam - Số điện thoại: 091.210.2165 - Email: namtx@wru.vn Nhập mơn Tư Tính tốn – Thực hành buổi Phần 1: rèn luyện ngoại lệ Gõ đoạn mã đây, đoạn mã yêu cầu người dùng nhập số nguyên lặp lại yêu cầu người dùng không nhập giá trị số Sau nhập chạy thử chương trình nhập thử liệu lỗi để xem chương trình phản ứng while True: try: x = int(input("Nhập vào số nguyên: ")) break except ValueError: print("Oops! Bạn nhập sai, nhập lại ") Hãy chỉnh lại chương trình để yêu cầu nhập số nguyên người dùng nhập sai lần chương trình dừng thông báo “Bạn nhập sai nhiều số lần quy định!” Tiếp tục chỉnh sửa chương trình từ 2: thêm phần finally để chương trình ln ln in dịng chữ “Chúc bạn ngày làm việc hiệu quả!” tình kết thúc Hãy chỉnh lại chương trình yêu cầu người dùng nhập số nguyên dương, chương trình báo lỗi yêu cầu nhập lại người dùng nhập chuỗi số nhập số âm số * Viết chương trình nhập liên tiếp dãy số nguyên, chương trình thực việc sau: a Chương trình cho người dùng liên tiếp nhập số nguyên dương b Khi gửi dùng nhập “quit” dừng c Chương trình sinh ngoại lệ người dùng khơng nhập kiểu số nguyên dương (ngoại trừ lệnh quit), chương trình thơng báo “đề nghị nhập số nguyên dương” tiếp tục việc nhập liệu d Chương trình sinh ngoại lệ người dùng nhập số nguyên dương trùng với giá trị nhập, chương trình thơng báo “số nhập có danh sách” tiếp tục việc nhập liệu Phần 2: rèn luyện làm việc với tập tin văn Tạo file abc.txt, gõ vào nội dung file vài dòng văn (có thể viết thơ mà bạn thích vào chẳng hạn), lưu file vào vị trí thư mục làm việc máy tính bạn Sử dụng đoạn code để đọc nội dung file abc.txt trên, gõ chạy thử xem đoạn code có hoạt động hay khơng, trường hợp file abc.txt lưu trữ thư mục khác, chỉnh lại đường dẫn phù hợp with open('abc.txt') as f: for line in f: print(line, end='') Chỉnh sửa đoạn code 6: thêm đoạn mã phù hợp để xử lý ngoại lệ xảy có (chẳng hạn lỗi khơng tìm thấy file, lỗi đọc file,…) Chỉnh sửa đoạn code 6: in nội dung file abc.txt nội dung chuyển hoàn toàn thành chữ viết IN HOA 10.Tiếp tục chỉnh sửa 8: thêm đoạn mã phù hợp để chương trình vừa in hình dạng chữ viết hoa vừa ghi toàn nội dung file abc.txt vào file tên xyz.txt (với nội dung chữ viết in hoa in hình) Nhập mơn Tư Tính tốn – Thực hành buổi Phần 1: rèn luyện theo tập đơn giản Giải tập slide lý thuyết (trang 21-22), lời giải mẫu 1-2-3 Giải tập số (trang 21, slide lý thuyết 8): Tập số từ đến 99 num_set = set(range(0, 100)) for n in num_set: print(n) Giải tập số (trang 21, slide lý thuyết 8): Tập số lẻ từ đến 199 num_set = set(i for i in range(0, 200) if i % == 1) print(num_set) Giải tập số (trang 21, slide lý thuyết 8): Tập nhập từ bàn phím num_set = set(int(i) for i in input("Cac so: ").split()) print("SPT:", len(num_set)) print("Max:", max(num_set)) print("Min:", min(num_set)) Phần 2: giải số tập bổ sung Nhập số nguyên N, tạo tập hợp số nguyên dương x ước số N Nhập số nguyên a b, tạo tập hợp (set) số x ước số chung a b Nhập dãy số nguyên từ bàn phím, số viết liên tiếp, ngăn cách dấu chấm phẩy (;), đếm xem dãy nhập vào có số khác Nhập chuỗi W, tạo từ điển (dictionary) có thành phần cặp (K, V) K chuỗi liên tiếp W V số lần xuất K W Tạo từ điển chứa số từ đến 100 chuỗi nhị phân giá trị tương ứng số (từ điển cặp (1, ‘1’), (2, ‘10’), (3, ‘11’),…)

Ngày đăng: 02/10/2023, 13:36