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

Python exercises(bài tập)

69 15 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 69
Dung lượng 1,73 MB

Nội dung

BÀI TẬP PYTHON (Phần cơ bản) Lý thuyết và bài tập nâng caoLý thuyết và bài tập nâng caoLý thuyết và bài tập nâng caoLý thuyết và bài tập nâng caoLý thuyết và bài tập nâng caoLý thuyết và bài tập nâng cao

BÀI TẬP PYTHON (Phần bản) LÊ VĂN HẠNH levanhanhvn@gmail.com THÁNG 9-2019 Python Execises MỤC LỤC PHẦN CƠ BẢN 1.1 Các lệnh điều khiển 1.1.1 Các lệnh xuất nhập - Biến – Toán tử 1.1.2 Cấu trúc điều kiện 1.1.3 Cấu trúc lặp 1.1.4 Khác 11 1.2 Strings 11 1.2.1 Thao tác với kiểu liệu chuỗi 11 1.2.2 Thao tác với kiểu liệu chuỗi dựa index 15 1.2.3 Xử lý chuỗi liệu kiểu số 16 1.2.4 enumerate() 18 1.3 Bitwise Operator 18 USER DEFINE FUNCTION - MODULE - PACKAGE 19 2.1 Xây dựng hàm 19 2.2 Anonymous function (hàm ẩn danh) 20 2.2.1 Xây dựng hàm ẩn danh với đối tượng number 20 2.2.2 Xây dựng hàm ẩn danh với đối tượng string 23 2.2.3 Xây dựng hàm ẩn danh gọi hàm người dùng định nghĩa (User define function) 23 2.2.4 Xây dựng hàm ẩn danh với đối tượng datetime 23 2.2.5 Sử dụng module khác để xây dựng hàm ẩn danh 23 2.3 Xây dựng hàm đệ quy (Recursion) 24 2.4 Datetime module 25 CÁC ĐỐI TƯỢNG DẠNG DANH SÁCH TRONG PYTHON (Iterator object or Sequences types) 27 3.1 Lists 27 3.1.1 List 27 3.1.2 Number List 27 3.1.3 String List 32 3.1.4 List  Two array dimension 34 3.1.5 Sử dụng hàm map filter list 35 3.1.6 Sử dụng số module việc xử lý list 36 3.2 Tuple 37 3.3 Dictionary 37 3.3.1 Xử lý dictionary 37 3.3.2 Sử dụng số module việc xử lý dictionary 43 3.4 Set 44 3.5 Phối hợp đối tượng dạng sequence type 45 3.5.1 List  Set 45 3.5.2 String  Set 45 3.5.3 List  Dictionary 46 3.5.4 List  Tuple 47 3.6 Sử dụng hàm map đối tương dạng danh sách 47 3.6.1 List to List 47 3.6.2 Dictionary of List to List of Dictionary: 48 Lê Văn Hạnh updated Sep 2021 i Python Execises 3.6.3 String to List 48 3.6.4 Tuple to List 48 3.6.5 Others to String 49 3.7 Xây dựng hàm ẩn danh (Anonymous Function) cho Iterator object 49 3.7.1 Xây dựng hàm ẩn danh number list 49 3.7.2 Xây dựng hàm ẩn danh string list 50 3.7.3 Xây dựng hàm ẩn danh đối tượng phối hợp từ loại iterator object khác 50 3.7.4 Sử dụng module khác để xây dựng hàm ẩn danh iterator object 51 3.8 Sử dụng kỹ thuật Comprehension cho cho Iterator object 51 3.8.1 Number list comprehensions 51 3.8.2 String list comprehensions 54 3.8.3 Set comprehensions 55 3.9 Xây dựng hàm ẩn danh kết hơp với hàm all comprehension 55 3.10 Giải yều cầu hai kỹ thuật Comprehension  Anonymous Function 56 XỬ LÝ NGOẠI LỆ (Exception Handling) 58 FILE - DIRECTORY - OPERATING SYSTEM 59 5.1 Text file 59 5.1.1 Đọc file 59 5.1.2 Ghi file 60 5.1.3 Làm việc file chứa kiểu liệu dạng số 60 5.1.4 Lấy thông tin file 60 5.2 CSV file 61 5.3 Directory (Thư mục) 64 5.4 Khác 64 THAM KHẢO 66 Lê Văn Hạnh updated Sep 2021 ii Python Execises PHẦN CƠ BẢN 1.1 Các lệnh điều khiển 1.1.1 Các lệnh xuất nhập - Biến – Toán tử 1.1.1.1 Sử dụng hàm print 1/ Sử dụng lệnh print để in hình sau: c.-   a.b.                                   d.-                    2/ Sử dụng lệnh print để in hình chữ PYTHON hình minh họa sau: XXXXX XX XX XXXXXX XX XX XXXX XX XX X X XX XX XX XX XX XXXXX X X XX XXXXXX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXX XX XX XXX XX XXXXXX XX XXX XX XX 3/ Chỉ sử dụng lệnh print, yêu cầu in hình đoạn thơ Quê hương với định dạng hình minh họa Gợi ý: sử dụng ký tự tab (‘\t’) để lùi đầu dòng sang phải 1.1.1.2 Sử dụng hàm input 4/ Cho nhập số nguyên a, b In tổng số a b minh họa sau: Ví dụ: a=3, b=5  in + = a Cho nhập số lệnh riêng biệt b Cho nhập số cách dấu phẩy (,) dòng lệnh cách sử dụng phương thức split kiểu liệu chuỗi a, b = input(" ").split() c Sử dụng hàm map(), phương thức split liệu kiểu chuỗi nhập lần nhiều giá trị, giá trị ngăn cách theo định trước chương trình (khoảng trắng, dấu phẩy ký tự nào) Ví dụ: sử dụng phối hợp hàm map int với hàm input nhập số cách dấu chấm phẩy: a, b = map(int, input(" ").split(‘;’)) 5/ Cho nhập số nguyên a, b dòng (cách khoảng trắng) In kết a lũy thừa b (=a**b) hình dạng “%d^%d=%d” 6/ Cho nhập số nguyên dương a có giá trị từ đến In tổng a+aa+aaa Ví dụ: a=5  in + 55 + 555 = 615  Gợi ý: sử dụng phép nối chuỗi số nguyên (vd: với a=5: "%s%s" % (a,a) => 55) hàm int (đổi kiểu liệu từ chuỗi sang số nguyên) Lê Văn Hạnh updated Sep 2021 Python Execises 7/ Viết chương trình Python để chứng minh hai biến chuỗi có giá trị trỏ đến vị trí nhớ cách khai báo biến x = "Python", y = "Python", z = "python" In địa nhớ biến  Gợi ý:  Sử dụng hàm id (tên_biến) để lấy địa biến lưu nhớ  Sử dụng hàm hex để chuyển giá trị số có sang số hệ thập lục 1.1.1.3 Sử dụng phương thức format chuỗi có print 8/ Cho nhập số nguyên a, b, c In số theo thứ tự tăng dần Yêu cầu sử dụng phương thức format việc xuất kết quả, ví dụ: print('{} {} {}'.format(biến1, biến2, biến3)) print('{0} {1} {2}'.format(biến1, biến2, biến3))  Gợi ý: dùng hàm min, max để tìm số nhỏ, lớn nhất, từ suy số lớn nhì Sau dùng phương thức format liệu kiểu chuỗi để xuất kết 9/ Cho nhập chiều dài, chiều rộng chiều cao hình khối chữ nhật (theo cm) Tính xuất kết theo ví dụ sau: Nhập chiều dài đáy hình khối chữ nhật (cm):>? 2.134 Nhập chiều rộng đáy hình khối chữ nhật (cm):>? 3.4567 Nhập chiều cao hình khối chữ nhật (cm):>? 4.1 Số lượng số lẻ cần hiển thị:>? Diện tích đáy hình chữ nhật = 7.38cm² Thể tích hình khối= 30.24cm³  Gợi ý: để in ký tự số mũ, sử dụng mã UNICODE \u00b2 \u00b3 lệnh print 1.1.1.4 Tính tốn đơn giản 10/ Ban đầu rừng có cặp thỏ, biết sau tháng số lượng thỏ rừng tăng lên gấp đơi Hỏi sau m tháng có thỏ (giả sử thỏ không chết) 11/ Cho hình vng ngoại tiếp hình trịn hình minh họa.Viết chương trình cho nhập bán kính hình trịn (r) số thực có giá trị lớn 0, tính phần diện tích có màu đậm hình r r 12/ Cho hình vng nội tiếp hình trịn hình minh họa.Viết chương trình cho Hình minh họa Hình minh họa nhập bán kính hình trịn (r) số thực có 11 12 giá trị lớn 0, tính phần diện tích có màu đậm hình  Gợi ý: import module math, sử dụng số pi (math.pi) hàm tính bậc hai (math.sqrt(giá trị cần tính bậc hai)) có sẵn module math 13/ Tạo chương trình yêu cầu người dùng nhập tên tuổi họ Chương trình in hình chuỗi (s) thơng báo năm mà người tròn 100 tuổi  Gợi ý: import module datetime, sử dụng datetime.now().year class datetime để lấy năm sau: datetime.datetime.now().year Ví dụ: Nhập tên: Tý Nhập tuổi: 21 Đến năm 2099, bạn Tý tròn 100 tuổi Lê Văn Hạnh updated Sep 2021 Python Execises 14/ Có loại tiền 1, 2, 5, 10, 20, 50, 100, 200, 500 Cho nhập số tiền X Chuyển số tiền X loại tiền cho số lượng In số tờ tiền loại, tổng số tờ tiền tất loại Ví dụ với X=1234, in ra: So tien 1234 duoc doi thanh: Loai 500 gom to Loai 200 gom to Loai 100 gom to Loai 50 gom to Loai 20 gom to Loai 10 gom to Loai gom to Loai gom to Loai gom to TỔNG CỘNG CÓ TỜ 1.1.2 Cấu trúc điều kiện 15/ Thực lại tập 14 với yêu cầu in loại tiền có số tờ lớn (Có loại tiền 1, 2, 5, 10, 20, 50, 100, 200, 500 Cho nhập số tiền X Chuyển số tiền X loại tiền cho số lượng nhất.) Ví dụ với X=1234, in ra: So tien 1234 duoc doi thanh: Loai 500 gom to Loai 200 gom to Loai 100 gom to #khơng in dịng số lượng =0 Loai 50 gom to #khơng in dịng số lượng =0 Loai 20 gom to Loai 10 gom to Loai gom to #khơng in dịng số lượng =0 Loai gom to Loai gom to #khơng in dịng số lượng =0 TỔNG CỘNG CÓ TỜ Tong so loai = #in thêm dòng kết 16/ Cho người dùng nhập số nguyên (n) Thực hiện: a Cho biết n số chẵn hay số lẻ b Cho biết n có chia chẵn cho hay khơng? Nếu khơng chia chẵn cho n có chia chẵn cho hay không? c Gọi số n nhập số bị chia Cho người dùng nhập thêm số nguyên khác (m) đại diện cho số chia Cho biết n có chia chẵn cho m hay không? 17/ Cho người dùng nhập điểm (từ 0-100) Nếu điểm nhập có giá trị 100, chương trình in câu báo lỗi ‘Chỉ nhận giá trị từ đến 100’ kết thúc chương trình Ngược lại, in xếp loại điểm số Quy định xếp loại cho bảng bên: Điểm số >=90 Từ 80 đến 89 Từ 70 đến 79 Từ 65 đến 69 Dưới 65 Xếp loại A B C D E 18/ Viết chương trình cho nhập số nguyên dương n (có giá trị khoảng từ đến 10) In chữ số La mã tương ứng 19/ Viết chương trình kiểm tra giúp người dùng tự kiểm tra sức khỏe dựa số BMI (Body Mass Index - số khối thể) cách cho người dùng nhập vào cân nặng (tính theo kg) chiều cao (tính theo mét) họ, chương trình xuất kết đánh giá Biết rằng: • Cơng thức tính BMI: cân nặng (kg) / (chiều cao (m) * chiều cao (m)) Lê Văn Hạnh updated Sep 2021 Python Execises • Đánh giá BMI người Việt Nam cho bảng sau: Đánh giá BMI 0 Ví dụ: với n= 37, in n=9 kết cần tìm (vì 37-10=27 27-9=18 18-9=9) Tương tự với n= 6, in n=6 kết cần tìm 21/ Cho nhập số nguyên a, b dịng (cách khoảng trắng) Viết chương trình giải phương trình bậc 1: ax + b = 22/ Cho nhập số nguyên a, b, c dòng (cách khoảng trắng) Viết chương trình giải phương trình bậc 2: ax2 + bx + c = 23/ Một điểm mặt phẳng biểu diễn tọa độ x y Cho nhập tọa độ đỉnh A, B, C tam giác, cho phập tọa độ điểm P Xác định xem điểm P nằm hay nằm tam giác  Gợi ý: • Thực tính giá trị z1, z2, z3 theo công thức sau: z1 = (xB-xA)*(yP-yA)-(yB-yA)*(xP-xA) z2 = (xC-xB)*(yP-yB)-(yC-yB)*(xP-xB) z3 = (xA-xC)*(yP-yC)-(yA-yC)*(xP-xC) • Kiểm tra giá trị z1, z2, z3 dương âm điểm P nằm tam giác ABC, ngược lại nằm ngồi 24/ Mỗi vịng trịn mặt phẳng xác định yếu tố tâm vịng trịn (x, y) bán kính (R) Viết chương trình cho nhập thơng tin vịng trịn C1 C2 Chương trình cho biết C1 C2 thuộc trường hợp trường hợp sau: C1 C2 C1 C2 (i) C1 C2 (ii) C1 C2 (iii) C2 (iv) Lê Văn Hạnh C1 (v) updated Sep 2021 Python Execises (i)- C1 C2 không cắt (không có phần giao nhau) (ii)- C1 C2 có tiếp điểm ngồi (C1 C2 khơng chứa nhau) (iii)- C1 C2 cắt điểm (iv)- C1 C2 có tiếp điểm (C1 C2 chứa nhau) (v)- C1 C2 không cắt (C1 C2 chứa nhau) Lúc này, cần cho biết: C1 nằm C2 hay C2 nằm C1 25/ Nhập vào số thực a, b, c, d, e, f cách dấu chấm phẩy (;) Giải hệ phương trình sau:  ax + by = c  dx + ey = f   Gợi ý: tính D= a d b e = ae - bd ; Dx= c f b e = ce – bf ; Dy= a d c f = af- dc Nếu D!=0  x=Dx/D; y=Dy/D Ngược lại Dx!=0 Dy !=0  PT vô nghiệm Ngược lại,  PT vô định 26/ Cho nhập số nguyên a, b, c Cho biết thứ tự số a, b, c có tạo thành cấp số cộng hay cấp số nhân không loại Nếu cấp số cộng hay cấp số nhân, in số dãy  Nhắc lại: o Một cấp số cộng (Arithmetic Progression Arithmetic Sequence) dãy số thoả mãn điều kiện: hai phần tử liên tiếp sai khác số gọi công sai (common difference) Chẳng hạn, dãy số 3, 5, 7, 9, 11, cấp số cộng với công sai o Một cấp số nhân (Geometric Progression Geometric Sequence) dãy số thoả mãn điều kiện kể từ số hạng thứ hai, số hạng tích số hạng đứng trước với số khơng đổi Hằng số gọi công bội (common ratio) cấp số nhân Chẳng hạn, dãy số 5, 15, 45, 135, cấp số nhân với công bội Ví dụ: Nhập 1,2,3 in AP sequence Next number of the sequence: Nhập 2,6,18 in GP sequence Next number of the sequence: 54.0 Nhập 1,3,2 in Not an Arithmetic Progression and Geometric Progression sequence 1.1.3 Cấu trúc lặp 27/ Cho nhập số nguyên n a.- In số từ đến n b.- In số nhỏ n bội số c.- In tổng số từ đến n d.- In tổng số chẵn nhỏ n e.- In ước số chẵn n tổng ước số chẵn f.- In số chẵn nhỏ gần với n g.- Tìm ước số lẻ lớn n (nhỏ n) Ví dụ Nhập n=27, in Ước số lẻ lớn 27 28/ Cho nhập số nguyên n, số bắt đầu a cơng sai d (common difference), n phải >0 In lên hình n số hạng cấp số cộng (Arithmetic Progression Arithmetic Sequence) Lê Văn Hạnh updated Sep 2021 Python Execises 29/ Cho nhập số nguyên n, số bắt đầu a cơng bội q (common ratio, n phải >0 In lên hình n số hạng cấp số nhân (Geometric Progression Geometric Sequence) 30/ Cho nhập số nguyên dương n m (n>m>0), liệt kê ước số chẵn n có giá trị nhỏ m Nếu khơng có ước số thỏa điều kiện nhỏ m, chương trình cần in thơng báo “khơng có ước số n nhỏ m” Ví dụ: Nhập 30 30n=30, m=10; in ra: ước số chẵn 30 nhỏ 10 là: 2, 31/ 1Phú Ơng có đàn bị gồm n con, bò mang số hiệu từ đến n Bờm Phú Ông giao nhiệm vụ, hàng ngày, thả bò chiều tối lùa bò chuồng Hàng ngày, bị chuồng, Bờm tính tổng số hiệu bò (S), tổng S bị đủ Một hơm, mải chơi nên Bờm để lạc bị Để đăng tin tìm kiếm, Bờm cần xác định số hiệu bị bị lạc Viết chương trình cho nhập số nguyên n S (với n S nhập đảm bảo tốn ln có nghiệm), giúp Bờm xác định số hiệu bò bị lạc cách: a Có sử dụng lệnh lặp b Khơng sử dụng lệnh lặp Ví dụ với n=5 S=12, Bờm xác định bò bị lạc có mã số 32/ Cho nhập số nguyên a, b (a làm phẳng list comprehension: lst02=[x for subList in lst1 for x in subList] • Dùng phương thức sort() với tham số reverse list Theo mặc định, tham số reverse phương thức sort có giá trị False tức sort tăng 103/ Tạo listA, listB với kích thước khác chứa giá trị tùy ý Ví dụ: x = [1, 2, 3] y = [5, 10, 15, 20] Viết chương trình tạo listC cách tính tích phần tử x với phần tử y cho listC chứa phần tử tích loại số chẵn Ví dụ: tính tích phần tử x phần tử y, ta được: [5, 10, 15, 20, 10, 20, 30, 40, 15, 30, 45, 60] Nhưng kết yêu cầu loại bỏ phần tử chẵn nên listC còn: [5, 15, 15, 45] 104/ Tạo list chứa số nguyên tố nhỏ 1000  Gợi ý:  Tạo hàm nhận tham số số nguyên (k), hàm thực kiểm tra xem k có số ngun tố hay khơng? • Sau lệnh comprehension gọi hàm 105/ Tạo list chứa số nguyên tố Palindrome nhỏ 1000 106/ Bài tốn gà chó Nội dung tốn sau: Sử dụng kỹ thuật comprehension để viết chương trình tìm tất nghiệm có tốn Trong trường hợp kết quả, cho biết số lượng gà, số lượng chó? 107/ Bài tốn trăm trâu Nội dung toán sau: Sử dụng kỹ thuật comprehension để viết chương trình tìm tất nghiệm có tốn Trong trường hợp kết Lê Văn Hạnh updated Sep 2021 Vừa gà vừa chó Bó lại cho trịn Đúng ba sáu Một trăm chân chẵn Trăm trâu trăm cỏ Trâu đứng ăn năm Trâu nằm ăn ba Lụ khu trâu già Ba ăn 52 Python Execises quả, cho biết số lượng loại trâu (đứng, nằm, già) có con? 108/ Cho nhập dãy hệ số nhị phân (0,1) ngăn cách dấu phẩy In số nhị phân dãy chia chẵn cho (hệ thập phân) Kết in dãy nhị phân nhập Ví dụ: S= '0000,00101,00110,010100,10101,11010,111100' # tương dương với giá trị thập phân 0, 5, 6, 20, 21,31,60 In 0000,00101,010100,111100 # tương dương với giá trị thập phân 0, 5, 20, 60 109/ Tạo listA, listB, listC với kích thước khác chứa giá trị tùy ý Ví dụ: listA= [1, 2], listB= [1, 2, 3, 4], listC=[3, 4, 2] Cho nhập tiếp số nguyên k Viết chương trình tìm in tổ hợp gồm phần tử (mỗi phần tử từ list) có tổng = k  Gợi ý:  Sử dụng itertools.product để tạo tổ hợp  Sử dụng partial function cho phép sửa số đối số định hàm tạo hàm Áp dụng Comprehension để tính tổng/tích dãy số: 110/ S = + +3 + +n 111/ S = x + x2 + x3 + + xn 112/ S = x – x2 + x3 - ….+(-1)n+1xn 113/ S = x + x3 + x5 +…+x2n+1 114/ S= 1*2 + + 2*3 3*4 n + + n*(n+1) 115/ S = (1) + (1+2) + (1+2+3) + (1+2+3+4) + + (1+2+3+ +n) 116/ 1+2 P= x 1+2+3+…+n 1+2+3 x x x n 117/ S= + + 1+2 + + 1+2+3 1+2+3+…+n 1 118/ S = - + + + + - … + (-1) n +1 + + + + n 119/ S= Lê Văn Hạnh 12 + 22 + 32 + + n2 1*2 + 2*3 + 3*4 + + n(n+1) updated Sep 2021 53 Python Execises 120/ S= x + x2 1+2 + x3 + + 1+2+3 xn 1+2+3+…+n 3.8.2 String list comprehensions 3.8.2.1 join method 121/ Cho nhập số nguyên dương n In số nguyên dương X nhỏ hay n, cho X có chứa số vị trí (hàng chục, hàng đơn vị, hàng trăm, ) Các số kết in cách dấu phẩy (,) Ví dụ: nhập n= 60 In ra: [5, 15, 25, 35, 45, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59] 122/ Viết chương trình cho nhập số chuỗi (S) Chương trình thực loại bỏ tất nguyên âm (a, e, i, o, u) ký tự in thường có S Ví dụ: S = "Hello Everybody"  xuất Hll Evrybdy 123/ Cho nhập chuỗi S Chuyển tất khoảng trắng có phía đầu chuỗi S Ví dụ: (ký tự  diễn tả thay cho khoảng trắng) S= "w3resource.com" "w3resource.com" 124/ Viết chương trình cho người dùng nhập chuỗi S (có thể gồm nhiều dòng) Thực đảo từ chuỗi Ví dụ: S = 'Kiến ăn Cá'  xuất Cá ăn Kiến Hay S='Chỉ có thuyền hiểu\n Biển mênh mông nhường nào'  xuất hiểu thuyền có Chỉ nhường mơng mênh Biển 125/ Giả sử người ta cho số gọi số Lộc Phát chứa toàn số số Viết hàm nhận tham số số nguyên n, hàm thực xét xem n có số Lộc Phát hay không (là số Lộc Phát trả True, ngược lại trả False)? Ví dụ: n=686  686 số Lộc Phát n=68626  68626 KHÔNG phải số Lộc Phát 126/ Cho người dùng nhập chuỗi (S) địa IP (IP Address) Thực xóa số (zero) khơng có nghĩa Ví dụ: S= '192.024.001.023'  in 192.24.1.23 Hoặc S= '005.004.001.020'  in 5.4.1.20 3.8.2.2 String comprehension 127/ Viết chương trình cho người dùng nhập chuỗi (S) bao gồm ký tự ký số Thực tính tổng tất ký số có S Ví dụ: S='Python 3.7'  10 128/ Viết chương trình cho người dùng nhập chuỗi (S) Đếm in S có ký tự nguyên âm (vowel - a, e, i, o, u), ký tự phụ âm (consonant – b, c, d, f, g, h, j, k, l, m, n, p, q, r, s, t, v, w, x, y, z) Lưu ý đếm khơng phân biệt chữ hoa, chữ thường Ví dụ: S = 'Sai Gon' in Có nguyên âm: a i o Có phụ âm: S G n Lê Văn Hạnh updated Sep 2021 54 Python Execises 129/ Viết chương trình cho người dùng nhập chuỗi (S1 S2) Tạo chuỗi kết cách ghép ký tự có S1 khơng có S2 có S2 khơng có S1 Ví dụ: S1='abcd'; S2='mncdgh'  'abmngh' 3.8.3 Set comprehensions 130/ Cho set: set1={1, 3, 5, 7, 9} set2={0, 2, 4, 6, 8} Tạo set3 chứa số x+y số nguyên tố với x thuộc set1, y thuộc set2 3.9 Xây dựng hàm ẩn danh kết hơp với hàm all comprehension 131/ Hàm nhận đối số số nguyên n Cho biết n có số nguyên tố hay không? 132/ Hàm nhận đối số số nguyên n Cho biết n có chứa tồn số chẵn hay khơng? Ví dụ: n=2048 => n chứa tồn số chẵn n=2148=> n khơng chứa tồn số chẵn 133/ Cho nhập số nguyên n, tạo list L gồm n phần tử với giá trị ngẫu nhiên nguyên dương từ đến 100000 a Cho nhập số k Sử dụng kỹ thuật Comprehension, cho biết k có lớn tất số có L hay khơng? Nếu khơng, chương trình xét tiếp xem k có lớn số có list hay khơng? Nếu khơng có, chương trình in ‘k nhỏ tất số có list’  Gợi ý: dùng hàm all() any() b Số giảm dần: Giả sử n gọi số giảm dần giá trị ký số có n giảm dần từ trái sang phải Ví dụ: số giảm dần như: n = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ,11, 21,31,32, …, 420, …, 77431, … số KHÔNG giảm dần như: 12,13, …, 557, …, 77434, …  Yêu cầu cài đặt: liệt kê số giảm dần có list  Kết gợi ý thực chương trình: Giả sử với list gồm [727, 6, 1421, 626, 3706, 101, 3553, 4234, 33, 971] Hàm in kết quả: Trong list có số giảm dần: 6, 33, 971 Với list gồm [1599, 1910, 14, 1050, 258, 4387] Hàm in kết quả: Trong list không chứa số giảm dần c Số thân thiện: số mà ước số chung lớn số (n) số nghịch đảo n  Yêu cầu cài đặt: liệt kê số thân thiện có list  Kết gợi ý thực chương trình: tương tự gợi ý câu b d Số strobogrammatic: Là số có giá trị khơng đổi xoay số 180 độ (180o) Nhận xét: số strobogrammatic chứa số sau đây: 0, 1, 6, 8, Trong số 0, 1, khơng bị thay đổi giá trị sau xoay, số bị thay đồi (6 chuyển thành chuyền thành 6)  Yêu cầu cài đặt: liệt kê số nguyên tố strobogrammatic (vừa số nguyên tố, vừa strobogrammatic) có list  Kết gợi ý thực chương trình: tương tự gợi ý câu b 134/ Yêu cầu thực hiện: - Viết chương trình cho người dùng nhập số nguyên n Sử dụng comprehension để tạo list gồm n phần tử với giá trị ngẫy nhiên từ đến 2000 Xét xem giá trị k list có thỏa trường hợp sau hay không? - Lần lượt thực trường hợp cần xét sau cách: Lê Văn Hạnh updated Sep 2021 55 Python Execises • Cách 1: sử dụng kỹ thuật comprehension để thực • Cách 2: tạo hàm ẩn danh, viết chương trình dùng comprehension để sử dụng hàm ẩn danh tạo trước - Các trường hợp cần xét: a.- Các ký số n tăng dần từ trái sang phải hay khơng?  TĂNG dần k= 1335787999  KHƠNG tăng dần Ví dụ: k= 133577999 Gợi Ý: Sử dụng hàm all, bên hàm câu lệnh có sử dụng kỹ thuật comprehension Kết trả hàm all True False  Mở rộng: Các ký số tăng dần từ phải sang trái hay không? b.- Các ký số k số chẵn hay khơng? Ví dụ: k= 24864  Tồn chẵn k= 24874  KHƠNG tồn chẵn  Mở rộng: Các ký số toản lẻ hay không? c.- Các ký số k giống hay khơng (k cịn gọi số đồng nhất)? Ví dụ: k= 333 hay k= 77 hay k=2  số đồng k= 23222  KHÔNG số đồng d.- Các ký số k số nguyên tố? Ví dụ: k= 372 hay k= 55 hay k=2  ký số số ngun tố k= 23222  có ký số khơng phải số nguyên tố Giải yều cầu hai kỹ thuật Comprehension  Anonymous Function 3.10 Yêu cầu chung: Mỗi tập phần thực cách: Comprehension Anonymous Function 135/ Viết chương trình cho nhập số nguyên n Chương trình tạo list L gồm n số nguyên âm dương ngẫu nhiên từ -100 đến +100 Tạo list M chứa số L có giá trị >0 136/ Viết chương trình cho nhập list gồm số âm dương Hãy đưa số dương đầu list, số âm cuối list Lưu ý không sử dụng phương thức sort Ví dụ: với lst= [-5, 10, -3, -1, 7, 8, 9, 2] Kết in hình: [10, 7, 8, 9, 2, -5, -3, -1]  Gợi ý: tạo listDuong chứa số dương lst tạo listAm chứa số âm lst Sau nối list lại 137/ Viết chương trình cho nhập số nguyên n Chương trình tạo list L gồm n số nguyên ngẫu nhiên In số chia hết cho 15 từ list L 138/ Tạo listA, listB với kích thước khác chứa giá trị tùy ý Ví dụ: listA = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] listB = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] a Viết chương trình trả listAinB cho biết giá trị listA có listB ngược lại tạo listBinA chứa giá trị listB có listA b (*)Mở rộng: Sao cho list kết (listAinB listBinA) không chứa giá trị trùng Thực cách: cách dùng set; cách dùng dictionary Lê Văn Hạnh updated Sep 2021 56 Python Execises 139/ Cho nhập số nguyên dương n Kiểm tra xem chữ số n có tồn lẻ (hay tồn chẵn) khơng? 140/ Số Lộc Phát: giả sử người ta cho số gọi số Lộc Phát chứa toàn số số Viết chương trình cho nhập số nguyên n, xét xem n có số Lộc Phát hay khơng? Ví dụ: n=686 686 số Lộc Phát n=68626 68626 KHÔNG phải số Lộc Phát 141/ Lucky Number (tương tự tập phần 1.1.3, khác yêu cầu kỹ thuật xử lý) - (Theo Wikipedia) Lucky Number (số may mắn) số định nghĩa theo trình sau: bắt đầu với số ngun dương x tính tổng bình phương y chữ số x, sau tiếp tục tính tổng bình phương chữ số y Quá trình lặp lặp lại thu kết dừng (tổng bình phương chữ số số 1) q trình kéo dài vơ tận Số mà q trình tính kết thúc gọi số may mắn Số có q trình tính kéo dài vơ tận số khơng may mắn hay cịn gọi sad number (số đen đủi) Ví dụ: số may mắn 7² = 49 4² + 9² = 97 9² + 7² = 130 1² + 3² + 0² = 10 1² + 0² = - Yêu cầu cài đặt: • Sử dụng Comprehension để viết hàm thứ 1, nhận tham số số nguyên dương n, hàm trả True n Lucky number trả False n Lucky number Trong hàm phải sử dụng kỹ thuật Comprehension để xác định n có phải Lucky number hay khơng? • Sử dụng lambda: để viết hàm thứ 2, nhận tham số số nguyên dương n, hàm trả True n Lucky number trả False n khơng phải Lucky number • Giả sử để xác định trình tìm Lucky number có kéo dài vơ tận hay khơng, người ta cho lặp việc tìm tối đa 100 lần Do trình lặp để tìm vượt 100 lần chương trình kết luận số sad number Lê Văn Hạnh updated Sep 2021 57 Python Execises XỬ LÝ NGOẠI LỆ (Exception Handling) 1/ Cho biến x=2 biến y không gán giá trị Viết chương trình kiểm tra xem biến x y khai báo gán giá trị hay chưa? 2/ Cho người dùng nhập số thực In trị tuyệt đối số Cần xét khả người dùng khơng nhập ký số Khi cần báo lỗi ‘Not numeric’ 3/ Cho người dùng nhập số nguyên n In bảng cửu chương n Nếu n nhập vào khơng phải số ngun báo lỗi yêu cầu nhập lại 4/ Cho người dùng nhập số nguyên In tổng hiệu tích thương số Cần xét khả gây lỗi  Gợi ý: sử dụng exception ValueError, ZeroDivisionError, Exception 5/ Viết chương trình cho người dùng nhập số nguyên dương n, chương trình in n số ngẫu nhiên từ đến 100 Nếu người dùng nhập kiểu liệu khác (float, bool, ) chương trình câu ‘Phải nhập số nguyên dương’ cho lặp lại việc nhập n Chương trình lặp lại cơng việc nhiều lần kết thúc người dùng nhập từ ‘exit’ nhập số (zero) 6/ Cho người dùng nhập vào số nguyên dương n thỏa yêu cầu sau Nếu người dùng nhập vào số khơng u cầu chương trình cho nhập lại a Điều kiện: n>0 Nếu nhập đúng, chương trình in số chẵn X (0

Ngày đăng: 06/08/2022, 22:48

TÀI LIỆU CÙNG NGƯỜI DÙNG