از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
ساختار حلقه For-Else پایتون چگونه کار می کند؟
سرفصلهای مطلب
پایتون از ساختار حلقه for-else که کمتر شناخته شده اما فوق العاده مفید است، پشتیبانی می کند.
اگر در پایتون برنامه نویسی کرده اید، ممکن است از آن استفاده کرده باشید for
حلقه برای تکرار بر روی آیتم های تکرارپذیر مانند لیست ها. اما برای برخی موارد استفاده از حلقه for همراه با else
بند می تواند مفید باشد.
در این آموزش، روش استفاده از حلقههای for-else را با کدنویسی چند مثال برای درک روش عملکرد آنها یاد خواهیم گرفت.
نحو از for-else
در پایتون حلقه بزنید
در پایتون، for-else
حلقه ساختاری است که a را ترکیب می کند for
حلقه با یک else
عبارت.
بدنه حلقه معمولاً یک وضعیت را بررسی می کند. اگر شرط باشد True
، کنترل از حلقه خارج می شود. این else
بلوک فقط زمانی اجرا می شود که for
حلقه به طور معمول بدون مواجهه با a کامل می شود break
بیانیه.
بیایید به یک ژنریک نگاه کنیم for-else
ساختار حلقه:
for item in iterable:
# loop body
if condition:
break
else:
# else body
در اینجا خلاصه ای از روش کار این است:
- این
for
حلقه روی هر یک از آیتم ها تکرار می شودiterable
. - اگر
condition
استTrue
و کنترل از حلقه خارج می شود، theelse
بلوک حذف شده است. - اگر
for
حلقه روی همه آیتم ها تکرار می شودiterable
—بدون برآورده شدن شرط خروج از حلقه—theelse
بلوک اجرا می شود.
حالا اجازه دهید چند مثال را کدنویسی کنیم.
مثال 1: پیدا کردن یک عدد اول
بیایید استفاده کنیم for-else
حلقه برای بررسی اول بودن یک عدد. همانطور که ممکن است به خاطر داشته باشید، عددی اول است که فقط بر 1 و خودش بخش پذیر باشد و هیچ عامل دیگری نداشته باشد.
به قطعه کد زیر نگاه کنید:
import math
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(math.sqrt(n))+ 1):
if n % i == 0:
print(f"{n} is divisible by {i}. Not a prime number.")
break
else:
# This block executes if the loop did not encounter a break statement
print(f"{n} is a prime number.")
return True
اینجا is_prime()
تابع ابتدا شماره ورودی را بررسی می کند n
کمتر یا مساوی 1 است. اگر چنین است، برمی گردد False
از آنجایی که اعداد اول بزرگتر از 1 هستند. به یاد داشته باشید که کوچکترین عدد اول 2 است.
ما استفاده می کنیم for
حلقه برای تکرار در محدوده اعداد از 2 تا مربع root از n
(شامل).
- اگر
n
بر هر کدام بخش پذیر استi
در این محدوده (2√n
)، به این معنیn
یک عدد اول نیست، زیرا ما یک عامل پیدا کرده ایم. تابع یک پیام را چاپ می کند و از حلقه خارج می شود. وelse
بلوک حذف شده است. - اگر حلقه بدون یافتن هیچ عاملی کامل شود – بدون زدن a
break
بیانیه –else
بلوک اجرا می شود تابع آن را چاپ می کندn
یک عدد اول است و برمی گرددTrue
.
می توانید تأیید کنید که is_prime()
تابع با چند فراخوانی تابع همانطور که انتظار می رود کار می کند:
# Test with a non-prime number
is_prime(10)
# Output: 10 is divisible by 2. Not a prime number.
# Test with a prime number
is_prime(13)
# Output: 13 is a prime number.
📑 یک یادداشت روی بررسی اعداد اول
احتمالاً حلقه را روی همه اعداد از 2 تا اجرا می کنید n
برای بررسی اینکه آیا عاملی وجود دارد. اما در واقع برای تکرار تا حد کافی کافی است مربع root از n
. چرا؟
به یاد بیاورید که اگر p
یک عامل است، شما همیشه می توانید پیدا کنید q
به طوری که p x q = n
:
- اگر
n
پس یک مربع کامل استp = q
. - اگر
n
مربع کاملی نیست، شما موارد زیر را دارید. اگرp
کمتر است از√n
،q
بزرگتر است از√n
. و اگرq
بزرگتر است از√n
،p
کمتر است از√n
.
💡 پس اگر فاکتوری تا √n
، شما نمی توانید آن را پیدا کنید √n
یا
مثال 2: جستجوی یک آیتم در لیست
بیایید مثال دیگری بزنیم که در آن for-else
حلقه مفید است.
به شرح زیر search item()
تابع یک لیست و یک آیتم می گیرد. هدف این است که موارد موجود در لیست را حلقه بزنید و بررسی کنید که آیا آیتم وجود دارد یا خیر. برای این مشکل می توانید از ساختار حلقه for-else مانند زیر استفاده کنید:
def search_item(lst, item):
for i in lst:
if i == item:
print(f"Found {item} in the list.")
break
else:
print(f"{item} is not in the list.")
اگر item
یافت می شود که کنترل از حلقه خارج می شود. این else
مسدود کردن تنها در صورتی فعال می شود که مورد در لیست یافت نشود.
بیایید با چند فراخوانی تابع را تأیید کنیم:
# Test with a list containing the item
search_item([1, 2, 3, 4, 5], 3)
# Output: Found 3 in the list.
# Test with a list not containing the item
search_item([1, 2, 3, 4, 5], 6)
# Output: 6 is not in the list.
بسته بندی
امیدوارم این آموزش را پیدا کرده باشید روی را for-else
ساخت حلقه در پایتون مفید است.
این می تواند مفید باشد، به خصوص زمانی که خروج از حلقه پس از تکرار روی همه موارد – بدون خروج زودتر از حلقه – مورد توجه است. گفتنی است، اگر نیازی به خروج مشروط از حلقه ندارید، به a نیاز ندارید for-else
حلقه، و ساده for
حلقه کافی خواهد بود.
به کدنویسی ادامه دهید. تا آموزش بعدی!
منتشر شده در 1403-06-19 20:49:07