Hướng dẫn can you nest a for loop in an if statement python? - bạn có thể lồng một vòng lặp for trong một python câu lệnh if không?

Lần trước tôi đã viết về Python cho Loops & nbsp; và nếu các câu lệnh. 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ế - làm thế nào để kết hợp một vòng lặp với vòng lặp khác cho vòng lặp và/hoặc với một câu lệnh IF!

Lưu ý: Đây là một hướng dẫn thực hành. Tôi đặc biệt 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, việc giải các bài tập ở cuối bài viết! Nếu bạn đã thực hiện như vậy, xin vui lòng làm việc thông 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 - Những điều cơ bản của 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 - Chức năng và phương pháp
  • Python cho Khoa học dữ liệu #4 - Nếu các tuyên bố
  • Python cho Khoa học dữ liệu #5 - cho các vòng lặp

Lưu ý 2: & nbsp; trên thiết bị di động, dòng phá vỡ & nbsp; của đoạn mã & nbsp; có thể trông khó khăn. Nhưng nếu bạn sao chép chúng vào sổ ghi chép Jupyter của bạn, bạn sẽ thấy dòng thực tế phá vỡ rõ ràng hơn nhiều!

Làm thế nào để trở thành một nhà khoa học dữ liệu (khóa học video miễn phí 50 phút của Tomi Mester)
(free 50-minute video course by Tomi Mester)

Chỉ cần đăng ký bản tin Data36 ở đây (nó miễn phí)!

Cho vòng lặp trong vòng lặp cho vòng lặp - hay còn gọi là Nested for Loop

Dự án dữ liệu bạn đang làm việc càng phức tạp, cơ hội bạn sẽ gặp phải tình huống mà bạn phải sử dụng một vòng lặp cho vòng lặp. Điều này có nghĩa là bạn sẽ chạy một lần lặp, sau đó là một lần lặp khác bên trong lần lặp đó.

Hãy nói rằng bạn có chín tiêu đề chương trình truyền hình được đưa vào ba hạng mục: 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 của người Hồi giáo trong danh sách trực tuyến):

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 tựa game này và in từng kết quả vào 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? Vì bạn có ba danh sách trong danh sách chính của mình, để có được các tựa phim, bạn phải lặp lại danh sách

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 của mình - và bên trong danh sách đó, thông qua mọi người phụ, cũng vậ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.")

Lưu ý: Hãy 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.")
2 là hàm Python & nbsp; dẫn đến một số nguyên. Để đặt số nguyên này vào một câu có thể in được, chúng ta phải biến nó thành một chuỗi trước. Tôi đã viết về điều này trong Python trước đây cho các vòng lặp & nbsp; hướng dẫn.

Hướng dẫn can you nest a for loop in an if statement python? - bạn có thể lồng một vòng lặp for trong một python câu lệnh if không?

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

Một điều nữa: Cú pháp! Các quy tắc là những quy tắc tương tự bạn học được khi chúng tôi thảo luận về các vòng lặp đơn giản - điều duy nhất mà tôi muốn nhấn mạnh, và bạn chắc chắn nên coi chừng, là các vết lõm. Sử dụng các vết lõm thích hợp là cách duy nhất làm thế nào bạn có thể cho Python biết rằng trong đó cho vòng lặp (bên trong hoặc bên ngoài) bạn muốn áp dụng khối mã của mình. Chỉ cần kiểm tra và cố gắng tìm sự khác biệt giữa ba ví dụ sau:
Syntax! The rules are the same ones you learned when we discussed simple for loops — the only thing that I’d like to emphasize, and that you should definitely watch out for, is the indentations. 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:

Hướng dẫn can you nest a for loop in an if statement python? - bạn có thể lồng một vòng lặp for trong một python câu lệnh if không?
ví dụ 1

Hướng dẫn can you nest a for loop in an if statement python? - bạn có thể lồng một vòng lặp for trong một python câu lệnh if không?
Ví dụ 2

Hướng dẫn can you nest a for loop in an if statement python? - bạn có thể lồng một vòng lặp for trong một python câu lệnh if không?
Ví dụ 3

Nếu câu lệnh trong vòng lặp for

