Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 100 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
100
Dung lượng
1,37 MB
Nội dung
TRƯỜNG ĐẠI HỌC THỦY LỢI Khoa Công nghệ thông tin Bộ mơn Tin học KTTT LẬP TRÌNH PYTHON Giảng viên: TS.GVC Bùi Thị Thanh Xuân Email: xuanbtt@tlu.edu.vn Điện thoại: 0902001581 Chương Kiểu liệu ➢ LIST (Danh sách) ➢ TUPLE (Hàng /Bộ) ➢ RANGE (Miền) Kiểu liệu ❖Hai loại đặc trưng điều khiển ➢ Sequential access: truy cập ➢ Random access: truy cập ngẫu nhiên ❖Tuần tự: thông dụng sống, chẳng hạn xếp hàng, xử lý dây chuyền, lưu trữ băng từ,… Kiểu liệu ❖Kiểu liệu python: kiểu liệu chứa bên liệu thường xử lý cách lấy phần-tử-một theo thứ tự (thường vịng for) ➢ Các kiểu liệu chứa bên liệu nhỏ thường gọi container (bộ chứa) ➢ Khái niệm “tuần tự” nhấn vào việc xử lý phần tử một, không thiết cách xử lý ❖Có kiểu thơng dụng list, tuple range ❖Có nhiều kiểu khác string, bytes, bytearray,… lập trình viên tự tạo kiểu riêng theo nhu cầu Chương Kiểu liệu List (danh sách) Bất biến (immutable) Khả biến (mutable) ❖Bất biến = không thay đổi, loại liệu bất biến thông dụng Python: bool, int, float, str, tuple frozenset ❖Khả biến = thay đổi, loại liệu khả biến thông dụng Python gồm: list, set, dict ❖Chúng ta thay đổi giá trị int, nói “bất biến” ➢Python khơng thực thay đổi giá trị int, phần mềm tạo vùng nhớ chứa giá trị cho biến “trỏ” tới vùng ❖Ví dụ để hiểu rõ chế này: n = 100 print(n, id(n)) # 100 id biến n n = n + print(n, id(n)) # 101 id n thay đổi so với Giới thiệu khai báo ❖List = dãy đối tượng (một loại array đa năng) ❖Các phần tử list không thiết phải kiểu liệu ❖Khai báo trực tiếp: liệt kê phần tử đặt cặp ngoặc vuông ([]), ngăn cách dấu phẩy (,) [1, 2, 3, 4, 5] ['a', 'b', 'c', 'd'] [[1, 2], [3, 4]] [1, 'one', [2, 'two']] [] # # # # # list list list list list số nguyên chuỗi list hỗn hợp rỗng ❖Kiểu chuỗi (str) python xem list đặc biệt, bên gồm toàn str độ dài Khởi tạo list ❖Tạo list constructor (hàm tạo) l1 = list([1, 2, 3, 4]) # list số nguyên l2 = list('abc') # list chuỗi l3 = list() # list rỗng ❖Tạo list list comprehension (bộ suy diễn danh sách) đoạn mã ngắn trả phần tử thuộc list # X # # Y list 1000 số nguyên từ đến 999 = [n for n in range(1000)] list gồm 10 list cặp [x, x2] với x chạy từ đến = [[x, x*x] for x in range(10)] So sánh list: theo thứ tự từ điển a = [1, 2, 3] b = [1, 2, 3, 4] c = [1.5] d = ['a', 'b', 'c'] print(a > b) print(a == b) print(a < b) print(a + [4] == b) print(c = c) # # # # # # # # False False True True False True True Lỗi Phép toán, mục cắt ❖Giữa list str có tương đồng định ➢List hỗ trợ phép toán: ghép nối (+), nhân (*) kiểm tra nội dung (in) ➢List sử dụng hệ thống mục phép cắt phần tương tự str ❖Điểm khác biệt: nội dung list thay đổi # khởi tạo list ban đầu l1 = list([1, 2, 3, 4]) # thay đổi giá trị phần tử cuối l1[-1] = list('abc') # in nội dung list: [1, 2, 3, ['a', 'b', 'c']] print(l1) 10 Một số toán tử logic Operator Name Example and Returns True if both statements are true x < and x < 10 or Returns True if one of the statements is true x < or x < not Reverse the result, returns False if the result is true not(x < and x < 10) Một số toán tử bit Operator Name Description & AND Sets each bit to if both bits are | OR Sets each bit to if one of two bits is ^ XOR Sets each bit to if only one of two bits is ~ NOT Inverts all the bits > Signed right shift Shift right by pushing copies of the leftmost bit in from the left, and let the rightmost bits fall off Bài tập Bài tập 1) Người dùng nhập từ bàn phím liên tiếp từ tiếng Anh viết tách dấu cách Hãy nhập chuỗi đầu vào tách thành từ sau in hình từ theo thứ tự từ điển 2) Người dùng nhập từ bàn phím chuỗi số nhị phân viết liên tiếp nối dấu phẩy Hãy nhập chuỗi đầu vào sau in giá trị nhập 3) Nhập số n, in hình số ngun dương nhỏ n có tổng ước số lớn 4) Nhập vào chuỗi từ người dùng, kiểm tra xem có phải địa email hợp lệ hay khơng? 5) Nhập n, in n dòng tam giác Pascal 89 Bài tập 6.*Hãy nhập số nguyên n, tạo list gồm số fibonacci nhỏ n in ➢Dãy fibonacci dãy số nguyên định nghĩa cách đệ quy sau: f(0)=0, f(1) = 1, f(n) = f(n-1) + f(n-2) 7.Tạo tuple P gồm số nguyên tố nhỏ triệu ➢Số nguyên tố số tự nhiên có ước số 8.*Liệt kê chuỗi độ dài N tuple X gồm chuỗi định nghĩa sau: ➢Chuỗi A = ‘()’ thuộc X ➢Nếu chuỗi A thuộc X chuỗi (A) thuộc X ➢Nếu chuỗi A B thuộc X chuỗi AB thuộc X 90 Bài tập Tạo tuple P gồm số nguyên tố nhỏ triệu Số nguyên tố số tự nhiên có ước số →Dùng thuật tốn kiểm tra số nguyên tố thông thường không hiệu n lớn, ví dụ n = 1000000 → Cần có phương pháp hiệu quả: Phương pháp sàng số nguyên tố Thuật tốn tìm số ngun tố thơng thường Thuật tốn sàng số nguyên tố #Thuat toan sang nguyen to nho hon N N =10**6 L=[1 for i in range(N)] L[0]=L[1] = can2 = int(N**(1/2)) for i in range(2, 1+can2): if L[i]==1: k =i while i*k< N: L[i*k] =0 k=k+1 for i in range(N): if L[i]==1: print(i, end = " ") print("Danh sach cac so nguyen to nho hon %d:"%N) Thuật toán sàng số nguyên tố #Thuat toan sang nguyen to nho hon N N =10**7 L=[1 for i in range(N)] L[0]=L[1] = can2 = int(N**(1/2)) for i in range(2, 1+can2): if L[i]==1: k =i while i*k