1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Lập trình Python: Bài 7 - Trương Xuân Nam

24 4 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

Nội dung

Bài giảng Lập trình Python: Bài 7 Kiểu dữ liệu từ điển, module và package cung cấp cho người học những kiến thức như: Dictionary (từ điển); Module và Package; Module math; Bài tập. Mời các bạn cùng tham khảo!

LẬP TRÌNH PYTHON Bài 7: Kiểu liệu từ điển, module package Tóm tắt nội dung trước ▪ Python có kiểu liệu tập hợp (set) lấy cảm hứng từ tập hợp tốn học Set có hai đặc điểm chính: ▪ Các liệu bên đơi khác ▪ Chỉ chứa liệu loại bất biến (immutable) ▪ Tập hợp khơng có tính thứ tự, khơng có phép tốn mục cắt lát, duyệt phần tử tập hợp for ▪ Python cung cấp nhiều phương thức, phép so sánh phép tốn hữu ích cho tập hợp ▪ Tập tĩnh (frozenset) tập hợp bất biến, thay đổi sau khởi tạo xong TRƯƠNG XUÂN NAM Nội dung Dictionary (từ điển) Module Package ▪ Module math Bài tập TRƯƠNG XUÂN NAM Phần Dictionary (từ điển) TRƯƠNG XUÂN NAM Dictionary (từ điển) ▪ Từ điển sống: mục từ tra cứu ngữ nghĩa ▪ Các mục từ thứ tự ▪ Các mục từ thường khác nhau, số từ điển cho phép mục từ lớn chia thành nhiều mục từ ▪ Dictionary Python lấy cảm hứng từ từ điển sống: ▪ Một mục cặp (pair) khóa (key) giá trị (value) • Tương đương với khái niệm mục từ ngữ nghĩa từ điển thơng thường ▪ Các khóa (key) khơng trùng nhau, xem từ điển loại set ▪ Các khóa khơng thứ tự từ điển thông thường ▪ Chỉ liệu bất biến (immutable) dùng làm khóa TRƯƠNG XUÂN NAM Dictionary (từ điển) ▪ Một cặp từ điển viết dạng : ▪ Từ điển khai báo trực tiếp dùng cú pháp set d1 d2 d3 d4 = = = = { { { { } 1: 'one', 2: 'two' } 'one': 1, 'two': } 'tên': 'nam', 'sđt': 0} # # # # từ từ từ từ điển điển điển điển rỗng cặp số-chuỗi cặp chuỗi-số hỗ hợp ▪ Như Python coi từ điển dạng mở rộng tập hợp ▪ Trường hợp lấy liệu từ nguồn khác, cách thích hợp sử dụng hàm khởi tạo dict() d5 = dict(d4) print(d5) d6 = dict() print(d6) # # # # lấy liệu từ d4 {'tên': 'nam', 'sđt': 0} tạo từ điển rỗng {} TRƯƠNG XUÂN NAM Dictionary (từ điển) ▪ Python cho phép tạo từ điển suy diễn từ điển, với cú pháp tương tự suy diễn danh sách ▪ Ví dụ: tạo từ điển gồm khóa số tự nhiên nhỏ N giá trị tương ứng lập phương n = int(input('N = ')) d = { i: i * i * i for i in range(n) } print(d) ▪ Ví dụ: tạo từ điển có khóa ký tự xuất từ S giá trị số lần xuất ký tự S S = input('N = ') d = { w : S.count(w) for w in S } print(d) TRƯƠNG XUÂN NAM 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 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 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 10 Truy xuất liệu theo khóa ▪ Từ điển cho phép lấy giá trị tương ứng với khóa k phương thứ get(k), dùng mục thuận tiện nhiều d = { 1: 'one', 2: 'two', 3: 'three' } print('d.get(3) = ', d.get(3)) # d.get(3) = three print('d[3] = ', d[3]) # d[3] = three print('d.get(9) = ', d.get(9)) # d.get(9) = None print('d[9] = ', d[9]) # KeyError d[3] = 'ba' # cập nhật cặp 3: 'three' thành 3: 'ba' d[4] = 'bốn' # thêm cặp 4: 'bốn' print(d) # {1: 'one', 2: 'two', 3: 'ba', 4: 'bốn'} ▪ Chú ý: hai cách khơng tương đương Khi liệu khơng có từ điển, get(k) trả None mục phát sinh ngoại lệ KeyError TRƯƠNG XUÂN NAM 11 Xóa liệu từ điển ▪ Python có nhiều cách để xóa liệu từ điển lấy liệu khỏi từ điển ▪ Các phương thức pop, popitem, clear thiết kế cho tình lập trình khác d = { 1: 'one', 3: 'three', 2: 'two', 0: 'zero' } del d[1] # xóa bỏ mục 1: 'one' print(d) # {3: 'three', 2: 'two', 0: 'zero'} print(d.pop(2)) # 'two' print(d.popitem()) # (0, 'zero') d.clear() # xóa rỗng từ điển print(d) # {} TRƯƠNG XUÂN NAM 12 Kiểm tra liệu từ điển ▪ Phép kiểm tra liệu từ điển làm việc với khóa dic = { 1: 'one', 3: 'three', 2: 'two', 0: 'zero' } # kiểm tra có từ điển không? True print(2 in dic) # kiểm tra khơng có 'one' từ điển phải khơng? True print('one' not in dic) # kiểm tra cặp (3, 'three') có từ điển không? False print((3, 'three') in dic) TRƯƠNG XUÂN NAM 13 Duyệt liệu từ điển ▪ Python cung cấp nhiều phương thức lấy nhóm liệu từ điển, ta dễ dàng duyệt chúng với vòng lặp for d = { 1: 'one', 3: 'three', 2: 'two', 0: 'zero' } # duyệt từ điển theo khóa: 1, 3, 2, for i in d: print(i) # duyệt từ điển theo khóa: 1, 3, 2, for i in d.keys(): print(i) # duyệt theo cặp khóa-giá trị: (1, 'one'), (3, 'three'), for i in d.items(): print(i) # duyệt theo giá trị: 'one', 'three', 'two', 'zero' for i in d.values(): print(i) TRƯƠNG XUÂN NAM 14 Phần Module Package TRƯƠNG XUÂN NAM 15 Module (khối) ▪ Trong python, file mã nguồn xem module ▪ Có phần mở rộng py ▪ Mọi hàm, biến, kiểu file thành phần module ▪ Sử dụng module: ▪ Có thể sử dụng thành phần module khác cách import (nhập/nạp) module đó, phương pháp để tái sử dụng lại mã nguồn ▪ Cú pháp: import ▪ Có thể import lúc nhiều module cách dấu phẩy ▪ Nếu muốn sử dụng hàm, biến module cần viết tường minh tên module ▪ Có thể import riêng nhiều hàm từ module, cú pháp: from import fuc1, fuc2,… fucN TRƯƠNG XUÂN NAM 16 Package (gói) ▪ Package = Thư mục module (lưu trữ vật lý ổ đĩa) import numpy A = array([1, 2, 3]) A = numpy.array([1, 2, 3]) import numpy as np B = np.array([1, 2, 3]) from numpy import array C = array([1, 2, 3]) # lỗi # ok # ok # ok ▪ Module Package giúp quản lý tốt mã nguồn ▪ Nhóm hàm, biến, lớp xử lý chủ đề, giúp phân cấp sử dụng dễ dàng ▪ Giải tranh chấp định danh thư viện khác ▪ Python có nhiều package hỗ trợ nhu cầu xử lý TRƯƠNG XUÂN NAM 17 Module math ▪ Một module thông dụng python: import math ▪ Math có nhiều số định nghĩa sẵn: ▪ ▪ ▪ ▪ ▪ pi: 3.141592… e: 2.718281… tau: 6.283185… (2 * pi) inf: dương vô (âm vô –math.inf) nan: not a number (tương đương với float('nan')) ▪ Math chứa nhiều hàm toán học: ▪ ceil(x): trả số nguyên nhỏ không nhỏ x ▪ copysign(x, y): copy dấu y gán sang x • Ví dụ: copysign(1.0, -0.0) trả -1 ▪ fabs(x): trả trị tuyệt đối x TRƯƠNG XUÂN NAM 18 Module math ▪ Math chứa nhiều hàm toán học (tiếp…): ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ factorial(x): trả x! floor(x): trả số nguyên lớn không vượt x gcd(a, b): trả ước số chung lớn a b isinf(x): trả True x dương/âm vô isnan(x): trả True x NaN (not a number) trunc(x): trả phần nguyên x exp(x): trả ex log(x[, y]): trả logy x, mặc định y = e log10(x): trả log10 x pow(x, y): trả xy sqrt(x): trả 𝑥 TRƯƠNG XUÂN NAM 19 Module math ▪ Math cung cấp số hàm lượng giác: ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ degrees(x): chuyển x từ radians sang độ radians(x): chuyển x từ độ sang radians acos(x): trả arc cos x (độ đo radians) asin(x): trả arc sin x (độ đo radians) atan(x): trả arc tang x (độ đo radians) cos(x): trả cos x (độ đo radians) sin(x): trả sin x (độ đo radians) tan(x): trả tang x (độ đo radians) TRƯƠNG XUÂN NAM 20 Phần Bài tập TRƯƠNG XUÂN NAM 21 Bài tập TRƯƠNG XUÂN NAM 22 Bài tập TRƯƠNG XUÂN NAM 23 Bài tập ▪ ▪ ▪ ▪ ▪ ▪ TRƯƠNG XUÂN NAM 24 ... trả tang x (độ đo radians) TRƯƠNG XUÂN NAM 20 Phần Bài tập TRƯƠNG XUÂN NAM 21 Bài tập TRƯƠNG XUÂN NAM 22 Bài tập TRƯƠNG XUÂN NAM 23 Bài tập ▪ ▪ ▪ ▪ ▪ ▪ TRƯƠNG XUÂN NAM 24 ... thay đổi sau khởi tạo xong TRƯƠNG XUÂN NAM Nội dung Dictionary (từ điển) Module Package ▪ Module math Bài tập TRƯƠNG XUÂN NAM Phần Dictionary (từ điển) TRƯƠNG XUÂN NAM Dictionary (từ điển) ▪... package hỗ trợ nhu cầu xử lý TRƯƠNG XUÂN NAM 17 Module math ▪ Một module thông dụng python: import math ▪ Math có nhiều số định nghĩa sẵn: ▪ ▪ ▪ ▪ ▪ pi: 3.141592… e: 2 .71 8281… tau: 6.283185… (2

Ngày đăng: 09/08/2021, 18:17