Bên trong một vòng lặp, bạn cũng có thể sử dụng các câu lệnh.

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 một cuộc phỏng vấn xin việc của nhà khoa học dữ liệu cơ sở.

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 cho 5 và in 'fizzbuzz' cho mỗi số chia cho 3 và 5 !! Nếu số không chia hết cho 3 hoặc 5, hãy in dấu gạch ngang (‘-‘)!
Go through all the numbers up until 99. Print ‘fizz’ for every number that’s divisible by 3, print ‘buzz’ for every number divisible by 5, and print ‘fizzbuzz’ for every number divisible by 3 and by 5! If the number is not divisible either by 3 or 5, print a dash (‘-‘)!

Đâ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('-')

Hướng dẫn can you nest a for loop in an if statement python? - bạn có thể lồng một vòng lặp for trong một python câu lệnh if không?

Như bạn có thể thấy, một câu lệnh IF trong vòng lặp 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ẻ chúng hoặc áp dụng các chức năng trên chúng - hoặc chỉ đơn giản là in họ.

Một lần nữa: Khi bạn sử dụng câu lệnh IF trong vòng lặp cho vòng lặp, hãy cực kỳ cẩn thận với các vết lõm vì nếu bạn đặt sai chúng, bạn có thể nhận được lỗi hoặc kết quả giả!indentations because if you misplace them, you can get errors or fake results!

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ột mô phỏng 6 tuần là một nhà khoa học dữ liệu cơ sở tại một công ty khởi nghiệp thực sự.

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

Phá vỡ

Có một công cụ dòng điều khiển đặc biệt trong Python có ích khá thường xuyên khi sử dụng các câu lệnh IF trong các vòng lặp. Và đây là tuyên bố

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ó thể tìm thấy số 7 chữ số đầu tiên mà chia hết cho 137 không? (Cái đầu tiên và duy nhất cái đầu tiên.)

Ở đây, 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 mất 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ó 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ó đạt đến số 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à 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 lên 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, vì vậy chúng tôi có thể đảm bảo rằng số 7 chữ số đầu tiên cũng là số 7 chữ số cuối cùng được in trên màn hình.

Hướng dẫn can you nest a for loop in an if statement python? - bạn có thể lồng một vòng lặp for trong một python câu lệnh if không?

Tìm hiểu thêm về tuyên bố

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ó: Tuyên bố
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: tại đây.

Lưu ý: Bạn có thể giải quyết nhiệm vụ này một cách thanh lịch hơn với một vòng lặp trong thời gian. Tuy nhiên, tôi đã viết một hướng dẫn vòng lặp trong thời gian, đó là lý do tại sao tôi đã đi với giải pháp For Loop +

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!

Đó là thời gian để kiểm tra xem bạn có quản lý để thành thạo câu lệnh IF, các vòng lặp và sự kết hợp của hai điều này không! Hãy để cố gắng giải quyết nhiệm vụ kiểm tra nhỏ này!

Tạo một kịch bản Python tìm ra tuổi của bạn trong tối đa 8 lần thử! Kịch bản có thể hỏi bạn chỉ một loại câu hỏi: đoán tuổi của bạn! (ví dụ: Bạn có 67 tuổi không?) Và bạn chỉ có thể trả lời một trong ba tùy 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 nó tìm ra tuổi chính xác của bạn.

Lưu ý: Để 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à chức năng

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ông tin thêm: ở đây.

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

Dung dịch

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

Lưu ý 1: Người ta cũng có thể giải quyết nhiệm vụ bằng một vòng lặp trong thời gian. Một lần nữa: Vì tôi đã viết về các vòng lặp trong khi, tôi sẽ chỉ cho bạn giải pháp For Loop. Lưu ý 2: Nếu bạn có một giải pháp thay thế, xin vui lòng chia sẻ nó với tôi qua email!
Note 2: If you have an alternative solution, please do not hesitate to share it with me via email!

down = 0
up = 100
for i in range(1,10):
    guessed_age = int((up + down) / 2)
    answer = input('Are you ' + str(guessed_age) + " years old?")
    if answer == 'correct':
        print("Nice")
        break
    elif answer == 'less':
        up = guessed_age
    elif answer == 'more':
        down = guessed_age
    else:
        print('wrong answer')

Logic của tôi đi: Bước 1) Tôi đặt một phạm vi từ 0 đến 100 và tôi cho rằng tuổi của người chơi trực tuyến sẽ nằm giữa hai giá trị này.
STEP 1) I set a range between 0 and 100 and I assume that the age of the “player” will be between these two values.

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('-')
3
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 yêu cầu giá trị giữa của phạm vi này (để thử đầu tiên nó ____ ____25):

guessed_age = int((up + down) / 2)
answer = input('Are you ' + str(guessed_age) + " years old?")

