Tôi có thể sử dụng và điều kiện trong vòng lặp for trong Python không?

Lần trước tôi đã viết về Python cho Vòng lặp và Câu lệnh If. Hôm nay chúng ta sẽ nói về cách kết hợp chúng. Trong bài viết này, tôi sẽ chỉ cho bạn – thông qua một vài ví dụ thực tế – cách kết hợp một vòng lặp for với một vòng lặp for khác và/hoặc với một câu lệnh if

Ghi chú. Đây là một hướng dẫn thực hành. Tôi thực sự khuyên bạn nên thực hiện phần mã hóa với tôi – và nếu bạn có thời gian, hãy giải các bài tập ở cuối bài viết. Nếu bạn chưa làm như vậy, vui lòng xem qua các bài viết này trước

  • Cách cài đặt Python, R, SQL và bash để thực hành khoa học dữ liệu
  • Python cho Khoa học dữ liệu #1 – Hướng dẫn cho người mới bắt đầu – Khái niệm cơ bản về Python
  • Python cho Khoa học dữ liệu #2 – Cấu trúc dữ liệu
  • Python cho Khoa học dữ liệu #3 – Hàm và phương thức
  • Python cho Khoa học dữ liệu #4 – Câu lệnh If
  • Python cho Khoa học dữ liệu #5 – Vòng lặp cho

Lưu ý 2. Trên thiết bị di động, các ngắt dòng của đoạn mã có thể trông khó hiểu. Nhưng nếu bạn sao chép-dán chúng vào Jupyter Notebook của mình, bạn sẽ thấy các ngắt dòng thực tế rõ ràng hơn nhiều

Cách trở thành nhà khoa học dữ liệu
(khóa học video 50 phút miễn phí của Tomi Mester)

Chỉ cần đăng ký Bản tin Data36 tại đây (miễn phí)

Tôi chấp nhận Chính sách bảo mật của Data36. (Không có thư rác. Chỉ nội dung liên quan đến khoa học dữ liệu hữu ích. Khi bạn đăng ký, tôi sẽ cập nhật cho bạn một vài email mỗi tuần. Bạn sẽ nhận được các bài viết, khóa học, trang tính, hướng dẫn và nhiều nội dung thú vị. )

Đươc phép truy cập bây giờ

Vòng lặp for trong vòng lặp for – hay còn gọi là vòng lặp for lồng nhau

Dự án dữ liệu bạn đang thực hiện càng phức tạp thì khả năng bạn gặp phải tình huống phải sử dụng vòng lặp for lồng nhau càng cao. Điều này có nghĩa là bạn sẽ chạy một lần lặp, rồi một lần lặp khác bên trong lần lặp đó

Giả sử bạn có chín tiêu đề chương trình truyền hình được chia thành ba loại. phim hài, phim hoạt hình, phim truyền hình. Chúng được trình bày trong một danh sách Python lồng nhau (“danh sách trong danh sách”)

my_movies = [['How I Met Your Mother', 'Friends', 'Silicon Valley'],
    ['Family Guy', 'South Park', 'Rick and Morty'],
    ['Breaking Bad', 'Game of Thrones', 'The Wire']]

Bạn muốn đếm các ký tự trong tất cả các tiêu đề này và in từng kết quả ra màn hình của bạn, ở định dạng này

for sublist in my_movies:
    for movie_name in sublist:
        char_num = len(movie_name)
        print("The title " + movie_name + " is " + str(char_num) + " characters long.")
0

Bạn làm điều đó như thế nào?

for sublist in my_movies:
    for movie_name in sublist:
        char_num = len(movie_name)
        print("The title " + movie_name + " is " + str(char_num) + " characters long.")

Ghi chú. hãy nhớ rằng

for sublist in my_movies:
    for movie_name in sublist:
        char_num = len(movie_name)
        print("The title " + movie_name + " is " + str(char_num) + " characters long.")
2 là một hàm Python có kết quả là một số nguyên. Để đặt số nguyên này thành một câu "có thể in được", trước tiên chúng ta phải biến nó thành một chuỗi. Tôi đã viết về điều này trong hướng dẫn Python For Loops trước đó

Tôi có thể sử dụng và điều kiện trong vòng lặp for trong Python không?

Tôi biết, Python cho các vòng lặp có thể khó hiểu lần đầu tiên… Các vòng lặp for lồng nhau thậm chí còn khó hơn. Nếu bạn gặp khó khăn trong việc hiểu chính xác những gì đang xảy ra ở trên, hãy lấy bút và giấy và cố gắng mô phỏng toàn bộ kịch bản như thể bạn là máy tính — đi qua vòng lặp của bạn từng bước và viết ra kết quả

