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

Bài giảng Nhập môn lập trình khoa học dữ liệu: Bài 5 - Trương Xuân Nam

22 2 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

Bài giảng Nhập môn lập trình khoa học dữ liệu: Bài 5 Ngôn ngữ lập trình python (4) cung cấp cho người học những kiến thức như: Set (tập hợp) và Frozenset (tập hợp tĩnh); Dictionary (từ điển); Module và Package; Bài tập. Mời các bạn cùng tham khảo!

NHẬP MƠN LẬP TRÌNH KHOA HỌC DỮ LIỆU Bài 5: Ngơn Ngữ Lập Trình Python (4) Nhắc lại kiến thức trước  Kiểu liệu tuần tự: kiểu liệu cho phép xử lý liệu cách xử lý từng-phần-tử-con-một  Danh sách (list): dãy phần tử, khai báo bên cặp ngoặc vuông, nội dung thay đổi  Hàng (tuple): dãy phần tử, khai báo bên cặp ngoặc tròn, nội dung cố định (khơng thay đổi)  Range (miền): xem dạng tuple đặc biệt gồm số nguyên, chuyên dùng cho lặp for  Chuỗi (str): dạng tuple đặc biệt gồm nhiều chuỗi có độ dài ký tự TRƯƠNG XUÂN NAM Nhắc lại kiến thức trước  Các kiểu liệu có chung đặc điểm:      Bản chất đối tượng, viết cách tự nhiên Rất nhiều phương thức hỗ trợ việc xử lý Sử dụng chung hệ thống mục (âm dương) Sử dụng chung kĩ thuật cắt lát (bằng mục) Sử dụng chung phép toán: +, *, in  Chuỗi có nhiều kĩ thuật định dạng nội dung  List Tuple tạo comprehension  Nhiều hàm dựng sẵn (built-in) xử lý kiểu liệu này: len, max, min, all, any, filter, sorted, sum, zip,… TRƯƠNG XUÂN NAM Nội dung Set (tập hợp) Frozenset (tập hợp tĩnh) Dictionary (từ điển) Module Package Bài tập TRƯƠNG XUÂN NAM Phần Set (tập hợp) Frozenset (tập hợp tĩnh) TRƯƠNG XUÂN NAM Giới thiệu khởi tạo  Set = tập hợp đối tượng (không trùng nhau)  Khai báo trực tiếp cách liệt kê phần tử đặt cặp ngoặc nhọn ({}), ngăn cách phẩy >>> basket = {'apple', 'orange', 'apple', 'pear'} >>> print(basket) {'orange', 'pear', 'apple'} # xóa trùng  Tạo set constructor s1 s2 s3 s4 = = = = set([1, 2, 3, 4]) set((1, 1, 1)) s1 – s2 set(range(1,100)) # # # # {1, 2, 3, 4} {1} {2, 3, 4} {1, 2, 3,…, 98, 99} TRƯƠNG XUÂN NAM Khởi tạo  Tạo set set comprehension # a = {'r', 'd'} a = {x for x in 'abracadabra' if x not in 'abc'}  Set chứa đối tượng mutable (có thể bị thay đổi), set lại thay đổi a = set(([1,2], [2,3])) a = set(((1,2), (2,3))) a.add("abc") # lỗi # {(1, 2), (2, 3)} # {(1, 2), "abc", (2, 3)}  Frozenset giống set, bị thay đổi b = frozenset(((1,2), (2,3))) b.add("abc") TRƯƠNG XUÂN NAM # {(1, 2), (2, 3)} # lỗi Các phép toán set a = set('abracadabra') # {'d', 'r', 'c', 'b', 'a'} b = set('alacazam') # {'z', 'c', 'm', 'l', 'a'} # Phép Hiệu: thuộc a không thuộc b print(a – b) # {'r', 'd', 'b'} # Phép Hợp: thuộc a b # {'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'} print(a | b) # Phép Giao: thuộc a b print(a & b) # {'a', 'c'} # Phép Xor: thuộc a, b # {'r', 'd', 'b', 'm', 'z', 'l'} print(a ^ b) TRƯƠNG XUÂN NAM Các phương thức set  Một số phương thức thường hay sử dụng          add(e): thêm e vào tập hợp clear(): xóa phần tử tập hợp copy(): tạo tập hợp difference(x): tương đương với phép trừ x difference_update(x): loại bỏ phần tử x khỏi tập discard(e): bỏ e khỏi tập remove(e): bỏ e khỏi tập, báo lỗi khơng tìm thấy e union(x): tương đương với phép hợp với x intersection(x): tương đương với phép giao với x TRƯƠNG XUÂN NAM Các phương thức set  Một số phương thức thường hay sử dụng  isdisjoint(x): trả True tập khơng có phần chung với x  issubset(x): trả True tập x, tương đương với phép so sánh =x  pop(): lấy phần tử khỏi tập (không biết trước)  symmetric_difference(x): tương đương với phép ^x TRƯƠNG XUÂN NAM 10 Phần Dictionary (từ điển) TRƯƠNG XUÂN NAM 11 Dictionary (từ điển)  Từ điển danh sách từ (key) định nghĩa (value)  Yê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 12 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 13 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 14 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 15 Phần Module Package TRƯƠNG XUÂN NAM 16 Module  Một file mã nguồn python 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:  Khai báo import module đó: import  Có thể khai báo 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  Hoặc import riêng hàm nhiều hàm, cú pháp: from import fuc1, fuc2,…, fucN TRƯƠNG XUÂN NAM 17 Package  Package = Thư mục module (lưu trữ vật lý) 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  Gom, nhóm hàm, biến, lớp xử lý chủ đề, giúp phân cấp sử dụng dễ dàng TRƯƠNG XUÂN NAM 18 Phần Bài tập TRƯƠNG XUÂN NAM 19 Bài tập Tạo tập hợp gồm phần tử từ đến 99, in chúng hình Tạo tập hợp gồm số nguyên lẻ khoảng từ đến 199, in chúng hình 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 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 TRƯƠNG XUÂN NAM 20 Bài tập Nhập từ điển D, in value khác từ điển Nhập từ điển D có value số nguyên, in hình giá trị value lớn 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 21 Bài chữa Tập từ đến 99 num_set = set(range(0,100)) for n in num_set: print(n) Tập số lẻ từ đến 199 num_set = set(i for i in range(0,200) if i%2==1) print(num_set) 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)) TRƯƠNG XUÂN NAM 22

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

Xem thêm: