Kết hợp while với else
Giống như vòng lặp
for
, bạn cũng có thể kết hợp
else
với
while
. Trong trường hợp này, khối lệnh của
else
sẽ được thực hiện khi điều kiện của
while
là False.
Ví dụ: Minh họa việc sử dụng while kết hợp với else
dem = 0 while dem < 3: print("Đang ở trong vòng lặp while") dem = dem + 1 else: print("Đang ở trong else")
Ở đây ta sử dụng biến dem để in chuỗi “Đang ở trong vòng lặp while” 3 lần. Đến lần lặp thứ 4, điều kiện của
while
trở thành False, nên phần lệnh của
else
được thực thi. Kết quả là:
Đang ở trong vòng lặp while Đang ở trong vòng lặp while Đang ở trong vòng lặp while Đang ở trong else
Ví dụ: Đếm và in các số nhỏ hơn 2
n = 0 while n < 2: print(n,"nhỏ hơn 2") n = n + 1 else: print (n,"không nhỏ hơn 2")
Giá trị ban đầu của n ta gán là 0, tăng dần giá trị của n và in, lặp cho đến khi n không nhỏ hơn 2, nếu n bằng hoặc lớn hơn 2 thì vòng lặp kết thúc và khối lệnh
else
sẽ được thực thi, kết quả là:
0 là nhỏ hơn 2 1 là nhỏ hơn 2 2 không nhỏ hơn 2
while Loop Syntax
while condition: # body of while loop
Here,
-
The
while
loop evaluates the condition. - If the condition is true, body of while loop is executed. The condition is evaluated again.
-
This process continues until the condition is
False
. -
Once the condition evaluates to
False
, the loop terminates.
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
Đừng quên like và share để ủng hộ Kteam và tác giả nhé!
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ách 1:
k1 = int(input('Nhap so thu nhat\n=> ')) k2 = int(input('Nhap so thu hai\n=> ')) k3 = int(input('Nhap so thu ba\n=> ')) if k1 > k2 and k1 > k3: print('so lon nhat la', k1) elif k2 > k1 and k2 > k3: print('so lon nhat la', k2) else: print('so lon nhat la', k3)
Cách 2:
k1 = int(input('Nhap so thu nhat\n=> ')) k2 = int(input('Nhap so thu hai\n=> ')) k3 = int(input('Nhap so thu ba\n=> ')) if k1 > k2 and k1 > k3: print('so lon nhat la', k1) elif k2 > k1 and k2 > k3: print('so lon nhat la', k2) else: print('so lon nhat la', k3)
Câu hỏi củng cố
- 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
- Cho một file text tên draft.txt 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 kteam.txt:
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:
[56, 14, 11, 756, 34, 90, 11, 11, 65, 0, 11, 35]
Lưu ý: là các số 11 là những số cố định không được thay đổi vị trí của nó.
Sau khi sắp xếp lại mảng trên sẽ là:
[0, 14, 11, 34, 35, 56, 11, 11, 65, 90, 11, 756]
Đá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!
Introduction to Python while else statement
In Python, the
while
statement may have an optional
else
clause:
while condition: # code block to run else: # else clause code block
Code language: PHP (php)
In this syntax, the
condition
is checked at the beginning of each iteration. The code block inside the
while
statement will execute as long as the
condition
is
True
.
When the
condition
becomes
False
and the loop runs normally, the
else
clause will execute. However, if the loop is terminated prematurely by either a
break
or
return
statement, the
else
clause won’t execute at all.
The follwing flowchart illustrates the
while...else
clause:
If you’re familiar with other programming languages such as JavaScript, Java, or C#, you’ll find that the
else
clause is quite strange in the context of a loop.
However, the
while else
clause turns out to be very useful in some cases. Let’s take a look at an example of using the
while else
statement.
More on Python while Loop
whileloop with
breakstatement
We can use a break statement inside a
while
loop to terminate the loop immediately without checking the test condition. For example,
while True: user_input = input('Enter your name: ') # terminate the loop when user enters end if user_input == 'end': print(f'The loop is ended') break print(f'Hi {user_input}')
Output
Enter your name: Kevin Hi Kevin Enter your name: end The loop is ended
Here, the condition of the while loop is always
True
. However, if the user enters
end
, the loop termiantes because of the
break
statement.
whileloop with an
elseclause
whileloop can have an optional
elseclause - that is executed once the loop condition is
False. For example,
counter = 0 while counter < 2: print('This is inside loop') counter = counter + 1
else: print(‘This is inside else block’)
Output
This is inside loop This is inside loop This is inside else block
Here, on the third iteration, the
counter
becomes 2 which terminates the loop. It then executes the
else
block and prints
This is inside else block
.
Note: The
else
block will not execute if the
while
loop is terminated by a
break
statement.
The
for
loop is usually used in the sequence when the number of iterations is known. For example,
# loop is iterated 4 times for i in range(4): print(i)
Output
0 1 2 3
The
while
loop is usually used when the number of iterations is unknown. For example,
while True: user_input = input("Enter password: ") # terminate the loop when user enters exit if user_input == 'exit': print(f'Status: Entry Rejected') break print(f'Status: Entry Allowed')
Output
Enter password: Python is Fun Status: Entry Allowed Enter password: exit Status: Entry Rejected
Also Read:
Python While Loops
Câu lệnh pass
Về cơ bản, pass có thể được hiểu như là “không có gì”. Nó dường như chỉ được để cho có.
while expression:
pass
Khi thực hiện các lệnh trong vòng lặp (và cả hàm) , nó sẽ xem lệnh pass này như là “vô hình”. Nhưng nó sẽ giúp tránh lỗi nếu như vòng lặp (hàm) của bạn không có bất kì một lệnh nào.
Ví dụ:
>>> a = 3 >>> b = 4 >>> while a > 0: ... a -= 1 ... pass ... b += 1 ... >>> b 7 >>> >>> while a > 0: ... File "
", line 2 ^ IndentationError: expected an indented block after 'while' statement on line 1 >>> while a > 0: ... pass ... >>>
Đặ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.
Thảo luận
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ên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.
Nội dung bài viết
Khóa học
Lập trình Python cơ bản
Đánh giá
Bình luận
Câu 2:
with open(‘draft.txt’,’r’) as biendem:
bien = 1
filemoi=”
while bien <5:
biendem1 = biendem.readline().split()
change=biendem1.index(‘Kteam’)
biendem1[change-1] = ‘HOW’
print(biendem1)
filemoi += ‘ ‘.join(biendem1) + ‘\n’
bien +=1
with open(‘Bteam.txt’,’w’) as output:
output.write(filemoi)
câu 1 :
a = []
k = 1
while k <= 10:
k +=1
if k % 2 == 0:
a.append(k)
continue
if len(a) == 5:
break
print(a)
mình làm bài tập 24 y chang nhưng sử dụng sublime text ko chạy nhưng sử dụng visual code thì chạy. có cách nào chạy trên sublime text ko. cám ơn
Câu 3:
mang = [56, 14, 11, 756, 34, 90, 11, 11, 65, 0, 11, 35]k=0mang1=[]mang2=[]while k < len(mang):if mang[k] !=11:mang1.append(mang[k])else:mang2.append(k)k+=1mang1.sort()i=0while i < len(mang2):mang1.insert(mang2[i],11)i+=1print(mang1)
#Cau 2 bai While loop
with open(‘draft01.txt’) as filebt:
lst = list(filebt)
filemoi = ”
for data in lst:
data2 = data.split()
for ind in range(len(data2)):
if data2[ind] == ‘Kteam’:
data2[ind-1] = ‘How’
dongmoi = ‘ ‘.join(data2)
filemoi = f'{dongmoi}’
print(filemoi)
with open(‘kteam.txt’, ‘w’) as complete:
print(complete.write(filemoi))
#Cau 3 bai While loop
mangnguyen = [56, 14, 11, 756, 34, 90, 11, 11, 65, 0, 11, 35]
vitri11 = []
mangmoi = []
for i in range(len(mangnguyen)):
if mangnguyen[i] != 11:
mangmoi.append(mangnguyen[i])
mangmoi.sort()
else:
vitri11.append(mangnguyen.index(11, i))
for j in vitri11:
mangmoi.insert(j, 11)
print(mangmoi)
StudySmarter – The all-in-one study app.
4.8 • +11k Ratings
More than 3 Million Downloads
Free
In the world of programming, control structures play a crucial role in determining the flow of code execution. Python, a widely used programming language, provides programmers with several control structures, one of which is the Python while else loop. This article aims to introduce you to the while else loop in Python, enabling you to understand its syntax, usage, and its difference from other loop constructs. As we delve deeper into the topic, we will explore how Python’s while else statement works and discuss scenarios where it can be practically implemented, such as user input validation and creating authentication systems. Furthermore, we will compare the while else loop with another popular construct: while else break in Python. Understanding these concepts will not only build your repertoire of programming techniques but will also equip you to solve real-world problems effectively, helping you become a proficient Python programmer.
Lerne mit deinen Freunden und bleibe auf dem richtigen Kurs mit deinen persönlichen Lernstatistiken
Jetzt kostenlos anmelden
Nie wieder prokastinieren mit unseren Lernerinnerungen.
Jetzt kostenlos anmelden
In the world of programming, control structures play a crucial role in determining the flow of code execution. Python, a widely used programming language, provides programmers with several control structures, one of which is the Python while else loop. This article aims to introduce you to the while else loop in Python, enabling you to understand its syntax, usage, and its difference from other loop constructs. As we delve deeper into the topic, we will explore how Python’s while else statement works and discuss scenarios where it can be practically implemented, such as user input validation and creating authentication systems. Furthermore, we will compare the while else loop with another popular construct: while else break in Python. Understanding these concepts will not only build your repertoire of programming techniques but will also equip you to solve real-world problems effectively, helping you become a proficient Python programmer.
Python provides valuable tools for managing the flow of your program through loops, such as while and for loops. The while loop keeps iterating as long as a given condition is True. Another useful structure within loops is the else block, which is executed once the condition is no longer true. In this article, you will learn all about the Python while else loop, its syntax, and how it works.
In Python, the while else statement is a combination of a while loop with an else block. The while loop executes a block of code as long as its given condition remains true. Once the condition becomes false, the loop stops, and the else block is executed. This structure provides a robust way to control the flow and termination of a loop, allowing for better readability and organization in your code.
The Python while else loop is an extension of the while loop with an else block that executes when the while’s condition is no longer true.
Let us now explore the syntax of the Python while else loop:
while condition: # Code to be executed when the condition is True else: # Code to be executed when the condition becomes False
Here is a breakdown of this syntax:
Let us consider a simple example demonstrating the Python while else loop in action:
count = 1 while count <= 5: print(“Count: “, count) count += 1 else: print(“The loop has ended.”)
In this example, the while loop will execute as long as the ‘count’ variable is less than or equal to 5. After each iteration, the value of ‘count’ is incremented by 1. When the count exceeds 5, the loop terminates, and the else block is executed, printing “The loop has ended.” The output of this code will be:
Count: 1 Count: 2 Count: 3 Count: 4 Count: 5 The loop has ended.
Example: Imagine you want to create a program that prints the Fibonacci sequence up to a specific number. You could use a while else loop to do this:
a, b = 0, 1 max_fib = 100 while a <= max_fib: print(a, end=’ ‘) a, b = b, a + b else: print(“\nThe Fibonacci sequence has ended.”)
This example prints the Fibonacci sequence up to 100 and then displays “The Fibonacci sequence has ended” after completing the loop.
A deep dive into the use of break and continue statements with Python while else loops: The break statement is used to terminate the loop prematurely and exit the loop without executing the else block. On the other hand, the continue statement skips the remaining code within the loop block for the current iteration and jumps back to the start of the loop to check the condition again. You can use these statements within a while else loop to control the flow more efficiently.
In this section, we will discuss some practical examples where the Python while else loop can be beneficial in solving real-world problems. By understanding these use cases, you will gain a deeper understanding of the versatility and applicability of the Python while else loop.
One common use case for the Python while else loop is validating user input. This approach ensures that users enter correct and acceptable data, thus improving the overall performance and reliability of the application. For instance, you can use a while else loop to validate user input for:
In the following example, we will demonstrate user input validation using a Python while else loop:
tries = 3 while tries > 0: password = input(“Enter your password: “) if password == ‘correct_password’: print(“Password Accepted.”) break else: tries -= 1 print(“Incorrect password. Tries remaining: “, tries) else: print(“Too many incorrect password attempts. Access denied.”)
In this example, the user is prompted to enter a password. The application provides three tries to enter the correct password. If the user enters the correct password within the three attempts, the loop breaks, and the system displays “Password Accepted.” If the user exhausts all three attempts, the loop stops, and the else block is executed, printing “Too many incorrect password attempts. Access denied.”
Integrating an authentication system into a Python application is important to secure user data and control access to sensitive information. In this example, we demonstrate how to create a simple authentication system using the Python while else loop:
username_db = ‘john_doe’ password_db = ‘secure123’ while True: username = input(“Enter your username: “) password = input(“Enter your password: “) if username == username_db and password == password_db: print(“Authenticated! Welcome, ” + username + “!”) break else: retry = input(“Invalid credentials. Would you like to try again? (y/n): “) if retry.lower() != ‘y’: break else: print(“Leaving the authentication system.”)
In this example, the authentication system continuously prompts the user to enter their username and password until they provide valid credentials. The usernames and passwords are hardcoded for demonstration purposes but would ideally be stored securely in a database. If the entered credentials are correct, the loop terminates with a “break” statement, and the system prints “Authenticated! Welcome, ” and the username. If the user decides not to retry after entering incorrect credentials, the loop will also terminate, skipping the else block. The program will only display “Leaving the authentication system.” if the user decides to terminate the loop after an incorrect input.
Understanding the key differences between the Python while else loop and using break statements is crucial for better control of your code’s flow. The use of while loops, else blocks, and break statements primarily affects how loops terminate or continue. This section will provide a comprehensive comparison between these elements to clarify their usage and interactions.
In Python, the while loop, else block, and break statement serve distinct purposes, yet they are interconnected in enhancing a program’s control structure. The following comparison will address their distinct functionalities:
Now, let us compare their functionality and behaviour in different situations:
Situation | While Loop | Else Block | Break Statement |
Normal loop termination | Stops when the condition is false. | Gets executed. | Not involved. |
Forced loop termination | Stops when the break statement is encountered. | Does not get executed. | Causes the control to leave the loop. |
Skipping loop iterations | Continues execution if no break statement is reached. | Not involved. | Not involved. (Use a ‘continue’ statement instead.) |
While else break Python structures play significant roles in real-world programming. By understanding their differences and interactions, programmers can effectively manage their code’s flow and logic. The following examples showcase practical applications of while else break in Python:
These examples showcase how the while else break Python structures collectively enhance program flow and termination control. With a solid understanding of their differences and interactions, programmers can effectively implement them in real-world scenarios for more robust and efficient code.
while condition: # Code to be executed when the condition is True else: # Code to be executed when the condition becomes False
YOUR SCORE
Your score:
Already have an account? Log in
SIGNUP SIGNUP
What does a Python While Else Loop do?
Executes a block of code as long as a condition is true and runs an alternative block of code when the condition becomes false.
What is the main purpose of the ‘else’ statement in a Python While Else Loop?
To provide a block of code to execute when the loop’s condition becomes false.
How does the ‘break’ statement affect a Python While Else Loop?
It allows you to terminate the loop earlier based on specific conditions, skipping the execution of the ‘else’ block.
What happens if a ‘break’ statement is used in a ‘while True’ loop with an ‘else’ block?
The ‘else’ block will not be executed as ‘break’ jumps out of the loop directly.
In a Python While Else Loop, when does the ‘else’ block execute?
The ‘else’ block executes when the loop’s condition becomes false and no ‘break’ statement was encountered.
What is the purpose of Python’s while-else loop statement?
The purpose of Python’s while-else loop statement is to repeatedly execute a block of code while a given condition is true, and once the condition is false, the code inside the else block is executed.
Already have an account? Log in
Open in App
The first learning app that truly has everything you need to ace your exams in one place
Sign up to highlight and take notes. It’s 100% free.
Save explanations to your personalised space and access them anytime, anywhere!
Sign up with Email Sign up with Apple
By signing up, you agree to the Terms and Conditions and the Privacy Policy of StudySmarter.
Already have an account? Log in
In Python, we use the
while
loop to repeat a block of code until a certain condition is met. For example,
number = 1 while number <= 3: print(number) number = number + 1
Output
1 2 3
In the above example, we have used a
while
loop to print the numbers from 1 to 3. The loop runs as long as the condition
number <= 3
is satisfied.
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.
>>> s = 'How Kteam' >>> idx = 0 # vị trí bắt đầu bạn muốn xử lí của chuỗi >>> length = len(s) # lấy độ dài chuỗi làm mốc kết thúc >>> >>> while idx < length: ... print(idx, 'stands for', s[idx]) ... idx += 1 # di chuyển index tới vị trí tiếp theo ... 0 stands for H 1 stands for o 2 stands for w 3 stands for 4 stands for K 5 stands for t 6 stands for e 7 stands for a 8 stands for m
Đơn giản phải không nào. List và Tuple hoàn toàn tương tự.
Nội dung
Để đọc hiểu bài này tốt nhất bạn cần:
- Cài đặt sẵn MÔI TRƯỜNG PHÁT TRIỂN CỦA PYTHON.
- Xem qua bài CÁCH CHẠY CHƯƠNG TRÌNH PYTHON.
- Nắm CÁCH GHI CHÚ và BIẾN TRONG PYTHON.
- CÁC KIỂU DỮ LIỆU ĐƯỢC GIỚI THIỆU TRONG PYTHON
- CÂU ĐIỀU KIỆN IF TRONG PYTHON
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
Vòng lặp while trong Python
While Python có chức năng gì? Cách dùng vòng lặp while trong Python như thế nào? Hãy cùng Quantrimang.com tìm hiểu nhé!
Lập trình hiện đang là thuộc top những ngành nghề được săn đón và có mức lương cao hiện nay. Tất cả bởi lập trình là một phần không thể thiếu trong hành trình phát triển khoa học, công nghệ của một quốc gia. Nhờ có lập trình mà nhiều sản phẩm, ứng dụng hữu ích đã ra đời.
Loop hay vòng lặp là tính năng hữu ích và được sử dụng thường xuyên trong tất cả ngôn ngữ lập trình hiện đại ngày nay. Nếu muốn tự động hóa tác vụ lặp lại cụ thể hay ngăn bản thân viết code trùng lặp trong chương trình đang phát triển, dùng vòng lặp là lựa chọn tốt nhất.
Loop là một tập hợp các hướng dẫn chạy lặp lại cho tới khi điều kiện được đáp ứng. Trong Python, bạn có hai kiểu vòng lặp:
- Vòng lặp for
- Vòng lặp while
Ở bài viết này, chúng ta sẽ học cách tạo hàm while trong Python và tìm hiểu cách thức hoạt động của nó.
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
while expression:
# while-block
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 expression. 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 expression 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 expression như những lần trước.
Ví dụ:
>>> k = 5 >>> >>> while k > 0: ... print('k =', k) ... k -= 1 ... k = 5 k = 4 k = 3 k = 2 k = 1 >>> k # k bằng 0 nên > 0 là một boolean False, do đó vòng lặp đã kết thúc 0
Flowchart of Python while Loop
Example: Python while Loop
# Calculate the sum of numbers until user enters 0 number = int(input('Enter a number: ')) total = 0 # iterate until the user enters 0 while number != 0: total += number number = int(input('Enter a number: ')) print('The sum is', total)
Output
Enter a number: 3 Enter a number: 2 Enter a number: 1 Enter a number: -4 Enter a number: 0 The sum is 2
Here is how the above program works:
- It asks the user to enter a number.
-
If the user enters a number other than 0, it adds the number to the
total
and asks the user to enter a number again. - If the user enters 0, the loop terminates and the program displays the total.
Python while else statement example
Suppose that we have the following list of fruits where each fruit is a dictionary that consists of the
fruit
name and
qty
keys:
basket = [ {'fruit': 'apple', 'qty': 20}, {'fruit': 'banana', 'qty': 30}, {'fruit': 'orange', 'qty': 10} ]
Code language: JavaScript (javascript)
We want to make a program that allows the users to enter a fruit name. Based on the input name, we’ll search for it from the
basket
list and show its quantity if the fruit is on the list.
In case the fruit is not found, we’ll allow users to enter the quantity for that fruit and add it to the list.
The following program is the first attempt:
basket = [ {'fruit': 'apple', 'qty': 20}, {'fruit': 'banana', 'qty': 30}, {'fruit': 'orange', 'qty': 10} ] fruit = input('Enter a fruit:') index = 0 found_it = False while index < len(basket): item = basket[index] # check the fruit name if item['fruit'] == fruit: found_it = True print(f"The basket has {item['qty']} {item['fruit']}(s)") break index += 1 if not found_it: qty = int(input(f'Enter the qty for {fruit}:')) basket.append({'fruit': fruit, 'qty': qty}) print(basket)
Code language: PHP (php)
Note that there’s better way to develop this program. The program in this example is solely for the demonstration purpose.
How it works:
-
First, prompt for an user input by using the
input()
function. -
Second, initialize the
index
to zero and
found_it
flag to
False
. The
index
will be used for accessing the list by index. And the
found_it
flag will be set to
True
if the fruit name will be found. -
Third, iterate over the list and check if the fruit name matched with the input name. If yes, set the
found_it
flag to
True
, show the fruit’s quantity, and exit the loop by using the
break
statement. -
Finally, check the
found_it
flag after the loop and add the new fruit to the list if the
found_it
is
False
.
The following runs the program when apple is the input:
Enter a fruit:apple The basket has 20 apple(s)
Code language: CSS (css)
And the following runs the program when lemon is the input:
Enter a fruit:lemon Enter the qty for lemon:15 [{'fruit': 'apple', 'qty': 20}, {'fruit': 'banana', 'qty': 30}, {'fruit': 'orange', 'qty': 10}, {'fruit': 'lemon', 'qty': 15}]
Code language: CSS (css)
The program works as expected.
However, it’ll be more concise if you use the
while else
statement instead.
The following shows the new version of the program that uses the
while else
statement:
basket = [ {'fruit': 'apple', 'qty': 20}, {'fruit': 'banana', 'qty': 30}, {'fruit': 'orange', 'qty': 10} ] fruit = input('Enter a fruit:') index = 0 while index < len(basket): item = basket[index] # check the fruit name if item['fruit'] == fruit: print(f"The basket has {item['qty']} {item['fruit']}(s)") found_it = True break index += 1 else: qty = int(input(f'Enter the qty for {fruit}:')) basket.append({'fruit': fruit, 'qty': qty}) print(basket)
Code language: PHP (php)
In this program, the
else
clause replaces the need of having the
found_it
flag and the
if
statement after the loop.
If the fruit is not found, the
while
loop is terminated normally and the
else
clause will be executed to add a new fruit to the list.
However, if the fruit is found, the
while
loop will be encountered the
break
statement and terminated prematurely. In this case, the
else
clause won’t be executed.
Infinite while Loop
If the condition of a
while
loop is always
True
, the loop runs for infinite times, forming an infinite while loop. For example,
age = 32 # the test condition is always True while age > 18: print('You can vote')
Output
You can vote You can vote You can vote . . .
The above program is equivalent to:
age = 32 # the test condition is always True while True: print('You can vote')
The while Loop
With the while loop we can execute a set of statements as long as a condition is true.
Example
Print i as long as i is less than 6:
while i < 6:
print(i)
i += 1
Note: remember to increment i, or else the loop will continue forever.
The while loop requires relevant variables to be ready, in this example we need to define an indexing variable, i, which we set to 1.
Lệnh break trong while
Với câu lệnh
break
, chúng ta có thể dừng vòng lặp ngay cả khi điều kiện của
while
là True:
Ví dụ: Thoát vòng lặp khi i bằng 3:
i = 1 while i < 6: print(i) if i == 3: #kiểm tra điều kiện xem i bằng 3 hay chưa break i += 1 #cập nhật biến đếm
Kết quả của ví dụ trên là i sẽ được in từ số 1 đến số 3, sau khi in xong số 3 gặp lệnh if và vòng lặp sẽ dừng lại (không in tiếp số 4, 5):
1 2 3
Cú pháp của while trong Python
while dieu_kien: Khối lệnh của while
Trong vòng lặp while,
dieu_kien
sẽ được kiểm tra đầu tiên, nếu nó là True, thì khối lệnh của vòng lặp sẽ được thực thi. Sau một lần lặp,
dieu_kien
sẽ được kiểm tra lại và quá trình lặp này sẽ chỉ dừng cho đến khi điều kiện là False.
Trong Python mọi giá trị khác 0 đều là True, None và 0 được hiểu là False. Đặc điểm này có thể dẫn đến trường hợp là
while
có thể không chạy vì ngay lần lặp đầu tiên
dieu_kien
đã False. Khi đó, khối lệnh của
while
sẽ bị bỏ qua và phần code dưới khối lệnh
while
sẽ được thực thi.
Sơ đồ vòng lặp while trong Python
Giống như if hay vòng lặp for, khối lệnh của
while
cũng được xác định thông qua thụt lề. Khối lệnh bắt đầu với thụt lề đầu tiên và kết thúc với dòng không thụt lề đầu tiên liền sau khối.
Ví dụ: In lần lượt các số nhỏ hơn 8
#In và đếm các số từ 0 tới 8: count = 1 n = 0 while (n < 8): print ('Số thứ', count,' là:', n) n = n + 1 count = count + 1 print ("Hết rồi!")
Với đoạn code này, ta sẽ tăng dần count và in giá trị của n cho đến khi n không còn nhỏ hơn 8 nữa. Kết quả khi chạy lệnh trên ta có:
Số thứ 1 là: 0 Số thứ 2 là: 1 Số thứ 3 là: 2 Số thứ 4 là: 3 Số thứ 5 là: 4 Số thứ 6 là: 5 Số thứ 7 là: 6 Số thứ 8 là: 7 Hết rồi!
Lưu ý:
-
Hãy nhớ tăng biến điều kiện trong
while
(trong ví dụ trên là n), nếu không vòng lặp sẽ trở thành vòng lặp vô hạn – tiếp tục lặp mãi mãi. -
Vòng lặp
while
yêu cầu biến trong điều kiện phải là giá trị xác định, trong ví dụ trên biến lập chỉ mục lặp là biến n, chúng ta phải đặt giá trị ban đầu cho nó là 1.
Ví dụ: Tính tổng các số
n = int(input("Nhập n: ")) #Nhập số n tùy ý tong = 0 #khai báo và gán giá trị cho tong i = 1 #khai báo và gán giá trị cho biến đếm i while i <= n: tong = tong + i i = i+1 # cập nhật biến đếm print("Tổng là", tong)
Với khối lệnh trên ta có, nhập một số tự nhiên n bất kỳ và tính tổng các số từ 1 đến n, sau đó in tổng. Biến lưu trữ tổng là tong, biến đếm là i, cho đến khi i còn nhỏ hơn hoặc bằng n thì vòng lặp vẫn tiếp tục và tong vẫn tăng.
Sau khi chạy lệnh ta có kết quả:
Nhập n: 11 Tổng là 66
Trong ví dụ trên biến đếm i cần phải được tăng giá trị, điều này là rất quan trọng, nếu không sẽ dẫn đến một vòng lặp vô hạn. Rất nhiều trường hợp lưu ý này đã bị lãng quên.
Ví dụ 3: Vòng lặp vô hạn
Lấy lại ví dụ trên, bạn chỉ cần bỏ đi dòng
i=i+1
n = int(input("Nhập n: ")) #Nhập số n tùy ý tong = 0 #khai báo và gán giá trị cho tong i = 1 #khai báo và gán giá trị cho biến đếm i while i <= n: tong = tong + i print("Tổng là", tong)
Khi này chạy lệnh ta sẽ được:
Nhập n: 1 Traceback (most recent call last): File "C:/Users/Quantrimang.com/Programs/Python/Python36-32/QTM.com", line 6, in
tong = tong + i KeyboardInterrupt 2 3 4 5
Khi bạn nhập giá trị 1 vào thì thấy không có lệnh nào được thực hiện tiếp, nhấn Enter > nhập 2 > Enter > nhập 3… đến 5 vẫn không thấy tong được in. Đây là một trường hợp của lệnh vô hạn. Để thoát khỏi vòng lặp vô hạn bạn nhấn phím Ctrl + C, khi đó sẽ xuất hiện dòng thông báo “Traceback…” như bên trên.
Example
A simple example for While-Else
In this example, we will write else block for while loop statement.
Python Program
Run Code Copy
i = 0 while i < 5: print(i) i += 1 else: print('Printing task is done.')
Output
0 1 2 3 4 Printing task is done.
While-Else with file reading
In this example, we will use else block after while block to close the file we read line by line in the while block.
Python Program
Copy
f = open("sample.txt", "r") while True: line = f.readline() if not line: break print(line.strip()) else: f.close
Output
Hi User! Welcome to Python Examples. Continue Exploring.
Kiểm tra kiến thức vòng lặp while trong Python
Tóm lại những điều cần biết về lệnh while trong Python:
- Bắt đầu vòng lặp while bằng cách dùng từ khóa while.
- Sau đó, bạn thêm một điều kiện là biểu thức Boolean. Một biểu thức Boolean đánh giá giá trị là true hoặc false.
- Điều được được theo sau bởi dấu hai chấm (:).
- Trên dòng mới, bạn thêm một cấp độ thụt lề. Nhiều trình chỉnh sửa code sẽ tự động làm việc này cho bạn. Ví dụ, khi dùng Visual Studio Code với tiện ích mở rộng Python, ngay sau khi viết dấu hai chấm và nhấn Enter, nó sẽ tự động thụt lề code về bên phải.
- Code bạn muốn sẽ nằm ở phần nội dung của lệnh while.
- Điều kiện while đánh giá true, code bên trong phần nội dung của while sẽ chạy. Phần code này sẽ tiếp tục chạy cho tới khi điều kiện không còn được đáp ứng và đánh giá là false.
Do while trong Python có thể gây bối rối với người mới bắt đầu sử dụng. Tuy nhiên, một khi bạn đã hiểu khái niệm vòng lặp, bạn sẽ nhận ra rằng “while” trước “loop” của Python chỉ là một câu lệnh điều kiện.
Một lệnh điều kiện tuân theo vòng lặp while. Nó quyết định điều xảy ra trong vòng lặp. Trong khi điều kiện đó vẫn là True, biểu thức trong vòng lặp vẫn liên tục được thực thi.
Nhìn chung, vòng lặp được sử dụng khi bạn cần xử lý từng nhân tố trong danh sách hoặc mảng khi lập trình. Một vòng lặp while cũng liên tục chạy cho tới khi một lệnh trong vòng lặp đó dừng lại.
Vòng lặp while trong Python có một số hạn chế khi xử lý một bộ sưu tập mảng. Thực tế, khác vòng lặp for, vòng lặp while không cung cấp tính đặc hiệu trong câu lệnh điều khiển. Tuy nhiên, vòng lặp while có những ứng dụng riêng, vì thế, nắm rõ cách dùng nó khi lập trình là hoàn toàn cần thiết.
Trên đây là những điều cần biết về do while trong Python. Hi vọng bài viết giúp bạn biết cách dùng tốt vòng lặp này.
Lệnh while trên một dòng
Nếu vòng lặp
while
chỉ có một lệnh duy nhất thì có thể viết trên cùng một dòng với
while
như ví dụ này:
Ví dụ: Vòng lặp vô hạn với while một dòng lệnh
flag = 1 while (flag): print ('Flag đã cho là True!") Print ("Hẹn gặp lại!")
Đây là một vòng lặp vô hạn, hãy nhớ tổ hợp phím Ctrl + C trước khi bạn nhấn F5 hay Run, nếu không nó sẽ chạy từ ngày này qua ngày khác đấy =)).
Summary
-
The
else
clause in the
while else
statement will execute when the
condition
of the
while
loop is
False
and the loop runs normally without encountering the
break
or
return
statement. -
Try the Python
while else
statement whenever you need to have a flag in a
while
loop.
I’ve noticed the following code is legal in Python. My question is why? Is there a specific reason?
n = 5 while n != 0: print n n -= 1 else: print "what the..."
Many beginners accidentally stumble on this syntax when they try to put an
if
/
else
block inside of a
while
or
for
loop, and don’t indent the
else
properly. The solution is to make sure the
else
block lines up with the
if
, assuming that it was your intent to pair them. This question explains why it didn’t cause a syntax error, and what the resulting code means. See also I’m getting an IndentationError. How do I fix it?, for the cases where there is a syntax error reported.
See also Why does python use ‘else’ after for and while loops? for questions about how to make good use of the feature.
Vòng lặp While trong Python
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.
Ví dụ *:
>>> five_even_numbers = [] >>> k_number = 1 >>> >>> while True: # vòng lặp vô hạn vì giá trị này là hằng nên ta không thể tác động được ... if k_number % 2 == 0: # nếu k_number là một số chẵn ... five_even_numbers.append(k_number) # thêm giá trị của k_number vào list ... if len(five_even_numbers) == 5: # nếu list này đủ 5 phần tử ... break # thì kết thúc vòng lặp ... k_number += 1 ... >>> five_even_numbers [2, 4, 6, 8, 10] >>> k_number 10
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:
while expression:
#while-block-1
continue
#while-block-2
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.
Ví dụ:
>>> k_number = 1 >>> while k_number < 10: ... if k_number % 2 == 0: # nếu k_number là số chẵn ... k_number += 1 # thì tăng một đơn vị cho k_number và tiếp tục vòng lặp ... continue ... print(k_number, 'is odd number') ... k_number += 1 ... 1 is odd number 3 is odd number 5 is odd number 7 is odd number 9 is odd number
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:
while expression:
# while-block
else:
# else-block
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.
Ví dụ:
>>> while k < 3: ... print('value of k is', k) ... k += 1 ... else: ... print('k is not less than 3 anymore') ... value of k is 0 value of k is 1 value of k is 2 k is not less than 3 anymore
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.
>>> k = 0 >>> while k < 5: ... print('value of k is', k) ... k += 1 ... if k > 3: ... print('k is greater than 3') ... break ... else: ... print('k is not less than 5 anymore') ... value of k is 0 value of k is 1 value of k is 2 value of k is 3 k is greater than 3
Hiện tượng vòng lặp vô tận
Các bạn cần lưu ý là, đối với vòng lặp while, trong nhiều trường hợp, bạn có thể sẽ không biết trước số lần lặp, và có thể sẽ có nhiều lỗi không mong muốn. Điển hình nhất là vòng lặp vô tận:
>>> a = 5 >>> while a != 0: ... a -= 2
Đoạn code trên sẽ chạy mãi mãi mà không bao giờ dừng lại. Lí do là vì giá trị của biến a sẽ không bao giờ bằng 0.
Đối với những người mới học, cần nắm bắt rõ cách hoạt động của vòng lặp while để tránh các lỗi không đáng có.
Lệnh continue trong while
Câu lệnh
continue
trong
while
sẽ khiến cho vòng lặp bỏ qua lần lặp hiện tại và tiếp tục chạy ở lần lặp tiếp theo.
Ví dụ: In các số từ 1 đến 6 ngoại trừ số 3
i = 0 while i < 6: i += 1 if i == 3: continue print(i)
Trong 2 vòng lặp đầu tiên i bằng 1 và 2 thì vòng lặp vẫn chạy lệnh in. Tới vòng lặp tiếp theo, phù hợp với điều kiện
if
i bằng 3 thì sẽ chạy lệnh
continue
=> bỏ qua vòng lặp đó để chạy thẳng sang vòng lặp kế sau nó (in số 4, 5, 6).
Kết quả đầu ra:
1 2 4 5 6
Keywords searched by users: while else python 3
Categories: Sưu tầm 79 While Else Python 3
See more here: kientrucannam.vn
See more: https://kientrucannam.vn/vn/