Còn một điều nữa.
Cú pháp. Các quy tắc giống như những quy tắc mà bạn đã học khi chúng ta thảo luận về các vòng lặp for đơn giản — điều duy nhất tôi muốn nhấn mạnh và bạn chắc chắn nên chú ý, đó là các khoảng thụt đầu dòng. Using proper indentations is the only way how you can let Python know that in which for loop (the inner or the outer) you would like to apply your block of code. Just test out and try to find the differences between these three examples:

Tôi có thể sử dụng và điều kiện trong vòng lặp for trong Python không?
ví dụ 1

Tôi có thể sử dụng và điều kiện trong vòng lặp for trong Python không?
ví dụ 2

Tôi có thể sử dụng và điều kiện trong vòng lặp for trong Python không?
ví dụ 3

Câu lệnh if trong vòng lặp for

Bên trong vòng lặp for, bạn cũng có thể sử dụng câu lệnh if

Hãy để tôi sử dụng một trong những ví dụ nổi tiếng nhất về các bài tập mà bạn có thể được đưa ra làm câu hỏi mở đầu trong cuộc phỏng vấn xin việc nhà khoa học dữ liệu mới vào nghề

Nhiệm vụ là.
Đi qua tất cả các số cho đến 99. In 'fizz' cho mọi số chia hết cho 3, in 'buzz' cho mọi số chia hết cho 5 và in 'fizzbuzz' cho mọi số chia hết cho 3 và 5. Nếu số đó không chia hết cho 3 hoặc 5 thì in ra dấu gạch ngang (‘-‘).

Đây là giải pháp

for i in range(100):
    if i % 3 == 0 and i % 5 == 0:
        print('fizzbuzz')
    elif i % 3 == 0:
        print('fizz')
    elif i % 5 == 0:
        print('buzz')
    else:
        print('-')

Tôi có thể sử dụng và điều kiện trong vòng lặp for trong Python không?

Như bạn có thể thấy, một câu lệnh if trong vòng lặp for là hoàn hảo để đánh giá danh sách các số trong một phạm vi (hoặc các phần tử trong danh sách) và đặt chúng vào các nhóm khác nhau, gắn thẻ cho chúng hoặc áp dụng các hàm trên chúng – hoặc chỉ đơn giản là in

Một lần nữa. khi bạn sử dụng câu lệnh if trong vòng lặp for, hãy cực kỳ cẩn thận với các khoảng thụt đầu dòng vì nếu đặt sai chỗ, bạn có thể nhận được lỗi hoặc kết quả giả mạo.

Tháng đầu tiên của nhà khoa học dữ liệu cơ sở

Một khóa học trực tuyến thực tế 100%. Mô phỏng 6 tuần để trở thành nhà khoa học dữ liệu cấp dưới tại một công ty khởi nghiệp thực tế

“Giải quyết các vấn đề thực tế, có được trải nghiệm thực tế - giống như trong một công việc khoa học dữ liệu thực sự. ”

Tìm hiểu thêm

Phá vỡ

Có một công cụ luồng điều khiển đặc biệt trong Python khá hữu ích khi sử dụng các câu lệnh if bên trong vòng lặp for. Và đây là câu lệnh

for sublist in my_movies:
    for movie_name in sublist:
        char_num = len(movie_name)
        print("The title " + movie_name + " is " + str(char_num) + " characters long.")
3

Bạn có tìm được số có 7 chữ số đầu tiên chia hết cho 137 không? . )

Đây là một giải pháp

for i in range(0, 10000000, 137):
    if len(str(i)) == 7:
        print(i)
        break

Vòng lặp này lấy mọi số thứ 137 (

for sublist in my_movies:
    for movie_name in sublist:
        char_num = len(movie_name)
        print("The title " + movie_name + " is " + str(char_num) + " characters long.")
4) và nó sẽ kiểm tra trong mỗi lần lặp xem số đó có 7 chữ số hay không (
for sublist in my_movies:
    for movie_name in sublist:
        char_num = len(movie_name)
        print("The title " + movie_name + " is " + str(char_num) + " characters long.")
5) == 7). Khi đến số có 7 chữ số đầu tiên, câu lệnh if sẽ là
for sublist in my_movies:
    for movie_name in sublist:
        char_num = len(movie_name)
        print("The title " + movie_name + " is " + str(char_num) + " characters long.")
