Các Cấu Trúc Lặp Trong Python: For Và While

--- Bài mới hơn ---

  • Bài 25: Vòng Lặp While Trong Python
  • Whereas Là Gì ? Giải Nghĩa Từ “whereas” Và Các Từ Gợi Ý Liên Quan
  • Whereas Là Gì? Các Từ Đồng Nghĩa Whereas
  • Cấu Trúc Dạng To V Hay Ving
  • Sự Cho Phép: Can, Could, May, Might Và Be Allowed To (Permission: Can, Could, May, Might And Be Allowed To)
  • Các cấu trúc lặp trong Python bao gồm hai loại: lặp với số bước xác định trước (for) và lặp với số bước không xác định (while). Nhìn chung hai cấu trúc lặp trong Python tương đối gần gũi với các cấu trúc lặp trong C hay C#.

    Cấu trúc lặp while

    Hãy xem ví dụ sau:

    word = '' while(word.lower() != 'close'): word = input('Enter a word: ') print(f'You have typed "{word}"')

    Chúng ta không biết khi nào người dùng sẽ nhập ‘close’, và cũng có thể là không bao giờ. Vì vậy, vòng lặp while được gọi là vòng lặp với số bước không xác định trước.

    Biến word đóng vai trò là biến điều khiển cho biểu thức điều kiện.

    Hãy xem một ví dụ khác:

    # tính tổng các số từ 1 đến 99 sum = 0 i = 1 while i < 100: sum += i i += 1 print(sum)

    Trong ví dụ này chúng ta tính tổng các số từ 1 đến 99. Để thực hiện việc này chúng ta sử dụng một biến i với vai trò biến đếm. Biến i ban đầu nhận giá trị 1. Qua mỗi vòng lặp i sẽ tăng thêm 1 đơn vị, và biến sum sẽ cộng thêm giá trị bằng i. Quá trình này sẽ lặp đi lặp lại chừng nào i vẫn nhỏ hơn 100. Đến khi i đạt giá trị 100 thì vòng lặp kết thúc.

    Chừng nào biểu thức logic còn nhận giá trị True thì sẽ thực hiện danh sách lệnh ở phần suite.

    Để tránh tạo thành vòng lặp vô tận, bên trong danh sách lệnh của vòng lặp while phải có lệnh có tác dụng làm thay đổi giá trị của biểu thức logic.

    Trong ví dụ thứ nhất, chúng ta liên tục yêu cầu người dùng nhập vào giá trị mới cho biến char. Điều này đảm bảo khả năng thoát khỏi vòng lặp.

    Trong ví dụ thứ hai, chúng ta làm biến đổi giá trị của i qua mỗi vòng lặp (tăng thêm 1 đơn vị). Điều này đảm bảo đến một lúc nào đó i sẽ có giá trị lớn hơn 100 và kết thúc vòng lặp.

    Cấu trúc lặp for

    Hãy xem các ví dụ sau

    # in ra các số trong phạm vi từ 1 đến 100 for n in range(100): print(n + 1, end = 't') # in ra các số trong phạm vi từ 100 đến 199 for n in range(100, 200): print(n, end = 't') # in ra các số lẻ trong phạm vi từ 1 đến 99 for n in range(1, 100, 2): print(n, end = 't')

    Cấu trúc for cho phép lặp lại việc thực hiện khối code theo một số lần xác định sẵn từ đầu.

    Số lần lặp và cách thức lặp được tạo ra bởi hàm range().

    Hàm range() trả về một biến chứa một dãy các giá trị nằm trong một khoảng xác định theo quy luật. Hàm này có 3 dạng:

    1. range(stop): nhận 1 tham số là giá trị cuối của dãy và trả về dãy số . Ví dụ, range(1, 5) sẽ trả lại dãy số 1, 2, 3, 4 (bước nhảy giữa các giá trị kế tiếp là 1).
    2. range(start, stop, step): tương tự như trường hợp 2 nhưng bước nhảy được xác định bởi biến step. Ví dụ, range(1, 10, 2) sẽ trả lại dãy 1, 3, 5, 7, 9 (bước nhảy giữa các giá trị kế tiếp là 2).

    Trong hàm range, start, stop và step có thể nhận cả giá trị âm và dương:

    Với danh sách giá trị mà hàm range() tạo ra như trên, cấu trúc for sẽ lần lượt lấy từng giá trị gán cho biến chạy (biến n trong các ví dụ trên) và thực hiện khối lệnh. Như vậy, số lần lặp đã xác định sẵn từ lúc gọi hàm range().

    Sử dụng vòng lặp for với các kiểu danh sách khác

    Ở trên chúng ta sử dụng for với các giá trị lấy từ danh sách tạo ra bởi hàm range(). Trong Python, nhiều loại dữ liệu tập hợp có thể sử dụng cùng vòng for.

    Ví dụ:

    for c in 'Hello world': print(c, end = 't')

    Trong ví dụ trên danh sách giá trị lại là xâu ký tự ‘Hello world’. Biến chạy sẽ lần lượt nhận từng ký tự từ xâu, bắt đầu từ ký tự đầu tiên ‘H’ đến ký tự cuối cùng ‘d’. Trong ví dụ trên chúng ta chỉ đơn giản là in ký tự tương ứng ra console.

    Hãy xem một ví dụ khác:

    companies = : if item == 3: print(item, " ...break!") break print(item, " chúng tôi iteration")

    Ví dụ này cho ra kết quả như sau:

    1 chúng tôi iteration 2 chúng tôi iteration 3 ...break!

    # demonstrating a `continue` statement in a loop x = 1 while x < 4: if x == 2: print("x = ", x, " chúng tôi to the top of the loop!") x += 1 continue x += 1 print("--reached end of loop-body--")

    Ví dụ này cho ra kết quả như sau:

    Trong bài học này chúng ta đã xem xét cách sử dụng vòng lặp trong Python, bao gồm vòng lặp for và vòng lặp while. Chúng ta cũng học về cách điều khiển vòng lặp với break và continue.

    Có thể nhận xét rằng vòng lặp trong Python không có nhiều khác biệt với vòng lặp ở các ngôn ngữ khác. Đặc biệt, từ khóa break và continue cơ bản là giống hệt như trong C. Vòng lặp for của Python rất gần gũi với vòng lặp for của C và foreach của C#.

    * Bản quyền bài viết thuộc về Tự học ICT. Đề nghị tôn trọng bản quyền.

    --- Bài cũ hơn ---

  • Vòng Lặp While Trong Python
  • Cấu Trúc Lặp While, Do .. While
  • Hướng Dẫn Sử Dụng Cấu Trúc Lặp (Vòng Lặp While) Trong Lập Trình C++
  • He Thong Bai Trac Nghiem Chuong 3
  • Sự Khác Nhau Giữa While Và Meanwhile: Cách Dùng, Cấu Trúc
  • Vòng Lặp While Trong Python

    --- Bài mới hơn ---

  • Các Cấu Trúc Lặp Trong Python: For Và While
  • Bài 25: Vòng Lặp While Trong Python
  • Whereas Là Gì ? Giải Nghĩa Từ “whereas” Và Các Từ Gợi Ý Liên Quan
  • Whereas Là Gì? Các Từ Đồng Nghĩa Whereas
  • Cấu Trúc Dạng To V Hay Ving
  • Dẫn nhập

    Trong bài trước, Kteam đã giới thiệu đến bạn CÂU ĐIỀU KIỆN IF – một dạng cấu trúc rẽ nhánh rất quan trọng trong mọi ngôn ngữ lập trình không chỉ riêng Python

    Ở bài này Kteam sẽ giới thiệu với các bạn VÒNG LẶP WHILE TRONG PYTHON.

    Nội dung

    Để đọc hiểu bài này tốt nhất bạn cần:

    Bạn và Kteam sẽ cùng tìm hiểu những nội dung sau đây

    • Đặt vấn đề
    • Cấu trúc vòng lặp while và cách hoạt động
    • Sử dụng vòng lặp để xử lí chuỗi, list, tuple
    • Câu lệnh break và continue
    • Cấu trúc vòng lặp while-else và cách hoạt động

    Đặt vấn đề

    Lại là câu chuyện về Tèo – Kter “bờ rào” của Kteam. Sắp tới là sinh nhật Tèo, Tèo tham vọng mời tất cả thành viên trong group lập trình của Kteam. Thế nên, Tèo mua một xấp giấy về ghi thiệp mời các bạn tham dự buổi tiệc.

    Một bạn, hai bạn, rồi ba bạn và tới bạn thứ năm thì Tèo đã thấm mệt. Dòng chữ cũng không được nắn nót như ban đầu. Nhớ lại là còn hơn 9999 người cần phải mời nữa. Nên Tèo mệt quá, không muốn mời ai nữa và ăn sinh nhật một mình luôn.

    Nếu bạn là Tèo, bạn sẽ viết được bao nhiêu tấm thiệp với dòng chữ nắn nót và đẹp như tấm thiệp ban đầu? Liệu bạn có đủ kiên nhẫn viết hết 1000 tấm thiệp thậm chí là 100000?

    Hiển nhiên là “Không!”. Mà trường hợp của Tèo cũng chả phải hiếm. Vì vậy, con người đã tạo ra máy tính để giúp họ làm những việc tương tự. Máy tính có khả năng lặp đi lặp lại một tiến trình với số lần rất lớn. Hiệu suất của lần cuối cùng cũng như lần đầu tiên. Thêm một điều nữa là công việc đó được làm với một tốc độ chóng mặt

    Làm sao chúng làm được như vậy? Đó là nhờ tuyệt kĩ vòng lặp. Và chúng ta sẽ bắt đầu đi tìm hiểu chiêu thức vòng lặp đầu tiên trong Python chính là While.

    Cấu trúc vòng lặp while và cách hoạt động

    Nào! Cùng ngó sơ cấu trúc, sau đó Kteam sẽ giải thích cho bạn cách mà nó hoạt động

    Lưu ý: Việc chia block như thế này cũng giống như khi bạn sử dụng câu lệnh if và đã được Kteam giới thiệu ở bài trước CẤU TRÚC RẼ NHÁNH.

    Nó sẽ hoạt động ra sao?

    Rất đơn giản! Việc đầu tiên, Python sẽ kiểm tra giá trị boolean của expssion. Nếu là False, thì bỏ qua while-block và đến với câu lệnh tiếp theo. Ngược lại, sẽ thực hiện toàn bộ câu lệnh trong while-block. Sau khi thực hiện xong, quay ngược lại kiểm tra giá trị boolean của expssion một lần nữa. Nếu False thì bỏ qua while-block, còn True thì tiếp tục thực hiện while-block. Và sau khi thực hiện xong while-block lại quay về kiểm tra giá trị boolean expssion như những lần trước.

    Sử dụng vòng lặp để xử lí chuỗi, list, tuple

    Đây là những iterable cho phép ta truy xuất một giá trị bất kí trong nó bằng phương pháp indexing. Thế nên, ta có thể nhờ điều này kết hợp với vòng lặp để xử lí chúng.

    Đơn giản phải không nào. ListTuple hoàn toàn tương tự.

    Câu lệnh break và continue

    Lưu ý: Hai câu lệnh này chỉ có thể dùng trong các vòng lặp

    Câu lệnh break

    Câu lệnh break dùng để kết thúc vòng lặp. Cứ nó nằm trong block của vòng lặp nào thì vòng lặp đó sẽ kết thúc khi chạy câu lệnh này.

    Trong trường hợp vòng lặp a chứa vòng lặp b. Trong vòng lặp b chạy câu lệnh break thì chỉ vòng lặp b kết thúc, còn vòng lặp a thì không.

    Câu lệnh continue

    Câu lệnh này dùng để chạy tiếp vòng lặp. Giả sử một vòng lặp có cấu trúc như sau:

    Khi thực hiện xong while-block-1, câu lệnh continue sẽ tiếp tục vòng lặp, không quan tâm những câu lệnh ở dưới continue và như vậy nó đã bỏ qua while-block-2.

    Cấu trúc vòng lặp while-else và cách hoạt động

    Ta sẽ xem cấu trúc trước:

    Cấu trúc này gần tương tự như while bình thường. Thêm một điều, khi vòng vòng lặp while kết thúc thì khối lệnh else-block sẽ được thực hiện.

    Trong trường hợp trong while-block chạy câu lệnh break thì vòng lặp while sẽ kết thúc và phần else-block cũng sẽ không được thực hiện.

    Củng cố bài học

    Đáp án bài trước

    Bạn có thể tìm thấy câu hỏi của phần này tại CÂU HỎI CỦNG CỐ trong bài CẤU TRÚC RẼ NHÁNH TRONG PYTHON

    Câu hỏi củng cố

    1. Viết lại một vòng lặp có chức năng tương tự ví dụ * nhưng không dùng câu lệnh break
    2. Cho một file text tên chúng tôi như sau:

    an so dfn Kteam odsa in fasfna Kteam mlfjier as dfasod nf ofn asdfer fsan dfoans ldnfad Kteam asdfna asdofn sdf pzcvqp Kteam dfaojf kteam dfna Kteam dfaodf afdna Kteam adfoasdf ncxvo aern Kteam dfad

    Trong file này có một số chữ Kteam ( Kteam sẽ không xuất hiện ở đầu dòng), và trước nó là một chữ ngẫu nhiên nào đó và nhiệm vụ của bạn là đổi chữ đó thành How. Nhớ là sử dụng vòng lặp.

    Sau khi đổi thành công, bạn lưu nội dung đó vào file tên kteam.txt.

    Đây là mẫu của chúng tôi

    an so How Kteam odsa in How Kteam mlfjier as dfasod nf ofn asdfer fsan dfoans How Kteam asdfna asdofn sdf How Kteam dfaojf kteam How Kteam dfaodf How Kteam adfoasdf ncxvo How Kteam dfad

      Sắp xếp một mảng số nguyên có dạng như sau:

    Đáp án của phần này sẽ được trình bày ở bài tiếp theo. Tuy nhiên, Kteam khuyến khích bạn tự trả lời các câu hỏi để củng cố kiến thức cũng như thực hành một cách tốt nhất!

    Kết luận

    Qua bài viết này, Bạn đã biết về VÒNG LẶP WHILE TRONG PYTHON.

    Ở bài viết sau, Kteam sẽ nói đến một vòng lặp nữa đó là VÒNG LẶP FOR TRONG PYTHON.

    Tải xuống

    Tài liệu

    Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Vòng lặp While trong Python dưới dạng file PDF trong link bên dưới.

    Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com

    Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần BÌNH LUẬN bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện chúng tôi để nhận được sự hỗ trợ từ cộng đồng.

    --- Bài cũ hơn ---

  • Cấu Trúc Lặp While, Do .. While
  • Hướng Dẫn Sử Dụng Cấu Trúc Lặp (Vòng Lặp While) Trong Lập Trình C++
  • He Thong Bai Trac Nghiem Chuong 3
  • Sự Khác Nhau Giữa While Và Meanwhile: Cách Dùng, Cấu Trúc
  • Vòng Lặp While Trong C++
  • Bài 25: Vòng Lặp While Trong Python

    --- Bài mới hơn ---

  • Whereas Là Gì ? Giải Nghĩa Từ “whereas” Và Các Từ Gợi Ý Liên Quan
  • Whereas Là Gì? Các Từ Đồng Nghĩa Whereas
  • Cấu Trúc Dạng To V Hay Ving
  • Sự Cho Phép: Can, Could, May, Might Và Be Allowed To (Permission: Can, Could, May, Might And Be Allowed To)
  • Cách Nói Về Nghĩa Vụ Và Sự Cho Phép Trong Tiếng Anh (Phần 2)
  • TÀI LIỆU ÔN THPT QG, MÔN TIẾNG ANH

    TÓM LƯỢC NHỮNG ĐIỂM NGỮ PHÁP CẦN LƯU Ý (CHẮC CHẮN CÓ TRONG CÁC

    BÀI THI TIẾNG ANH THPT – CHI TIẾT HƠN CÁC EM THAM GIA KHÓA HỌC CÙNG

    CÔ MAI PHƯƠNG TẠI chúng tôi NGOAINGU24H.VN)

    1/ ĐẠI TỪ

    * Đại từ nghi vấn: who, whose, whom, …

    – What + be …like? Dùng hỏi tính cách, tính chất

    Ex: What was the exam like? – It was very difficult.

    What is David like? – He is very sociable.

    – What does he / she / it chúng tôi like? Dùng hỏi về vẻ bên ngoài

    Ex: What does she look like? – She is tall.

    – What about + V-ing = How about + V-ing …?

    Đưa ra gợi ý hoặc đề nghị

    – Which (nào, cái nào, người nào)

    Ex: Which is your favourite subject?

    Ex: Which of these photos would you like?

    – Which of + determiner +

    N

    (plural)

    W

    Which of us is going to do the washing- Which of + pronoun

    up?

    Note: + Which chỉ sự lựa chọn trong một số lượng có giới hạn

    There’s fruit juice, coffee and tea. Which will you have?

    + What dùng khi có sự lựa chọn rộng rãi

    What would you like to drink?

    * Đại từ phân bổ:

    – All (tất cả): có thể là chủ ngữ, tân ngữ hoặc bổ ngữ

    All were eager to leave.

    I’ll do all I can.

    Wallet, ticket and a bunch of keys, that’s all in

    his pocket.

    – All of + determiner + N (plural/uncountable) + V(plural/singular)

    – All of us / you / them + V (plural)

    All (of) my friends like reading.

    All of the money has been spent.

    I’m going to invite all of you.

    – All of + N (singular) = the whole

    I’ve eaten all of the cake = I’ve eaten the whole cake.

    – Most (phần lớn, hầu hết)

    Most of the people here know each other.

    – Most + determiner + N + V(plural/singular)

    He spends most of his free time in the library.

    – Most of us / you / them + V (plural)

    Most of us enjoy shopping.

    – Each (mỗi)

    – Each of + determiner + N (plural) + V(singular)

    – Each of us / you / them + V (singular)

    * Đại từ hỗ tương: là đại từ chỉ mối quan hệ qua lại giữa hai hoặc nhiều người hoặc vật với nhau,

    gồm each other và one another (nhau, lẫn nhau)

    Sue and Ann don’t like each other / one another.

    They sat for two hours without talking to each other / one another.

    Không dùng each other sau các từ meet, marry và similar

    They married in 1990. (not: They married each other.)

    2/ DANH TỪ

    2.1. Danh từ ghép:

    – là danh từ gồm hai hoặc nhiều từ kết hợp với nhau. Danh từ ghép có thể được viết thành hai từ

    riêng biệt, có gạch ngang giữa hai từ hoặc kết hợp thành một từ.

    Ex: world peace, non-stop train, writing-table

    1

    – cách thành lập danh từ ghép:

    a. Danh từ + danh từ (Noun + noun)

    toothpick (tăm)

    schoolboy

    tennis ball

    b. Tính từ + danh từ (Adjective + Noun)

    quicksilver (thủy ngân)

    greenhouse (nhà kính)

    bus driver

    river bank

    blackbird (chim két)

    c. Danh từ + danh động từ (Noun + gerund): chỉ một loại công việc

    weigh-lifting (cử tạ)

    fruit-picking (việc hái quả)

    coal-mining (việc khai thác than)

    d. Danh động từ + danh từ (Gerund + noun)

    waiting-room (phòng chờ)

    swimming pool (hồ bơi)

    driving licence (bằng lái xe)

    washing-machine (máy giặt)

    e. Các trường hợp khác:

    – Tính từ + động từ: whitewash (nước vôi)

    – Động từ + danh từ: pickpocket (tên móc túi)

    – Trạng từ + động từ: outbreak (sự bùng nổ)

    – Động từ + trạng từ: breakdown (sự suy sụp)

    – Danh từ + giới từ: passer-by (khách qua đường), looker-on (người xem)

    – Danh từ + tính từ: secretary-general (tổng thư ký, tổng bí thư)

    2.2 Danh từ số nhiều của những từ có nguồn gốc từ tiếng Hy Lạp hoặc Latin:

    Số ít

    bacterium

    curriculum

    datum

    criterion

    phenomenon

    basis

    crisis

    analysis

    hypothesis

    Nghĩa

    vi khuẩn

    chương trình giảng dạy

    dữ kiện

    tiêu chuẩn

    hiện tượng

    nền tảng

    cuộc khủng hoảng

    sự phân tích

    giả thuyết

    2.3 Danh từ đếm được và danh từ không đếm được

    * Cách thành lập danh từ số nhiều:

    – Thêm -s vào danh từ số ít

    – Thêm -es sau danh từ số ít tận cùng bằng s, ss, sh, ch, x, z, zz

    – Thêm -s nếu trước o là một nguyên âm: radios, micros

    – Thêm -es nếu trước o là một phụ âm: potatoes, tomatoes, heroes

    – Thêm – s nếu trước y là nguyên âm: plays, boys

    – Thêm – es nếu trước y là phụ âm: lorries

    – Danh từ tận cùng bằng f /fe đổi thành -ves: leaf à leaves

    thief à thieves

    – Thêm -s vào sau các danh từ tận cùng bằng f / fe khác: beliefs,cafes

    – Một số từ có số nhiều bất qui tắc:

    child – children

    foot – feet

    goose – geese

    ox – oxen

    man – men

    mouse – mice

    fish – fish

    tooth – teeth

    woman – women

    sheep – sheep

    deer – deer

    3/ TỪ CHỈ SỐ LƯỢNG

    Với danh từ đếm được

    Với danh từ không đếm dược

    – some / any (một vài)

    – some / any (một ít)

    – many

    – much

    – a large number of

    – a large amount of

    – a great number of

    – a great deal of

    – plenty of

    – plenty of

    – a lot of / lots of

    – lot of / lots of

    – few / a few

    – little / a little

    – every / each

    2

    – several (nhiều)

    – some: dùng trong câu khẳng định, câu yêu cầu, lời mời, lời đề nghỉ.

    – any: dùng trong câu phủ định, nghi vấn

    – many, much dùng trong câu phủ định, nghi vấn

    – a lot of, plenty of, a great number of … dùng trong câu khẳng định

    – many, much luôn dùng trong câu khẳng định có các từ very, too, so, as

    – few, little (ít, không nhiều): thường có nghĩa phủ định, ít không đủ để dùng

    – a few / a little (một vài, một ít): thường có nghĩa khẳng định, ít đủ để dùng

    He drank so much wine that he felt sick.

    Would you like some more coffee?

    We haven’t got any butter.

    There aren’t any chairs in the room.

    Hurry up! There is little time.

    Let’s go and have a drink. We have got a little time before the train leaves.

    4/ SỐ CỦA ĐỘNG TỪ:

    – Số thập phân, phân số, sự đo lường + động từ số ít

    Three quarters of a ton is too much.

    – All, some, plenty + of + danh từ số ít à động từ số ít

    – Half, part, a lot, .. + of + danh từ số nhiều à động từ số nhiều

    Some of the milk was sour.

    A lot of my friends want to emigrate.

    – No + danh từ số ít à động từ số ít

    – No + danh từ số nhiều à động từ số nhiều

    No people think alike.

    No student has finished their assigmnet.

    5/ LIÊN TỪ (Conjunctions)

    a. Liên từ kết hợp: dùng để nối từ, cụm từ hoặc mệnh đề độc lập có cùng chức năng ngữ pháp: and,

    but, or, nor, so, yet (tuy nhiên, nhưng), for (vì)

    The new method is simple, yet effective.

    I told her to leave, for I was very tired.

    – Liên từ tương quan: not only … but also, both … and, either … or, neither …. nor, whether …or

    (có … hay),

    Peter neither spoke nor did anything.

    I have not decided whether to travel abroad or buy a new car.

    – Một số trạng từ dùng như từ nối để nối hai mệnh đề hoặc câu độc lập: hence (do đó), however (tuy

    nhiên), furthermore (hơn nữa), moreover (hơn nữa), therefore (vì vậy), nevertheless (tuy nhiên),

    meanwhile (trong khi đó), otherwise (nếu không thì, kẻo), consequently (vì vậy, cho nên)

    I had better write it down, otherwise I will forget it.

    We must be early; otherwise we won’t get a seat.

    b. Liên từ phụ thuộc: nối mệnh đề phụ với mệnh đề chính: after, before, since, when, whenever,

    while, until, till, as, where, wherever, because, so that, in order that, although, though, even though,

    even if, unless, in case, provided / providing that, supposed / supposing that, as if, as though, as long

    as (miễn là,với điều kiện là)…

    – besides (giới từ): bên cạnh. Besides + Nound / pronoun / V-ing

    Besides doing the cooking, I look after the garden.

    – besides (trạng từ): ngoài ra, đứng trước mệnh đề

    I can’t go now. I am too busy. Besides my passport is out of date.

    – in spite of the fact that / despite the fact that + S + V

    – reason why + S + V: lý do tại sao

    The reason why grass is green was a mystery to the little boy.

    – reason for + Noun: lý do của

    The reason for the disaster was engine failure, not human error.

    6. WISH / IF ONLY

    Hiện tại: S + wish + S + QKĐ

    If only + S + QKĐ

    3

    EXAMPLE

    – a, an, the, this, these, those, some, several

    – one, ten, nine …

    – wonderful, lovely, beautiful …

    – big, small, long, fat,

    – important, famous, warm, modern …

    – old, young, new

    – round, oval …

    – red, white, blue

    – Chinese, Japanese

    – stone, plastic, paper, leather

    – an electric kettle, political matters

    – walking sticks, writing boots

    24. MỆNH ĐỀ DANH TỪ

    – Mệnh đề danh từ có chức năng như một danh từ và thường bắt đầu bằng các từ nghi vấn: that,

    what, who, whose, which, where, when, why, how, whether, if

    – Mệnh đề danh từ có thể làm:

    a. Chủ ngữ trong câu:

    That he can’t come is disappointing.

    What he is talking about is interesting.

    How the prisoner escaped is a complete mystery.

    Whether she comes or not is unimportant to me.

    b. Tân ngữ (túc từ) của động từ:

    Please tell me where you live.

    I wonder if he needs help.

    I know that you must be tired after a long journey.

    c. Tân ngữ cho giới từ:

    We argued for hours about when we should start.

    Pay attention to what I am saying.

    d. Bổ ngữ cho câu: (thường đứng sau động từ to be)

    That is not what I want.

    What surprised me was that he spoke English very well.

    e. Mệnh đề đồng cách cho danh từ (mệnh đề quan hệ)

    The news that we are having a holiday tomorrow is not true.

    Note: Trong mệnh đề danh từ, chủ ngữ đứng trước động từ. Không đảo ngữ như trong câu nghi vấn.

    6

    2

    3

    MODAL VERBS

    Modal + V0

    MEANINGS

    EXAMPLES

    Can = be able to

    có thể (diễn tả 1 khả năng)

    – He can speak English fluently.

    Must = have to

    phải (có nghĩa bắt buộc)

    – Young people must obey their parents.

    Must

    ắt hẳn (tiên đoán 1 sự việc xảy ra – He has been working very hard.

    ở hiện tại, có sơ sở)

    He must be tired.

    Mustn’t

    Không được (cấm)

    May / might:

    có lẽ, có thể (suy đoán gần đúng – He may be in his office.

    hoặc hành động có thể xảy ra – The weather forecast is not very good.

    trong tương lai.)

    It might rain this afternoon.

    – You mustn’t go out in the evening.

    suy đoán sự việc xảy ra ở hiện tại, – He may go out. I am not sure.

    không có cơ sở.

    4

    diễn tả 1 sự xin phép

    cần

    Không cần

    II. Modal Continuous:

    – May I go out?

    – I need go now.

    – You needn’t do that work.

    Modal + be + V-ing

    Ex: Jane isn’t here. She might be cooking in the kitchen, I suppose.

    III. Modal Perfect: (Nguyên mẫu hoàn thành )

    MODALS

    Modal + have V3 /ed

    MEANINGS

    EXAMPLES

    7

    1

    Could have V3 / ed

    rất có thể đã (diễn tả 1 khả

    năng trong quá khứ, nhưng

    chưa được dùng tới)

    – He couldn’t have committed the crime

    because he was with me that day.

    2

    Can’t have V3 / ed

    có lẽ đã không (diễn tả 1 sự

    suy đoán không chắc chắn về

    1 sự kiện ở QK)

    – Theresa walked past me without saying a

    word. She can’t have seen me.

    3

    Should have V3 / ed

    lẽ ra nên (diễn tả 1 lời khiển

    trách đối với 1 hành động QK

    lẽ ra nên làm mà đã không

    làm)

    – Once Helen failed in her exam. She played

    too much. She shouldn’t have played too

    much.

    4

    Must have V3 / ed

    ắt hẳn đã (diễn tả 1 sự suy

    đoán gần đúng về 1 sự kiện ở

    quá khứ)

    – The yard is wet. It must have rained last

    night.

    5

    May / might have V3 / ed

    có thể, có lẽ (diễn tả những gì

    có thể xảy ra ở quá khứ)

    – Micheal didn’t come to class yesterday.

    He may have had an accident.

    26. PHRASAL VERBS

    – account for

    – blow out

    – break into

    – bring in = introduce

    – burn down

    – call in

    – call on = visit

    – carry on = continue

    – catch up with

    – close down

    – come across

    – come along / on

    – come up

    – cut down = reduce

    – die out

    – be fed up with

    – fix up = arrange

    – get down

    – get on

    – go over = examine

    – hold on = wait

    – leave out = omit

    – look down on

    – make up

    – pick out

    – put forward = suggest

    – put out = extinguish

    – run across

    – run out of

    – send for

    – show around

    – show up = arrive

    – stand out

    – take over

    – talk over = discuss

    – throw away / out

    – turn down = refuse

    – wear out

    – bear out = confirm

    xác nhận

    – break down

    hư hỏng, phá vỡ

    – break out

    bùng nổ, bùng phát

    – bring up = raise

    nuôi nấng

    – call for

    ghé qua

    – call of = cancel

    hủy bỏ

    – call up = telephone

    gọi điện

    – carry out = execute

    tiến hành

    – clear up = tidy dọn dẹp

    – come about = happen xảy ra

    – come off = succeed thành công

    – come over

    ghé nhà

    – count on / upon

    tin vào, dựa vào

    – cut off

    ngừng cung cấp

    – drop in

    ghé qua

    – fill in

    điền thông tin

    – get by = manage

    xoay xở

    – get off

    xuống xe

    – give out = distribute phân phát

    – hand in

    nộp

    – hold up = stop, delay hoãn, ngừng

    – look back on = remember

    nhớ lại

    – make out

    hiểu được

    – make up for

    bù, đền bù

    – pull down

    phá hủy, phá sập

    – put in for

    đòi hỏi, xin

    – put up with

    chịu đựng

    – see off

    tiễn ai

    – sell off

    bán giảm giá

    – set off / out

    khởi hành

    – show off

    phô trương, khoe khoang

    – shut up

    ngừng nói

    – take on

    đảm nhận công việc

    – take up

    chiếm (thời gian, sức lực)

    – think over = consider cân nhắc, nghĩ kỹ

    – try on

    thử quần áo

    – turn into

    trở thành, biến thành

    – work out = calculate tính toán

    8

    --- Bài cũ hơn ---

  • Các Cấu Trúc Lặp Trong Python: For Và While
  • Vòng Lặp While Trong Python
  • Cấu Trúc Lặp While, Do .. While
  • Hướng Dẫn Sử Dụng Cấu Trúc Lặp (Vòng Lặp While) Trong Lập Trình C++
  • He Thong Bai Trac Nghiem Chuong 3
  • Cấu Trúc Rẽ Nhánh Trong Python

    --- Bài mới hơn ---

  • Should Và Một Số Cấu Trúc Chứa Should Hay Gặp
  • Cấu Trúc Và Cách Dùng Should Trong Tiếng Anh
  • Toàn Tập Cấu Trúc Mệnh Đề Sau As If, As Though, It’s High Time, It’s Time, Woul Rather Trong Tiếng Anh
  • As If Là Gì? Cách Dùng Cấu Trúc As If / As Though Và Bài Tập Có Đáp Án
  • Cách Sử Dụng Cấu Trúc Asked Trong Tiếng Anh Đơn Giản Nhất
  • If là gì? Có ăn được không?

    If là một từ tiếng Anh thường gặp, khi dịch nó ra tiếng Việt ta sẽ được nghĩa là “Nếu” hoặc là “Giá mà”, “Miễn là”,… Dĩ nhiên là “Nếu” là một từ chẳng mấy xa lạ với các bạn. Chúng ta sử dụng nó cả trăm, ngàn lần một ngày.

    • Nếu hôm nay chủ nhật, Tèo sẽ đi chơi.
    • Nếu được vote up câu hỏi thì bạn được cộng điểm, còn nếu bị vote down bạn sẽ bị trừ điểm, không có vote thì số điểm không thay đổi.

    If

    Đây là ví dụ về câu lệnh if cơ bản nhất. Nếu … thì …

    Từ đó, Python đã xây dựng một cấu trúc nếu tương tự như trên:

    if expssion:

    # If-block

    Lưu ý: Tất cả các câu lệnh nằm trong if-block là các câu lệnh có lề thụt vào trong so với câu lệnh if. Chi tiết Kteam sẽ trình bày ở phần tiếp theo

    Ở đây, nếu expssion là một giá trị khi đưa về kiểu dữ liệu Boolean là True thì Python sẽ nhảy vào thực hiện các câu lệnh trong if-block. Còn nếu không thì không thì sẽ bỏ qua if-block đó.

    If – else if

    Đây là bản nâng cấp của cấu trúc if vừa rồi chúng ta tìm hiểu. Nó có cấu trúc như sau:

    if expssion:

    # If-block

    elif 2-expssion:

    # 2-if-block

    elif 3-expssion:

    # 3-if-block

    elif n-expssion:

    # n-if-block

    Ở đây, bạn có thể đặt bao nhiêu lần nếu cũng được. Và từ câu lệnh if đến lần elif lần thứ n – 1 (câu lệnh với n-expssion) là một khối, ta sẽ đặt cho nó một cái tên là khối BIG để dễ hiểu. Nó sẽ hoạt động như sau:

    Bước 1: Kiểm tra xem expssion có phải là một giá trị Boolean True hay không?

    Bước 2: Nếu có, thực hiện if-block sau đó kết thúc khối BIG. Không thì chuyển sang Bước 3.

    Bước 3: Kiểu tra xem 2-expssion có phải là một giá trị Boolean True hay không?

    Bước 4: Nếu có, thực hiện 2-if-block sau đó kết thúc khối BIG. Không thì chuyển sang Bước 5.

    Bước 5: Kiểm tra xem 3-expssion có phải là một giá trị Boolean True hay không?

    Bước 6: Nếu có, thực hiện 3-if-block sau đó kết thúc khối BIG. Không thì chuyển sang Bước 7

    Bước (n – 1) x 2: Kiểm tra xem n-expssion có phải là một giá trị Boolean True hay không?

    Bước (n – 1) x 2 + 1: Nếu có, thực hiện n-if-block.

    Bước (n – 1) x 2 + 2: Kết thúc khối BIG.

    Ví dụ để các bạn dễ hiểu hơn

    If – else

    Cấu trúc vừa rồi không biết có làm bạn đau đầu hay không. Nếu có, hãy thư giãn vì cấu trúc sau đây đơn giản hơn nhiều.

    if expssion:

    # If-block

    else:

    # else-block

    Nếu expssion là một giá trị Boolean True, thực hiện if-block và kết thúc. Không quan tâm đến else-block. Còn nếu không sẽ thực hiện else-block và kết thúc.

    Ví dụ:

    If – else if – else

    if expssion:

    # If-block

    elif 2-expssion:

    # 2-if-block

    elif n-expssion:

    # n-if-block

    else:

    # else-block

    Bạn có thể đặt bao nhiêu lần elif cũng được nhưng else thì chỉ một. Và từ câu lệnh if đến câu lệnh else là một khối, ta cũng sẽ đặt cho nó một cái tên là khối BIG để dễ hiểu. Nó sẽ hoạt động như sau:

    Bước 1: Kiểm tra xem expssion có phải là một giá trị Boolean True hay không?

    Bước 2: Nếu có, thực hiện if-block sau đó kết thúc khối BIG. Không thì chuyển sang Bước 3.

    Bước 3: Kiểu tra xem 2-expssion có phải là một giá trị Boolean True hay không?

    Bước 4: Nếu có, thực hiện 2-if-block sau đó kết thúc khối BIG. Không thì chuyển sang Bước 5

    Bước (n – 1) x 2: Kiểm tra xem n-expssion có phải là một giá trị Boolean True hay không?

    Bước (n – 1) x 2 + 1: Nếu có, thực hiện n-if-block sau đó kết thúc khối BIG.

    Bước (n – 1) x 2 + 2: Nếu không thì thực hiện else-block và kết thúc khối BIG.

    Ví dụ:

    Block trong Python

    Với đa số ngôn ngữ lập trình hiện nay, thường dùng cặp dấu ngoặc { } để phân chia các block.

    Riêng đối với Python lại sử dụng việc định dạng code để suy ra các block. Đây là điều giúp code Python luôn luôn phải đẹp mắt.

    Một số điều lưu ý về việc định dạng code block trong Python:

    • Câu lệnh mở block kết thúc bằng dấu hai chấm (:), sau khi sử dụng câu lệnh có dấu hai chấm (:) buộc phải xuống dòng và lùi lề vào trong và có tối thiểu một câu lệnh để không bỏ trống block.
    • Những dòng code cùng lề thì là cùng một block.
    • Một block có thể có nhiều block khác.
    • Khi căn lề block không sử dụng cả tab lẫn space.
    • Nên sử dụng 4 space để căn lề một block

    Các câu lệnh nằm trong một khung màu là một block, và block đó được mở bởi câu lệnh nằm ngay bên trên khung màu.

    Lưu ý: Kteam có đề cập đến việc sau khi sử dụng câu lệnh có dấu hai chấm (:) buộc phải xuống dòng và lùi lề vào trong. Tuy nhiên, Bạn vẫn có thể đi ngược lại điều này trong một vài trường hợp

    Tuy nhiên, việc sử dụng như vậy không được khuyến khích vì chỉ tiết kiếm được một vài dòng code mà lại gây khó đọc thì không đáng để tiết kiệm.

    Và bạn cũng đã biết thêm một điều Python không hề cấm dấu chấm phẩy (;). Nó vẫn là một cú pháp hợp lệ. Nếu bạn quen tay có thể dùng dấu chấm phẩy (;) thoải mái.

    --- Bài cũ hơn ---

  • 24 Cấu Trúc Ngữ Pháp Cho Ielts Writing
  • Even If: Cấu Trúc Even If Tiếng Anh
  • Đề Thi Thử Tiếng Anh Theo Cấu Trúc Mới Năm 2022
  • Cấu Trúc Whether Và Whether Or Trong Tiếng Anh
  • Phân Biệt Cấu Trúc Whether, Cấu Trúc Whether Or Và Whether Or Not
  • Bài 6: Cấu Trúc Điều Khiển Của Python 3(Lệnh If, While, For)

    --- Bài mới hơn ---

  • Reference Là Gì? Ý Nghĩa Và Cấu Trúc Thông Dụng Nhất
  • Câu Ví Dụ,định Nghĩa Và Cách Sử Dụng Của”plan”
  • Cambridge Action Plan For Ielts Pdf
  • Cambridge Action Plan For Ielts
  • Tải Trọn Bộ Ebook Get Ready For Ielts Pdf Miễn Phí
  • Python luôn chạy một loạt các câu lệnh theo thứ tự từ trên xuống một cách chính xác. Bây giờ bạn muốn thay đổi cấu trúc điều khiển của Python thì phải làm thế nào?

    Ví dụ: bạn muốn chương trình đưa ra một số quyết định và thực hiện những việc khác nhau tùy thuộc vào các tình huống khác nhau, chẳng hạn như in ‘Chào buổi sáng’ hoặc ‘Chào buổi tối’ tùy thuộc vào thời gian trong ngày?

    Điều này đạt được bằng cách sử dụng các câu lệnh điều khiển. Có 3 lệnh kiếm soát cấu trúc điều khiển của Python là: if, for và while.

    1. Lệnh if trong Python 3

    Câu lệnh if được sử dụng để kiểm tra một điều kiện: nếu điều kiện là đúng sẽ chạy một khối các câu lệnh (được gọi là if-block), nếu sai chương trình sẽ xử lý một khối các câu lệnh khác (được gọi là else-block ).

    Ví dụ (tạo file if.py):

    number = 22 guess = int(input('Nhap vao mot so nguyen: ')) if guess == number: # Bat dau Block moi o day print('Chinh xac!') print('Ban dang hoc Python tren dnmtechs.com') # Ket thuc Block elif guess < number: # Bat dau Block khac print('Khong, So da nhap be hon!') # Ban co the them vao bat cu gi vao day... else: print('Khong, So da nhap l hon') print('Ket thuc!')

    Kết quả:

    Nhap vao mot so nguyen: 22 Chinh xac! Ban dang hoc Python tren dnmtechs.com Ket thuc!

    Lưu ý: Không có lệnh switch trong Python. Bạn có thể sử dụng một câu lệnh if..elif..else để làm điều tương tự (và trong một số trường hợp, hãy sử dụng kiểu từ điển để thực hiện nhanh chóng công việc trên)

    2. Lệnh For trong Python 3

    Câu lệnh for..in là một câu lệnh lặp khác, nó lặp đi qua một chuỗi (sequences) các đối tượng tức là đi qua từng mục trong một chuỗi. Chúng ta sẽ tìm hiểu nhiều hơn về sequences trong bài về cấu trúc dữ liệu trong Python 3 sau. Những gì bạn cần biết ngay bây giờ là một chuỗi trình từ chỉ là một tập hợp các items .

    for i in range (1,20): print(i) else: print('Ket thuc in gia tri!')

    Kết quả:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Ket thuc in gia tri!

    Vòng lặp for trong Python 3 hoàn toàn khác với vòng lặp trong C / C ++. Các lập trình viên C# sẽ lưu ý rằng vòng lặp for trong Python tương tự như vòng lặp foreach trong C#.

    Trong C / C ++, nếu bạn muốn viết for(int i = 0; i <5; i ++), thì trong Python bạn chỉ cần viết for i in range(0,5). Như bạn có thể thấy, vòng lặp for đơn giản hơn, biểu cảm hơn và ít bị lỗi hơn trong Python 3.

    3. Lệnh While trong Python 3

    Câu lệnh while cho phép bạn liên tục thực thi một khối các câu lệnh miễn là điều kiện là đúng. Một câu lệnh while là một ví dụ về cái được gọi là câu lệnh lặp. Một câu lệnh while có thể có một mệnh đề khác tùy chọn.

    Ví dụ (tạo file mới while.py):

    number = 23 running = True while running: guess = int(input('Nhap vao mot so nguyen: ')) if guess == number: print('Chinh xac') running = False elif guess < number: print('Khong, So da nhap nho hon so da chon.') else: print('Khong, so da nhap lon hon so da chon') print('Hoan thanh')

    Kết quả:

    Nhap vao mot so nguyen: 10 Khong, So da nhap nho hon so da chon. Nhap vao mot so nguyen: 30 Khong, so da nhap lon hon so da chon Nhap vao mot so nguyen: 25 Khong, so da nhap lon hon so da chon Nhap vao mot so nguyen: 20 Khong, So da nhap nho hon so da chon. Nhap vao mot so nguyen: 23 Chinh xac Hoan thanh

    Hãy nhớ rằng bạn có thể có một mệnh đề else cho vòng lặp while.

    --- Bài cũ hơn ---

  • Vòng Lặp For Trong Python
  • Những Điều Cần Biết Về Động Từ “need”
  • Cách Sử Dụng Cấu Trúc “need” Trong Tiếng Anh
  • Tổng Hợp Cấu Trúc Make Trong Tiếng Anh Thông Dụng
  • Những Cấu Trúc Ngữ Pháp Tương Đương Nghĩa Trong Tiếng Anh (Phần 1)
  • Cấu Trúc Điều Kiện If Trong Python

    --- Bài mới hơn ---

  • Một Số Kiến Thức Nâng Cao Về Câu Điều Kiện Trong Tiếng Anh
  • Cách Dùng Câu Điều Kiện Loại 1, 2, 3 Và Câu Điều Kiện Hỗn Hợp Trong Tiếng Anh
  • Câu Điều Kiện Hỗn Hợp Trong Ngữ Pháp Tiếng Anh
  • Cách Đặt Câu Hỏi Trong Tiếng Anh
  • Những Điều Cần Lưu Ý Với Câu Điều Kiện
  • Trong một chương trình, bình thường các lệnh sẽ lần lượt được thực hiện theo thứ tự xuất hiện của nó trong file code. Nếu chỉ thực thi lệnh như vậy các chương trình sẽ rất hạn chế. Vì vậy người ta đưa vào các cấu trúc điều khiển có tác dụng làm tham đổi trật tự thực thi lệnh trong chương trình.

    Ví dụ, bạn chỉ thực thi lệnh khi đáp ứng một điều kiện nào đó. Bạn cũng có thể muốn lặp đi lặp lại việc thực hiện một nhóm lệnh. Trường hợp thứ nhất người ta gọi là rẽ nhánh, trường hợp thứ hai gọi là vòng lặp.

    Python có các cấu trúc điều khiển rẽ nhánh và các cấu trúc lặptương tự như các ngôn ngữ khác. Trong bài học này chúng ta sẽ xem xét cách sử dụng cấu trúc lặp if-elif-else.

    Tạo file chúng tôi và viết code như sau:

    from math import sqrt # sử dụng hàm tính căn sqrt trong module math a = float(input('a = ')) b = float(input('b = ')) c = float(input('c = ')) d = b*b - 4*a*c print('THERE ARE REAL SOLUTIONS:') x1 = (-b + sqrt(d))/(2*a) x2 = (-b - sqrt(d))/(2*a) print(f'x1 = {x1}') print(f'x2 = {x2}') else: print('THERE ARE COMPLEX SOLUTIONS BUT I CANNOT SHOW YOU.') input('nThank you! Press enter to quit ...')

    print(‘THERE ARE REAL SOLUTIONS:’)

    # code khác

    else:

    print(‘THERE ARE COMPLEX SOLUTIONS BUT I CANNOT SHOW YOU.’)

    Cấu trúc rẽ nhánh if

    Cấu trúc rẽ nhánh quyết định xem những lệnh nào sẽ được thực hiện căn cứ vào giá trị (kiểu bool) của một biểu thức điều kiện.

    Cấu trúc này làm thay đổi luồng thực thi (trật tự thực hiện lệnh) của chương trình. Trật tự thực hiện lệnh phụ thuộc vào giá trị của biểu thức điều kiện. Có những lệnh sẽ không được thực hiện.

    Cú pháp cơ bản của cấu trúc này như sau:

    # khối code

    một số ví dụ:

    age = int(input('Your age: ')) print('Welcome!') print(f'Your birth year is {2020-age}') name = input('Your name: ') if(name.lower() == 'donald'): print('Mr. President!') print('Welcome to heaven!')

    Nếu vô tình làm thay đối thụt đầu dòng bạn sẽ gặp lỗi cú pháp:

    Trong cấu trúc rẽ nhánh đơn giản nhất bạn chỉ cần một mệnh đề if là đủ.

    Dĩ nhiên bạn có thể viết 5 lệnh if:

    age = int(input('Your age: ')) if(0 < age < 6): print('Mầm non') if(6 <= age < 12): print('Tiểu học') if(12 <= age < 15): print('Trung học cơ sở') if(15 <= age < 18): print('Trung học phổ thông') if(18 <= age): print('Đại học / đi làm')

    Cách sử dụng này không sai nhưng có vấn đề. Ví dụ, nếu bạn nhập giá trị 14, Python sẽ kiểm tra tất cả các cấu trúc if. Mặc dù lệnh ở cấu trúc if(12 <= age < 15) được thực thi, Python tiếp tục kiểm tra cả 2 cấu trúc if còn lại. Điều này dẫn đến làm thừa việc.

    Giờ hãy điều chỉnh lại như sau:

    age = int(input('Your age: ')) if(0 < age < 6): print('Mầm non') elif(6 <= age < 12): print('Tiểu học') elif(12 <= age < 15): print('Trung học cơ sở') elif(15 <= age < 18): print('Trung học phổ thông') elif(18 <= age <= 100): print('Đại học / đi làm') else: print('Bạn còn sống không đấy?')

    Trong đoạn script này chúng ta vận dụng hai mệnh đề khác của cấu trúc if: mệnh đề elifelse.

    Giả sử bạn nhập giá trị 14. Python sẽ làm như sau:

    1. Bỏ qua hết các mệnh còn lại.

    Đây là lợi thế của các mệnh đề elif: nếu một mệnh đề phù hợp và được thực hiện, các mệnh đề còn lại bị bỏ qua.

    Giả sử bạn nhập giá trị 101 hoặc -1. Theo logic trên, Python sẽ kiểm tra mệnh đề if và tất cả các mệnh đề elif. Tuy nhiên nó không tìm được mệnh đề phù hợp. Khi này Python sẽ thực hiện mệnh đề else.

    Mệnh đề else cần viết cuối cùng trong danh sách. Nó là mệnh đề sẽ thực hiện nếu tất cả các mệnh đề khác không phù hợp. Trong ví dụ của chúng ta, trường hợp giá trị tuổi nhỏ hơn 0 hoặc lớn hơn 100 là sẽ được thực hiện trong mệnh đề else.

    Các cấu trúc if-elif-else lồng nhau

    Hãy xem một ví dụ:

    age = int(input("Your age: ")) gender = input("Gender (male/female): ") name = input("Your name: ") print('Your age a legal.') if(name.isalpha()): if(gender.lower() == "male"): print(f'Welcome, Mr. {name}!') elif(gender.lower() == "female"): print(f'Welcome, lady {name}!') else: print(f'Welcome, {name}') else: print('Sorry, who are you?') else: print('You are too young to come here!')

    Trong ví dụ này bạn yêu cầu người dùng nhập tuổi, họ và giới tính.

    Đầu tiên bạn kiểm tra tuổi. Nếu người dùng trên 18 tuổi, bạn tiếp tục kiểm tra tên. Nếu nười dùng nhập tên (name.isalpha()), bạn tiếp tục kiểm tra giới tính. Nếu là name (male) sẽ in ra lời chào ‘Welcome, Mr.’, nếu là nữ sẽ in lời chào ‘Welcome, lady’, nếu không chỉ định giới tính thì chỉ in ra lời chào ‘Welcome’.

    Nếu người dùng không cung cấp tên thì hỏi lại ‘Sorry, who are you?’. Nếu tuổi dưới 18 thì in thông báo ‘You are too young to come here!’.

    Đây là ví dụ về cách đặt các lệnh if-elif-else lồng nhau.

    Khi sử dụng các lệnh lồng nhau đặc biệt lưu ý đến thụt đầu dòng: các lệnh nằm trong cùng một suite phải có cùng thụt đầu dòng như nhau.

    Từ khóa pass

    Đây là từ khóa tương đối lạ với các bạn học C. Từ khóa này được đưa ra do đặc thù của Python khi viết code block.

    age = int(input('Your age: ')) print('Welcome!') else: print('Goodbye!')

    Bạn sẽ gặp ngay lỗi cú pháp (báo ở dòng lệnh print(‘Goodbye!’)): expected an indented block.

    Đây là điều tương đối lạ với các bạn đã học C (và các ngôn ngữ tương tự).

    Trong Python, các lệnh như if, while, for, khai báo hàm, v.v., được gọi là các lệnh phức hợp ( compound statement).

    Mỗi lệnh phức hợp chứa một hoặc nhiều mệnh đề ( clause). Như cấu trúc if có thể có nhiều mệnh đề tương ứng với if, các elif, và else.

    Mỗi clause tạo ra từ một header và một suite. Ví dụ, clause tương ứng với else có header là else: và suite là khối code nằm sau else:. Suite là khối code bắt buộc phải có trong clause. Bạn không thể viết header mà không có suite đi kèm.

    Vậy nếu như bạn không muốn xử lý gì trong clause thì sao. Giả sử, trong trường hợp mệnh đề else bạn không muốn xử lý gì cả nhưng vẫn muốn viết nó, hoặc trong trường hợp tạm thời bạn chưa viết được code xử lý cho nó.

    Từ khóa pass được sử dụng trong những tình huống như thế này:

    age = int(input('Your age: ')) print('Welcome!') else: pass print('Goodbye!')

    Khi này bạn vẫn có thể giữ được mệnh đề else nhưng nó sẽ không làm gì hết. Từ khóa pass được tạo ra chỉ đơn thuần là để đáp ứng yêu cầu cú pháp của Python: mỗi mệnh đề phải có đủ header và suite. Từ khóa pass đóng vai trò là một suite hình thức (không làm gì hết).

    Đối với cấu trúc if, từ khóa pass có vẻ hơi vô ích. Tuy nhiên, trong cấu trúc xử lý ngoại lệ bạn sẽ thấy cần đến nó hơn.

    Từ khóa pass không phải là đặc thù của cấu trúc if-elif-else. Đây là từ khóa xuất phát từ cấu trúc chung của các lệnh phức hợp trong Python.

    Bài học này đã hướng dẫn chi tiết cách sử dụng cấu trúc rẽ nhánh if-elif-else trong Python. Nhìn chung ý tưởng và cú pháp của cấu trúc này khá gần với các ngôn ngữ lập trình khác.

    Tuy nhiên cần lưu ý về căn lề (thụt đầu dòng) của code trong suite của mỗi clause. Các lệnh trong cùng một suite mà căn lề lệch sẽ bị lỗi cú pháp.

    Ngoài ra Python cũng sử dụng từ khóa pass để tạo ra một dummy suite (suite không làm gì cả) để phù hợp với cú pháp của ngôn ngữ.

    * Bản quyền bài viết thuộc về Tự học ICT. Đề nghị tôn trọng bản quyền.

    --- Bài cũ hơn ---

  • Lồng Các Lệnh If…else Trong Java
  • Cấu Trúc Điều Khiển If
  • Cách Sử Dụng Hàm If
  • Hướng Dẫn Cách Viết Cấu Trúc If Else Trong Vba Excel
  • Làm Việc Với Cấu Trúc If Else Trong Lập Trình C++
  • Cấu Trúc Dữ Liệu Trong Python

    --- Bài mới hơn ---

  • Bài 9.1: Cấu Trúc Dữ Liệu Trong Python
  • Kiểu Dữ Liệu Trong Python: Chuỗi, Số, List, Tuple, Set Và Dictionary
  • Các Dự Án Python Mã Nguồn Mở Dành Cho Người Mới Bắt Đầu
  • Học Qua Dự Án Python Cho Người Mới Bắt Đầu
  • Cấu Trúc Điều Khiển Và Vòng Lặp Trong Python
  • Các kiểu dữ liệu cơ bản trong Python bao gồm kiểu số nguyên (int), kiểu số thực (float), kiểu chuỗi (string) và kiểu logic (boolean). Với các kiểu dữ liệu cơ bản này, chúng ta có thể viết các ứng dụng đơn giản với Python.

    Với các ứng dụng có số lượng các biến nhiều, dữ liệu lớn chúng ta cần tới các cấu trúc dữ liệu giúp cho việc viết code ngắn gọn và hiệu quả. Trong Python có 4 kiểu cấu trúc dữ liệu là List, Tuple, Set và Dictionary.

    Tại sao cấu trúc dữ liệu cần thiết

    Cấu trúc dữ liệu được sử dụng trong các chương trình để dễ dàng hơn trong việc định vị thông tin và lấy thông tin. Cấu trúc dữ liệu là cách các ngôn ngữ lập trình thể hiện các giá trị cơ bản, chúng chứa các kiểu dữ liệu cơ bản như số, chuỗi, boolean…, nó đưa ra cách thức lưu trữ nhiều giá trị trong một biến số.

    Cấu trúc dữ liệu cũng được sử dụng để phân nhóm và tổ chức cho các cấu trúc khác.

    1.1 Định nghĩa và cách sử dụng List

    List là một tập dữ liệu đơn giản nhất trong Python, một List là một danh sách các thành phần dữ liệu được phân cách bởi dấu phẩy và được bao ngoài bởi dấu ngoặc vuông. List có thể chứa các con số hoặc các chuỗi.

    Chú ý: Một danh sách có thể chứa nhiều loại dữ liệu khác nhau nếu bạn thấy cần thiết, tuy nhiên nên dừng một loại dữ liệu thống nhất cho các phần tử trong danh sách.

    members = =newvalue Thay đổi giá trị một phần tử có vị trí index trong List.

    .extend() Kết hợp danh sách với một List khác.

    .remove() Loại bỏ một phần tử khỏi List.

    .pop(index) Loại bỏ phần tử ở vị trí index cho trước trong List.

    del Xóa một phần tử hoặc toàn bộ danh sách

    .clear() Xóa sạch các phần tử trong danh sách

    Chú ý, .clear() khác với del, .clear() xóa toàn bộ các phần tử trong List, còn del xóa luôn cả biến List.

    .count() Đếm số lần một phần tử xuất hiện trong List.

    .index() Trả về vị trí phần tử trong List

    .sort() sắp xếp các phần tử trong List.

    Mặc định sắp xếp tăng dần với dữ liệu chuỗi sẽ sắp xếp a-z, A-Z, với số 0-9. Để sắp xếp giảm dần sử dụng tham số reverse = True.

    reverse() Đảo ngược thứ tự các phần tử trong List.

    .copy() Copy toàn bộ List.

    Python hỗ trợ một cấu trúc dữ liệu cũng tương tự với List có tên là Tuple, chỉ có một khác biệt Tuple là danh sách bất biến, không thể thay đổi nội dung. Tức là ngay sau khi định nghĩa Tuple, bạn không thể thay đổi nó.

    2.1 Khai báo Tuple

    Định nghĩa một Tuple cũng giống như định nghĩa một List trong Python, chỉ khác là thay vì sử dụng ngoặc vuông chúng ta sử dụng ngoặc tròn.

    Python cho phép định nghĩa Tuple mà không cần sử dụng dấu ngoặc thường. Ví dụ:

    Thậm chí Tuple chỉ có một phần tử:

    Chú ý dấu phẩy, nếu không có dấu phẩy thì đây là định nghĩa một chuỗi.

    2.2 Thao tác với Tuple

    Tuple là một danh sách đặc biệt, không thể thay đổi khi đã tạo ra, do đó bạn có thể sử dụng tất cả các kỹ thuật, các hàm như với List nhưng loại trừ những hàm tác động thay đổi nội dung.

    Ví dụ, bạn có thể sử dụng toán tử in, hàm len() với Tuple:

    Tất cả các phương thức .append(), .extend(), .clear(), .copy(), .insert(), .pop(), .remove(), .reverse(), .sort() không sử dụng được với cấu trúc dữ liệu Tuple.

    Chú ý: Không thể thay đổi Tuple nhưng có thể tạo ra một Tuple từ hai Tuple, ví dụ :

    2.3 Tại sao sử dụng Tuple

    Tuple có những hạn chế là khi tạo ra không thể thay đổi được tuy nhiên Tuple lại có những ưu điểm sau:

    • Tuple có tốc độ xử lý nhanh hơn List, do Tuple được lưu trữ một khối bộ nhớ xác định còn List thì thường xuyên phải thay đổi không gian lưu trữ. Nếu bạn định nghĩa một tập các giá trị là hằng số thì nên chọn Tuple.

    • Sử dụng Tuple giúp code an toàn hơn, khi đó chế độ “write-protect” giúp cho dữ liệu không thể thay đổi. Do vậy nên lựa chọn cho những dữ liệu dạng hằng số, dữ liệu không thay đổi theo thời gian.

    • Tuple còn được sử dụng làm khóa trong Dictionary do nó chứa các giá trị không đổi, List không được sử dụng làm khóa cho Dictionary.

    All Rights Reserved

    --- Bài cũ hơn ---

  • Cấu Trúc Dữ Liệu Set Trong Python
  • Cấu Trúc Dữ Liệu List Và Tuple Trong Python
  • 10 Điều Nên Biết Về Phong Cách Viết Code Python
  • Hơn 100 Bài Tập Python Có Lời Giải (Code Mẫu)
  • Python Là Gì? 20 Tài Liệu Lập Trình Python Cơ Bản Đến Nâng Cao Hay Nhất
  • Phần Iii. Cấu Trúc Lặp Trong Python

    --- Bài mới hơn ---

  • Cấu Trúc Dữ Liệu & Giải Thuật Qua Ví Dụ Kinh Điển
  • Đề Thi Thử Tiếng Anh Thpt Quốc Gia Năm 2022 Trường Thpt Chuyên Trần Phú
  • Câu Ví Dụ,định Nghĩa Và Cách Sử Dụng Của”attention”
  • Giới Từ Theo Sau Động Từ Thông Dụng
  • Những Cụm Từ Chúc Ai Đó “may Mắn” Trong Tiếng Anh
  • Bài 2: Tính n!

    Bài 3: Tính x n (Với n là số nguyên không âm).

    Bài 4: Tính tổng S =

    (với n là số nguyên không âm).

    Bài 5: Tính tổng S =

    (với n là số nguyên không âm).

    Bài 6: Tính tổng S =

    (với n là số nguyên không âm).

    Bài 7: Tìm tất cả các chữ số có ba chữ số abc sao cho tổng các lập phương của các chữ số thì bằng chính số đó

    .

    Bài 8: Nhập vào một số nguyên không âm, kiểm tra xem nó có phải là số nguyên tố hay không?

    Bài 9: In ra các số nguyên tố nhỏ hơn hoặc bằng N (N là số nguyên không âm được nhập từ bàn phím).

    Bài 10: Nhập 3 loại tiền và số tiền cần đổi. Hãy tìm tất cả các tổ hợp có được của 3 loại tiền trên cho số tiền vừa nhập.

    Bài 11:

    Trăm trâu trăm cỏ

    Trâu đứng ăn năm

    Trâu nằm ăn ba

    Trâu già ba con một bó. Hỏi có bao nhiêu con mỗi loại?

    Bài 12: Tạo bảng số dạng sau.

    Bài 13: Tạo các hình sau (Yêu cầu: Chiều cao h được nhập từ bàn phím)

    Bài 14: Lập trình để giải bài toán cổ sau:

    Vừa gà vừa chó.

    Bó lại cho tròn.

    Ba mư­ơi sáu con,

    Một trăm chân chẵn.

    Hỏi bao nhiêu con mỗi loại?

    Bài 15: Nhập từ bàn phím tuổi của cha và con (tuổi của cha hơn tuổi con ít nhất là 25). Đư­a ra màn hình bao nhiêu năm nữa thì tuổi cha gấp đôi tuổi con.

    Bài 16: Một ngư­ời gửi tiết kiệm không kì hạn với số tiền A đồng với lãi suất 0,2% mỗi tháng. Hỏi sau t tháng, ng­ười đó rút tiền thì sẽ nhận đ­ược số tiền là bao nhiêu. Biết rằng tiền gửi tiết kiệm không kì hạn không đ­ược tính lãi kép.

    Bài 17: Tìm ­ước chung lớn nhất (UCLN) của hai số nguyên dư­ơng MN.

    A) Bài toán 1. Tính và đư­a kết quả ra màn hình tổng

    .

    B) Bài toán 2. Tính và đ­ưa kết quả ra màn hình tổng

    cho đến khi

    < 0,0001.

    Hướng dẫn giải:

    Bài 1 print("Tính X mũ Y") x=int(input("Nhập x=")) y=int(input("Nhập y=")) p=1 for i in range(1,y+1): p=p*x print("Kết quả:",p)

    Bài 1(Cách 2) print("Tính X mũ Y") x=int(input("Nhập x=")) y=int(input("Nhập y=")) p=1 i=1 while (i<=y): p=p*x i=i+1 print("Kết quả:",p)

    Bài 2: print("Tính n!") n=int(input("Nhập n=")) p=1 for i in range(1,n+1):p=p*i print("Kết quả:",p)

    Bài 2: (Cách 2) print("Tính n!") n=int(input("Nhập n=")) p=1 i=1 while (i<=n): p=p*i i=i+1 print("Kết quả:",p)

    Bài 3: print("Tính tổng 1/i! với i=") n=int(input("Nhập n=")) s=1 if (n==0):s=1 else : p=1 i=1 while (i<=n): p=p*i s=s+1/p i=i+1 print("Kết quả:",round(s,3))

    Bài 4: print("Tính tổng s=x^i với i=") n=int(input("Nhập n=")) x=int(input("Nhập x=")) p=1 s=0 i=1 while(i<=n): p=p*x s=s+p i=i+1 print("Kết quả:",s)

    --- Bài cũ hơn ---

  • Cấu Trúc Điều Khiển Và Vòng Lặp Trong Python
  • Học Qua Dự Án Python Cho Người Mới Bắt Đầu
  • Các Dự Án Python Mã Nguồn Mở Dành Cho Người Mới Bắt Đầu
  • Kiểu Dữ Liệu Trong Python: Chuỗi, Số, List, Tuple, Set Và Dictionary
  • Bài 9.1: Cấu Trúc Dữ Liệu Trong Python
  • Cấu Trúc Dữ Liệu Set Trong Python

    --- Bài mới hơn ---

  • Cấu Trúc Dữ Liệu Trong Python
  • Bài 9.1: Cấu Trúc Dữ Liệu Trong Python
  • Kiểu Dữ Liệu Trong Python: Chuỗi, Số, List, Tuple, Set Và Dictionary
  • Các Dự Án Python Mã Nguồn Mở Dành Cho Người Mới Bắt Đầu
  • Học Qua Dự Án Python Cho Người Mới Bắt Đầu
  • Python khác với các ngôn ngữ lập trình khác, nó đưa ra rất nhiều các cấu trúc dữ liệu dạng đa giá trị, trong bài trước chúng ta đã học về List và Tuple, bài này chúng ta tìm hiểu về hai cấu trúc dữ liệu tiếp theo của Python là Set (tập hợp).

    1. Tập hợp (Set)

    Các phần tử của tập hợp phải là các dữ liệu không thể thay đổi như một số (int), một chuỗi (string), hoặc một Tuple.

    1.1 Khai báo tập hợp

    Tập hợp (Set) trong Python có một số tính chất mà bạn cần nhớ:

    • Các phần tử trong tập hợp không có thứ tự.
    • Các phần tử này là duy nhất, không cho phép lặp lại.
    • Set có thể thay đổi (thêm bớt phần tử) nhưng các phần tử của tập hợp phải ở dạng không thể thay đổi (tức là xác định được dung lượng bộ nhớ ngay khi khai báo).

    Chúng ta sử dụng các dấu ngoặc nhọn trong khai báo Set, ví dụ:

    friends = {"Rolf","Bob","Anne"} print(friends)

    Chú ý:

    • ,{"Jonhny", "Sara"},("Laura","Elite")) print(friends) # Kết quả là {'Anne', 'Laura', 'Elite', 'Rolf', 'Jonhny', 'Charlie', 'Bob', 'Sara', 'Jen'}

      Kết quả của bạn có thể có thứ tự khác đi, một chú ý nữa là không sử dụng chuỗi để cập nhập vào tập hợp mà các phần tử là chuỗi bởi vì chuỗi sẽ được coi là một danh sách các ký tự, ví dụ:

      friends = {"Rolf","Bob","Anne"} friends.update("Jen") print(friends) # Kết quả là {'n', 'e', 'Rolf', 'Bob', 'Anne', 'J'}

      Không như mong đợi phải không, bạn có thể sử dụng phương thức .add() hoặc có thể chuyển chuỗi thành Set, List hoặc Tuple có 1 phần tử:

      friends = {"Rolf","Bob","Anne"} friends.update(("Jen",)) # hoặc friends.update(["Jen"]) # hoặc friends.update({"Jen"})

      1.3 Các phép toán trong tập hợp

      Các tập hợp có lợi thế hơn các cấu trúc dữ liệu khác ở chỗ nó thực hiện được các phép toán tập hợp như hợp, hiệu, giao… Để mô tả dễ hiểu hơn, chúng ta có hai tập hợp art_friends và science_friends là tập hợp các bạn trong lớp Mỹ thuật và tập hợp các bạn trong lớp Khoa học.

      art_friends = {"Rolf", "Anne", "Jen"} science_friends = {"Jen", "Charlie"}

      Các phép toán được mô tả như hình sau:

      Hợp của hai tập hợp cho kết quả là tất cả các phần tử trong hai tập hợp, chú ý phần tử nào lặp lại sẽ chỉ xuất hiện 1 lần trong tập kết quả. Trong Python, để thực hiện phép hợp, chúng ta sử dụng phương thức .union(). Chú ý, sử dụng tập hợp nào trước cũng cho kết quả như nhau, art_friends.union(science_friends) cũng cho kết quả như science_friends.union(art_friends).

      art_friends = {"Rolf", "Anne", "Jen"} science_friends = {"Jen", "Charlie"} all_friends = art_friends.union(science_friends) print(all_friends) # Kết quả {'Rolf', 'Anne', 'Jen', 'Charlie'}

      Chú ý, “Jen” có mặt trong cả hai lớp nhưng với tập kết quả cuối cùng thì “Jen” chỉ xuất hiện 1 lần.

      1.3.2 Phép trừ (Difference)

      Hiệu của một tập A trừ đi một tập B cho kết quả là tất các phần tử thuộc A nhưng không thuộc B. Sử dụng phương thức .difference() để thực hiện phép trừ hai tập hợp.

      art_friends = {"Rolf", "Anne", "Jen"} science_friends = {"Jen", "Charlie"} art_but_not_science = art_friends.difference(science_friends) science_but_not_art = science_friends.difference(art_friends) print(art_but_not_science) # Kết quả {'Rolf', 'Anne'} print(science_but_not_art) # Kết quả {'Charlie'}

      Trong ví dụ trên, tập hợp art_but_not_science chứa các bạn học lớp Mỹ thuật nhưng không học lớp Khoa học, chú ý “Jen” học cả hai lớp nên không có mặt trong tập hợp này.

      1.3.3 Hiệu đối xứng của hai tập hợp (Symmetric difference)

      Hiệu đối xứng của hai tập A và B được kết quả là tập hợp các phần tử thuộc cả A và B nhưng không đồng thời thuộc cả tập A và B. Phương thức .symmetric_difference() cho kết quả là hiệu đối xứng của hai tập hợp. Chú ý, do tính chất đối xứng nên art_friends.symmetric_difference(science_friends) và science_friends.symmetric_difference(art_friends) cho kết quả như nhau.

      art_friends = {"Rolf", "Anne", "Jen"} science_friends = {"Jen", "Charlie"} not_in_both_1 = art_friends.symmetric_difference(science_friends) print(not_in_both_1) # Kết quả {'Rolf', 'Charlie', 'Anne'} not_in_both_2 = science_friends.symmetric_difference(art_friends) print(not_in_both_2) # Kết quả {'Rolf', 'Anne', 'Charlie'}

      1.3.4 Phép giao (Intersection)

      Phép giao hai tập hợp cho kết quả là các phần tử đồng thời thuộc cả hai tập hợp. Trong Python sử dụng phương thức .intersection() để thực hiện phép giao, chú ý tập hợp nào đứng trước cũng được, do đó kết quả art_friends.intersection(science_friends) và science_friends.intersection(art_friends) là như nhau.

      art_friends = {"Rolf", "Anne", "Jen"} science_friends = {"Jen", "Charlie"} art_and_science = art_friends.intersection(science_friends) print(art_and_science) # Kết quả là {"Jen"}

      Tập hợp art_and_science chứa các bạn học đồng thời cả lớp Mỹ thuật và lớp Khoa học, do đó kết quả chỉ có “Jen” học cả hai lớp này.

      1.3.5 Thay đổi tập hợp dựa trên phép toán tập hợp

      Trong phần trước chúng ta đã biết đến phương thức .update() để thêm nhiều phần tử vào một tập hợp. Dựa vào các phép toán tập hợp, Python cung cấp một số các phương thức khác để thay đổi tập hợp như sau:

      .difference_update()

      Phương thức này là sự kết hợp của .difference() và .update(). Nó thực hiện phép trừ tập hợp trước, được kết quả như thế nào sẽ cập nhật vào tập hợp đích.

      A = {1, 2, 3, 4} B = {3, 4, 5, 6} A.difference_update(B) print(A) # Kết quả {1, 2}

      .symmetric_difference_update()

      Phương thức này là sự kết hợp của .symmetric_difference() và .update(). Nó thực hiện phép trừ đối xứng 2 tập hợp trước, được kết quả như thế nào sẽ cập nhật vào tập hợp đích.

      A = {1, 2, 3, 4} B = {3, 4, 5, 6} A.symmetric_difference_update(B) print(A) # Kết quả là {1, 2, 5, 6}

      .intersection_update()

      Tương tự, Python thực hiện .intersection() trước sau đó thực hiện .update():

      A = {1, 2, 3, 4} B = {3, 4, 5, 6} A.intersection_update(B) print(A) # Kết quả là {3, 4}

      1.3.6 Một số các phép toán khác

      .isdisjoint() Trả về True nếu hai tập hợp không giao nhau, tức là hai tập hợp không có phần tử chung.

      A = {1, 2, 3, 4} B = {3, 4, 5, 6} print(not A.isdisjoint(B)) # Kết quả là True

      Ở đây, chúng ta sử dụng toán tử logic not, để thực hiện trả về True khi hai tập giao nhau, nghe nó thuận tai hơn :D.

      .issubset() Trả về True nếu tập này còn tập con của tập đích (tập trong ngoặc).

      A = {3, 4} B = {3, 4, 5, 6} print(A.issubset(B)) # Kết quả là True

      .issuperset() Trả về True nếu tập này là tập cha của tập đích (tập trong ngoặc).

      A = {3, 4} B = {3, 4, 5, 6} print(A.issuperset(B)) # Kết quả là False

      A = {3, 4} B = {3, 4, 5, 6} print(A.issubset(B)) # Kết quả là True # Tương đương với print(A <= B) # Kết quả là True

      1.4 “Đóng băng” tập hợp (Frozen Set)

      Python cung cấp một hàm tên là frozenset(), kết quả trả về là một tập hợp (Set) không thể thay đổi. Khi đó, nếu bạn thực hiện các phương thức .add(), .remove(), .update()… sẽ báo lỗi.

      “Đóng băng” tập hợp sẽ làm cho tập hợp đó giống như cấu trúc Tuple trong Python.

      friends = {"Rolf", "Anne", "Jen"} frozen_friends = frozenset(friends) frozen_friends.add({"Jen", "Charlie"}) print(frozen_friends) # Kết quả lỗi: AttributeError: 'frozenset' object has no attribute 'add'

      Đóng băng một tập hợp rất hữu ích trong trường hợp bạn muốn tập hợp đó không thể thay đổi. Ví dụ khi dùng một tập hợp làm key cho một từ điển (Dictionary), sẽ được giới thiệu trong phần tiếp theo.

      A = {1, 2, 3} B = {'a', 'b', 'c'} C = {x: 'foo', y: 'bar'} # Kết quả lỗi: TypeError: unhashable type: 'set'

      Tuy nhiên nếu bạn đóng băng các tập hợp này, sẽ không có lỗi nào xảy ra.

      A = frozenset({1, 2, 3}) B = frozenset({'a', 'b', 'c'}) C = {x: 'foo', y: 'bar'} # Không có lỗi

      2. Tập hợp sử dụng khi nào?

      Toán tập hợp hay lý thuyết tập hợp là một trong những phần quan trọng của Toán học mà Khoa học dữ liệu (data science) và Machine Learning sử dụng kiến thức Toán rất nhiều, do vậy toán tập hợp trong Python là một phần không thể thiếu. Ngay từ đầu Python đã được phát triển cho mục đích Khoa học và Giáo dục, do vậy bạn có thể thấy các thiết kế mang hơi hướng Khoa học.

      • Set có các phần tử là không được thay đổi, do vậy khả năng tìm dữ liệu sẽ nhanh hơn.
      • Set cần thiết cho các logic liên đến các cặp (key:value) trong cấu trúc Dictionary của Python.
      • Các phần tử là duy nhất, do đó nếu bạn có một dữ liệu tương tự thì Set là một lựa chọn.

      CÁC BÀI VIẾT KHÁC

      --- Bài cũ hơn ---

    • Cấu Trúc Dữ Liệu List Và Tuple Trong Python
    • 10 Điều Nên Biết Về Phong Cách Viết Code Python
    • Hơn 100 Bài Tập Python Có Lời Giải (Code Mẫu)
    • Python Là Gì? 20 Tài Liệu Lập Trình Python Cơ Bản Đến Nâng Cao Hay Nhất
    • Hướng Dẫn Lập Trình Python Cho Người Mới Bắt Đầu

    Bài 7. Câu Lệnh Vòng Lặp While Trong Python

    --- Bài mới hơn ---

  • Cấu Trúc When Và While Trong Tiếng Anh
  • Ielts Writing: Phân Biệt While, Meanwhile, Whereas, Whilst, As, When
  • Sử Dụng Và Viết Sao Cho Đúng
  • Các Loại Câu Cầu Khiến Trong Tiếng Anh
  • Câu Để Xin Phép Và Yêu Cầu (Permission And Requests)
  • Trong bài trước, chúng ta đã tìm hiểu về vòng lặp for trong Python, bài này chúng ta tìm hiểu về vòng lặp while (while loops) – vòng lặp với số lần lặp không biết trước.

    1. Vòng lặp while trong Python

    Vòng lặp while có cấu trúc:

    number = 0 while number < 5: print(number) number += 1

    Khi bạn mắc phải lỗi logic, gây ra tình trạng vòng lặp while lặp vô hạn lần, thì để chủ động dừng chương trình, có thể sử dụng tổ hợp phím Ctrl + C. Chẳng hạn như ví dụ sau đây thì biến a luôn luôn bằng 0, tức điều kiện của vòng lặp while luôn xảy ra và câu lệnh sẽ được thực thi vô hạn lần! Khi đó để dừng chương trình, ta phải bấm đồng thời hai phím Ctrl và C.

    a = 0 while (a==0): print ("It is 0!")

    Chú ý rằng trong Python không có câu lệnh repeat until, mà thay vào đó, ta có thể sử dụng vòng lặp while với điều kiện luôn luôn đúng và câu lệnh break để thoát khỏi vòng lặp, cú pháp như sau.

    while True:             break

    i = 0 while True:       if i % 3 == 0:             print(i)       i += 2       if i == 1000:             break

    Tuy nhiên, cách làm trên chỉ để minh hoạ cho cách viết theo phong cách của câu lệnh repeat until nên khá phức tạp, chúng ta có thể làm ngắn gọn hơn như sau:

    i = 0 while i < 1000:       if i % 3 == 0:             print(i)       i += 2

    Kết hợp while với else

    else:

    Ví dụ sau Đếm và in các số nhỏ hơn 5

    n = 0 while n < 5: print(n,"nhỏ hơn 5") n = n + 1 else: print (n,"không nhỏ hơn 5")

    Vòng lặp while trên một dòng

    a = 0 while (a==0): print ("It is 0!")

    2. Bài tập vòng lặp while

    Bài 2. In ra tất cả các xâu nhị phân     Xâu nhị phân độ dài n là xâu có độ dài bằng n và chỉ được tạo nên từ hai kí tự 01, ví dụ 10010110 là xâu nhị phân có độ dài bằng 8.

    --- Bài cũ hơn ---

  • Chi Tiết Bài Học 12.vòng Lặp For Và While Trong Python
  • Bài 7. Cấu Trúc Lặp While
  • Bài 8. Cấu Trúc Lặp Do
  • Bài 9: Cấu Trúc Lặp While, Do
  • Chi Tiết Bài Học Vòng Lăp While Và Do…while
  • Web hay
  • Links hay
  • Push
  • Chủ đề top 10
  • Chủ đề top 20
  • Chủ đề top 30
  • Chủ đề top 40
  • Chủ đề top 50
  • Chủ đề top 60
  • Chủ đề top 70
  • Chủ đề top 80
  • Chủ đề top 90
  • Chủ đề top 100
  • Bài viết top 10
  • Bài viết top 20
  • Bài viết top 30
  • Bài viết top 40
  • Bài viết top 50
  • Bài viết top 60
  • Bài viết top 70
  • Bài viết top 80
  • Bài viết top 90
  • Bài viết top 100