Giáo trình Python - Bài 3: Câu lệnh điều kiện
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Python - Bài 3: Câu lệnh điều kiện", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
giao_trinh_python_bai_3_cau_lenh_dieu_kien.pdf
Nội dung text: Giáo trình Python - Bài 3: Câu lệnh điều kiện
- BÀI 3: CÂU LỆNH ĐIỀU KIỆN Nguyễn Thị Thanh Huyền Bộ môn CNPM – Khoa CNTT - ĐHSPHN HÀ NỘI, THÁNG 1/2021
- NỘI DUNG CHÍNH § Biểu thức logic § Câu lệnh điều kiện một nhánh § Câu lệnh điều kiện hai nhánh § Câu lệnh điều kiện nhiều nhánh
- BIỂU THỨC LOGIC § True và False là hai hằng trong Python. § Có thể dùng thay thế bởi các giá trị khác: • False: 0, None, container hoặc đối tượng rỗng • True: giá trị khác 0, đối tượng khác rỗng § Phép toán so sánh (quan hệ): ==, !=, <, <=, etc. § Lưu ý: • X và Y có cùng giá trị thì X == Y trả về True • Phép so sánh X is Y trả về True nếu X và Y là hai biến cùng tham chiếu đến cùng một đối tượng
- BIỂU THỨC LOGIC § Có thể kết hợp nhiều biểu thức Boolean •True nếu cả a và b đều là True: a and b •True nếu a là True hoặc b là True: a or b •True nếu a là False: not a § Sử dụng dấu ngoặc khi cần thiết để làm cho biểu thức Boolean phức tạp rõ ràng hơn
- PHÉP AND & OR § Bản chất phép and và or không trả về giá trị True hoặc False, mà trả về giá trị phụ thuộc vào giá trị của biểu thức con. của một trong những biểu thức con có thể là giá trị không thuộc kiểu Boolean § Ví dụ: X and Y and Z: • Nếu tất cả đều là True, trả về giá trị của Z • Ngược lại, trả về giá trị của biểu thức con có giá trị False đầu tiên § X or Y or Z • Nếu tất cả đều sai, trả về giá trị của Z • Ngược lại, trả về giá trị của biểu thức con có giá trị True đầu tiên § And và or sử dụng lazy evaluation (chỉ thực hiện tính toán khi cần thiết)
- THỦ THUẬT DÙNG “AND-OR” § Quy tắc cũ để tính toán một biểu thức điều kiện đơn giản: result = test and expr1 or expr2 • Khi test là True, result sẽ được gán bằng giá trị của expr1 • Khi test là False, result sẽ được gán bằng giá trị của expr2 • Tương tự như câu lệnh điều kiện trong C++ (test ? expr1 : expr2) § Nếu giá trị của expr1 là False, quy tắc này không còn đúng
- BIỂU THỨC ĐIỀU KIỆN x = true_value if condition else false_value § Áp dụng quy tắc lazy evaluation: • Đầu tiên, condition được tính Nếu True, true_value được trả về cho biểu thức và gán cho x Nếu False, false_value được trả về cho biểu thức và gán cho x) § Cách dùng chuẩn: x = (true_value if condition else false_value)
- THỰC THI CÓ ĐIỀU KIỆN x = 5 Yes Chương trình: x < 10 ? Kết quả: No print('Smaller') x = 5 Smaller if x < 10: Yes print('Smaller') Finis x > 20 ? if x > 20: print('Bigger') No print('Bigger') print('Finis') print('Finis')
- TOÁN TỬ SO SÁNH § Biểu thức Boolean là câu hỏi cho ra Python Meaning kết quả Có (Yes) hoặc Không (No) < Nhỏ hơn để điều khiển luồng thực thi <= Nhỏ hơn hoặc bằng chương trình == Bằng § Biểu thức Boolean sử dụngCâu lệnhcácđiều kiện hai nhánh >= Lớn hơn hoặc bằng phép toán so sánh (quan hệ) để > Lớn hơn đưa ra kết quả True/False hoặc != Khác Yes/No § Phép toán so sánh chỉ đọc mà Lưu ý: “=” là phép gán không làm thay đổi giá trị của biến
- TOÁN TỬ SO SÁNH x = 5 if x == 5 : print('Equals 5') Equals 5 if x > 4 : print('Greater than 4') Greater than 4 if x >= 5 : Greater than or Equals 5 print('Greater than or Equals 5') if x < 6 : print('Less than 6') Less than 6 if x <= 5 : print('Less than or Equals 5') Less than or Equals 5 if x != 6 : print('Not equal 6') Not equal 6
- CẤU TRÚC CÂU LỆNH ĐIỀU KIỆN if : § : là biểu thức logic trả về giá trị True hoặc False § : Các lệnh được thực hiện nếu đúng (True) § Bắt đầu khối lệnh thân if bằng cách tăng thụt lề § Kết thúc bằng cách giảm thụt lề
- THỤT LỀ (INDENTATION) § Quy tắc thụt lề đối với lệnh if: • Tăng indent (thụt lề sâu hơn): sau lệnh if (chính xác là sau dấu ”:”) • Giữ nguyên indent để xác định phạm vị của khối lệnh (các dòng lệnh trong thân lệnh if). Các lệnh cùng mức thụt lề có vai trò tương đương nhau • Giảm indent (quay lại cùng mức với lệnh if) để kết thúc khối lệnh • Các dòng trống và chú thích được bỏ qua, không xét indentation
- THỤT LỀ (INDENTATION) § Lưu ý: • IDE Atom tự động sử dụng dấu cách cho file mở rộng .py • Các trình soạn thảo văn bản khác tự động đổi tab sang dấu cách (space). Nếu không, hãy bật tính năng này. NotePad++: Settings -> Preferences -> Language Menu/Tab Settings Pycharm:
- THỤT LỀ (INDENTATION) § Việc thụt lề là quan trọng trong python, không chỉ có ý nghĩa về mặt hình thức. § Nếu LTv dùng lẫn cả tab và space, chương trình sẽ báo lỗi “indentation errors” mặc dù mã nguồn nhìn không có vấn đề gì.
- THỤT LỀ (INDENTATION) § Tăng indent sau x = 5 if x > 2 : lệnh if để bắt print('Bigger than 2') đầu khối lệnh print('Still bigger') thân if print('Done with 2') § Giảm indent để kết thúc khối for i in range(5) : lệnh thân if print(i) if i > 2 : print('Bigger than 2') print('Done with i', i) print('All Done')
- BẮT ĐẦU VÀ KẾT THÚC KHỐI LỆNH x = 5 if x > 2 : print('Bigger than 2') print('Still bigger') print('Done with 2') for i in range(5) : print(i) if i > 2 : print('Bigger than 2') print('Done with i', i) print('All Done')
- CÂU LỆNH RẼ 1 NHÁNH x = 5 print('Before 5') Before 5 Yes if x == 5 : x == 5 print('Is 5') Is 5 ? print('Is Still 5') Is Still 5 No print('Is 5’) print('Third 5') Third 5 print('Afterwards 5') Afterwards 5 print('Still 5') print('Before 6') Before 6 if x == 6 : print('Third 5') print('Is 6') print('Is Still 6') print('Third 6') Afterwards 6 print('Afterwards 6')
- CÂU LỆNH RẼ NHÁNH yes x > 1 x = 42 if x > 1 : no print('More than one’) print('More than one') if x < 100 : yes print('Less than 100') x < 100 print('All done') no print('Less than 100') print('All Done')
- CÂU LỆNH RẼ NHÁNH § Đôi khi chúng ta muốn x = 4 thực hiện một việc A khi biểu thức logic đúng và no yes việc B khi biểu thức sai. x > 2 print('Not § Giống như tại ngã ba print('Bigger') đường – ta phải chọn một bigger') trong hai đường để đi, và không thể chọn cả hai print('All Done')
- CÂU LỆNH RẼ 2 NHÁNH if : else: § : là biểu thức logic trả về giá trị True hoặc False § : Các lệnh được thực hiện nếu đúng (True) § : Các lệnh được thực hiện nếu sai (False)