6 và có hai điều xảy ra

  1. for sublist in my_movies:
        for movie_name in sublist:
            char_num = len(movie_name)
            print("The title " + movie_name + " is " + str(char_num) + " characters long.")
    
    7 –» Số được in ra màn hình
  2. for sublist in my_movies:
        for movie_name in sublist:
            char_num = len(movie_name)
            print("The title " + movie_name + " is " + str(char_num) + " characters long.")
    
    3 thoát ra khỏi vòng lặp for, vì vậy chúng ta có thể chắc chắn rằng số có 7 chữ số đầu tiên cũng là số có 7 chữ số cuối cùng được in ra màn hình

Tôi có thể sử dụng và điều kiện trong vòng lặp for trong Python không?

Tìm hiểu thêm về câu lệnh

for sublist in my_movies:
    for movie_name in sublist:
        char_num = len(movie_name)
        print("The title " + movie_name + " is " + str(char_num) + " characters long.")
3 (và người anh em sinh đôi của nó. câu lệnh
for i in range(100):
    if i % 3 == 0 and i % 5 == 0:
        print('fizzbuzz')
    elif i % 3 == 0:
        print('fizz')
    elif i % 5 == 0:
        print('buzz')
    else:
        print('-')
0) trong tài liệu Python3 gốc. nơi đây

Ghi chú. bạn có thể giải quyết công việc này một cách tinh tế hơn bằng vòng lặp while. Tuy nhiên, tôi vẫn chưa viết hướng dẫn về vòng lặp while, đó là lý do tại sao tôi chọn giải pháp vòng lặp for +

for sublist in my_movies:
    for movie_name in sublist:
        char_num = len(movie_name)
        print("The title " + movie_name + " is " + str(char_num) + " characters long.")
3

Tự kiểm tra

Đã đến lúc kiểm tra xem bạn đã thành thạo câu lệnh if, vòng lặp for và sự kết hợp của hai điều này chưa. Hãy thử giải bài tập kiểm tra nhỏ này

Tạo tập lệnh Python tìm ra tuổi của bạn sau tối đa 8 lần thử. Kịch bản chỉ có thể hỏi bạn một loại câu hỏi. đoán tuổi của bạn. (e. g. “Bạn 67 tuổi phải không?”) Và bạn chỉ có thể trả lời một trong ba lựa chọn này

  • ít hơn
  • hơn
  • Chính xác

Dựa trên câu trả lời của bạn, máy tính có thể đưa ra một dự đoán khác cho đến khi tìm ra tuổi chính xác của bạn

Ghi chú. để giải quyết nhiệm vụ này, bạn cũng sẽ phải học một chức năng mới. Đó là hàm

for i in range(100):
    if i % 3 == 0 and i % 5 == 0:
        print('fizzbuzz')
    elif i % 3 == 0:
        print('fizz')
    elif i % 5 == 0:
        print('buzz')
    else:
        print('-')
2. Thêm thông tin. nơi đây

Sẳn sàng? . 2. 1. Đi

Dung dịch

Đây là mã của tôi

Ghi chú 1. Người ta cũng có thể giải quyết nhiệm vụ bằng vòng lặp while. Lại. vì tôi chưa viết về vòng lặp while nên tôi sẽ chỉ cho bạn giải pháp vòng lặp for.
Lưu ý 2. Nếu bạn có giải pháp thay thế, vui lòng chia sẻ với tôi qua email.

for sublist in my_movies:
    for movie_name in sublist:
        char_num = len(movie_name)
        print("The title " + movie_name + " is " + str(char_num) + " characters long.")
7

Logic của tôi đi.
BƯỚC 1) Tôi đặt phạm vi từ 0 đến 100 và tôi cho rằng tuổi của “người chơi” sẽ nằm trong khoảng giữa hai giá trị này.
______53

for i in range(100):
    if i % 3 == 0 and i % 5 == 0:
        print('fizzbuzz')
    elif i % 3 == 0:
        print('fizz')
    elif i % 5 == 0:
        print('buzz')
    else:
        print('-')
4

BƯỚC 2) Tập lệnh luôn hỏi giá trị trung bình của phạm vi này (đối với lần thử đầu tiên, đó là

for i in range(100):
    if i % 3 == 0 and i % 5 == 0:
        print('fizzbuzz')
    elif i % 3 == 0:
        print('fizz')
    elif i % 5 == 0:
        print('buzz')
    else:
        print('-')
5)

