Sử dụng
def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
2 bên trong vòng lặp sẽ phá vỡ nó và thoát chức năng ngay cả khi lần lặp vẫn chưa hoàn thành.Ví dụ:
def num[]:
# Here there will be only one iteration
# For number == 1 => 1 % 2 = 1
# So, break the loop and return the number
for number in range[1, 10]:
if number % 2:
return number
>>> num[]
1
Trong một số trường hợp chúng ta cần phá vỡ vòng lặp nếu một số điều kiện được đáp ứng. Tuy nhiên, trong mã hiện tại của bạn, phá vỡ vòng lặp trước khi hoàn thành nó là vô ý.
Thay vào đó, bạn có thể sử dụng một cách tiếp cận khác:
Mang lại dữ liệu của bạn
def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
Bạn có thể gọi nó như:
a = list[show_todo[]] # or tuple[show_todo[]]
Hoặc bạn có thể lặp lại thông qua nó:
for v, k in show_todo[]: ...
Đặt dữ liệu của bạn vào một danh sách hoặc container khác
Nối dữ liệu của bạn vào danh sách, sau đó trả lại sau khi kết thúc vòng lặp của bạn:
def show_todo[]:
my_list = []
for key, value in cal.items[]:
my_list.append[[value[0], key]]
return my_list
Hoặc sử dụng danh sách hiểu:
def show_todo[]:
return [[value[0], key] for key, value in cal.items[]]
def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
3 và def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
4 cho phép bạn kiểm soát luồng của các vòng lặp. Họ là một khái niệm mà người mới bắt đầu Python có xu hướng hiểu lầm, vì vậy hãy chú ý cẩn thận.Sử dụng def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
3
def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
Tuyên bố
def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
3 sẽ hoàn toàn thoát ra khỏi vòng lặp hiện tại, có nghĩa là nó đã giành được nhiều câu nói có thêm bên trong nó.>>> names = ["Rose", "Max", "Nina", "Phillip"]
>>> for name in names:
... print[f"Hello, {name}"]
... if name == "Nina":
... break
...
Hello, Rose
Hello, Max
Hello, Nina
def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
3 hoàn toàn thoát ra khỏi vòng lặp.breaks out of the loop.Sử dụng def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
4
def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
4 hoạt động hơi khác một chút. Thay vào đó, nó quay trở lại bắt đầu vòng lặp, bỏ qua bất kỳ câu lệnh nào khác trong vòng lặp.>>> for name in names:
... if name != "Nina":
... continue
... print[f"Hello, {name}"]
...
Hello, Nina
def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
4 tiếp tục bắt đầu vòng lặpstart of the loopdef show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
3 và def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
4 được hiển thị
def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
Điều gì xảy ra khi chúng ta chạy mã từ tệp Python này?
# Python file names.py
names = ["Jimmy", "Rose", "Max", "Nina", "Phillip"]
for name in names:
if len[name] != 4:
continue
print[f"Hello, {name}"]
if name == "Nina":
break
print["Done!"]
Kết quả
Xem nếu bạn có thể đoán kết quả trước khi mở rộng phần này.
Sử dụng def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
3 và def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
4 trong các vòng lồng nhau.
def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
Hãy nhớ rằng,
def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
3 và def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
4 chỉ hoạt động cho vòng lặp hiện tại. Mặc dù tôi đã lập trình Python trong nhiều năm, nhưng đây là điều vẫn còn vận chuyển tôi!current
loop. Even though I’ve been programming Python for years, this is something that still trips me up!>>> names = ["Rose", "Max", "Nina"]
>>> target_letter = 'x'
>>> for name in names:
... print[f"{name} in outer loop"]
... for char in name:
... if char == target_letter:
... print[f"Found {name} with letter: {target_letter}"]
... print["breaking out of inner loop"]
... break
...
Rose in outer loop
Max in outer loop
Found Max with letter: x
breaking out of inner loop
Nina in outer loop
>>>
def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
3 Trong vòng bên trong chỉ bị phá vỡ khỏi vòng lặp bên trong! Vòng ngoài tiếp tục chạy.Kiểm soát vòng lặp trong các vòng a = list[show_todo[]] # or tuple[show_todo[]]
8
a = list[show_todo[]] # or tuple[show_todo[]]
Bạn cũng có thể sử dụng
def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
3 và def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
4 trong các vòng a = list[show_todo[]] # or tuple[show_todo[]]
8. Một kịch bản phổ biến là chạy một vòng lặp mãi mãi, cho đến khi một điều kiện nhất định được đáp ứng.def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
0Hãy cẩn thận rằng tình trạng của bạn cuối cùng sẽ được đáp ứng, nếu không thì chương trình của bạn sẽ bị mắc kẹt trong một vòng lặp vô hạn. Để sử dụng sản xuất, nó tốt hơn để sử dụng lập trình không đồng bộ.
Các vòng lặp và câu lệnh def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
2
def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
Cũng giống như trong các chức năng, hãy xem xét tuyên bố
def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
2 là chuyển đổi cứng của vòng lặp.def show_todo[]:
# Create a generator
for key, value in cal.items[]:
yield value[0], key
1