Bước 3) Khi chúng tôi có câu trả lời của người chơi trên mạng, có bốn kịch bản có thể:

  • Nếu độ tuổi đoán là chính xác, thì kịch bản kết thúc và nó trả về một số câu trả lời.
    if answer == 'correct':
        print("Nice")
        break
    
  • Nếu câu trả lời là ít hơn, thì chúng ta sẽ bắt đầu lặp lại-nhưng trước đó chúng ta đặt giá trị tối đa của phạm vi độ tuổi ở độ tuổi đoán. (Vì vậy, trong lần lặp thứ hai, tập lệnh sẽ đoán giá trị giữa của 0 và 50.)
    elif answer == 'less':
        up = guessed_age
    
  • Chúng tôi làm tương tự cho câu trả lời của người Viking hơn - ngoại trừ trong trường hợp này, chúng tôi thay đổi giá trị tối thiểu (và không phải là tối đa):
    elif answer == 'more':
        down = guessed_age
    
  • 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ả:
    else:
        print('wrong answer')

Hướng dẫn can you nest a for loop in an if statement python? - bạn có thể lồng một vòng lặp for trong một python câu lệnh if không?

Bạn có tìm thấy một giải pháp tốt hơn không? Chia sẻ nó với tôi - hãy gửi email và tôi sẽ xem xét nó cho bạn!
Share it with me – drop an email and I’ll review it for you!

Sự kết luận

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

  • Python lồng nhau cho các vòng và
  • cho các vòng lặp và nếu các câu lệnh kết hợp.

Chúng không nhất thiết được coi là những điều cơ bản của Python; Điều này giống như một sự chuyển đổi sang cấp độ trung gian. Sử dụng chúng đòi hỏi một sự hiểu biết vững chắc về logic Python3, và cũng rất nhiều thực hành.

Chỉ còn hai tập còn lại từ loạt hướng dẫn cơ bản 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!

  • Nếu bạn muốn tìm hiểu thêm về cách trở thành một nhà khoa học dữ liệu, hãy tham gia khóa học video dài 50 phút của tôi: Làm thế nào để trở thành một nhà khoa học dữ liệu. & NBSP; (Đó là & NBSP; miễn phí!)
  • Ngoài ra, hãy xem khóa học trực tuyến kéo dài 6 tuần của tôi: Khóa học video tháng đầu tiên của nhà khoa học Data Data.

Cheers,Tomi
Tomi

Làm thế nào để bạn kết hợp cho vòng lặp và nếu điều kiện trong Python?

Nếu bạn muốn kết hợp một vòng lặp cho nhiều điều kiện, thì bạn phải sử dụng cho vòng lặp với nhiều câu lệnh IF để kiểm tra các điều kiện.Nếu tất cả các điều kiện là đúng, thì iterator được trả về.Cú pháp: [iterator for iterator trong ITable/Range (Trình tự) if (điều kiện1) if (điều kiện2) .........]use for loop with multiple if statements to check the conditions. If all the conditions are True, then the iterator is returned. Syntax: [iterator for iterator in iterable/range(sequence) if (condition1) if (condition2) .........]

Bạn có thể làm tổ một câu lệnh IF trong một câu lệnh IF Python?

Python là một ngôn ngữ lập trình rất linh hoạt và nó cho phép bạn sử dụng các câu lệnh IF bên trong các câu lệnh khác, vì vậy được gọi là các câu lệnh nếu lồng nhau.Hãy xem xét một ví dụ.it allows you to use if statements inside other if statements, so called nested if statements. Let's look at an example.

Có thể cho vòng lặp được lồng trong Python?

Trong ngôn ngữ lập trình Python, có hai loại vòng lặp dành cho vòng lặp và trong khi vòng lặp.Sử dụng các vòng lặp này, chúng ta có thể tạo các vòng lặp lồng nhau trong Python.Các vòng lặp lồng có nghĩa là vòng lặp bên trong một vòng lặp.Ví dụ, trong khi vòng lặp bên trong vòng lặp, cho vòng lặp bên trong vòng lặp, v.v.Using these loops we can create nested loops in Python. Nested loops mean loops inside a loop. For example, while loop inside the for loop, for loop inside the for loop, etc.

Bạn có thể làm tổ một lúc trong một tuyên bố IF?

Và để trả lời câu hỏi của bạn, vâng, nó hoàn toàn hợp lệ để làm tổ nếu các câu lệnh trong vòng lặp.yes it's perfectly valid to nest if statements in a while loop.