for sublist in my_movies:
    for movie_name in sublist:
        char_num = len(movie_name)
        print("The title " + movie_name + " is " + str(char_num) + " characters long.")
1

BƯỚC 3) Khi chúng tôi có câu trả lời của “người chơi”, có bốn tình huống có thể xảy ra

  • Nếu tuổi đoán là chính xác, thì tập lệnh kết thúc và nó trả về một số câu trả lời.
    for sublist in my_movies:
        for movie_name in sublist:
            char_num = len(movie_name)
            print("The title " + movie_name + " is " + str(char_num) + " characters long.")
    
    2
  • Nếu câu trả lời là "ít hơn", thì chúng tôi bắt đầu lặp lại - nhưng trước đó, chúng tôi đặt giá trị tối đa của độ tuổi thành độ tuổi được đoán. (Vì vậy, trong lần lặp lại thứ hai, tập lệnh sẽ đoán giá trị ở giữa của 0 và 50. )
    for sublist in my_movies:
        for movie_name in sublist:
            char_num = len(movie_name)
            print("The title " + movie_name + " is " + str(char_num) + " characters long.")
    
    3
  • Chúng tôi làm tương tự cho câu trả lời "thêm" - ngoại trừ trong trường hợp này, chúng tôi thay đổi giá trị tối thiểu (chứ không phải giá trị tối đa).
    for sublist in my_movies:
        for movie_name in sublist:
            char_num = len(movie_name)
            print("The title " + movie_name + " is " + str(char_num) + " characters long.")
    
    4
  • Và cuối cùng chúng tôi xử lý các câu trả lời sai và lỗi chính tả.
    for sublist in my_movies:
        for movie_name in sublist:
            char_num = len(movie_name)
            print("The title " + movie_name + " is " + str(char_num) + " characters long.")
    
    5

Tôi có thể sử dụng và điều kiện trong vòng lặp for trong Python không?

Bạn có tìm thấy giải pháp nào tốt hơn không?
Chia sẻ giải pháp đó với tôi – gửi email và tôi sẽ xem xét giải pháp đó cho bạn.

Sự kết luận

Bây giờ bạn đã có ý tưởng về

  • Python lồng nhau cho các vòng lặp và
  • các vòng lặp for và if kết hợp

Chúng không nhất thiết phải được coi là những kiến ​​thức cơ bản về Python; . Sử dụng chúng đòi hỏi sự hiểu biết vững chắc về logic của Python3 – và cũng phải thực hành rất nhiều

Chỉ còn hai tập nữa trong loạt bài hướng dẫn Cơ bản về Python cho Khoa học dữ liệu. Hãy tiếp tục và tiếp tục với các yếu tố cần thiết của cú pháp Python

Chúng ta có thể sử dụng và điều kiện trong vòng lặp for không?

Chúng ta có thể sử dụng && trong vòng lặp while không? . Yes you can use two condition in while using logical &&, || . Như trong câu lệnh trên, hai điều kiện đang được kiểm tra đó là vòng lặp while sẽ chạy khi strength nhỏ hơn 100 hoặc ht phải lớn hơn 10. Chúng tôi cũng có thể sử dụng và (&&) theo tình huống.

Chúng ta có thể sử dụng && trong vòng lặp while không?

Sử dụng toán tử logic trong vòng lặp while . - HOẶC(. ), vòng lặp này sẽ chạy cho đến khi cả hai điều kiện trả về false. – Ở đây chúng ta đang sử dụng hai toán tử logic NOT (. ) và và(&&). using AND(&&) operator, which means both the conditions should be true. – OR(||) operator, this loop will run until both conditions return false. – Here we are using two logical operators NOT (!) and AND(&&).

Chúng ta có thể sử dụng điều kiện trong vòng lặp for trong Python không?

Nhưng Python cũng cho phép chúng ta sử dụng điều kiện khác với vòng lặp for . Khối other ngay sau for/while chỉ được thực thi khi vòng lặp KHÔNG bị kết thúc bởi câu lệnh break.

Bạn có thể có 2 điều kiện trong vòng lặp while không?

Sử dụng nhiều điều kiện . Ghi chú. Điều kiện AND phải được đáp ứng để vòng lặp chạy. Tuy nhiên, nếu một trong hai điều kiện ở phía OR của toán tử trả về true , thì vòng lặp sẽ chạy. the while loop has two conditions, one using the AND operator and the other using the OR operator. Note: The AND condition must be fulfilled for the loop to run. However, if either of the conditions on the OR side of the operator returns true , the loop will run.