معرفی کلمات کلیدی در پایتون
هر زبان برنامه نویسی دارای کلمات رزرو شده یا کلمات کلیدی ویژه ای است که معانی و محدودیت های خاصی در مورد نحوه استفاده از آنها دارند. پایتون تفاوتی ندارد. کلمات کلیدی پایتون بلوک های اساسی هر برنامه پایتون هستند.
در این مقاله، یک مقدمه اولیه برای همه کلمات کلیدی پایتون به همراه منابع دیگر پیدا خواهید کرد که برای یادگیری بیشتر در مورد هر کلمه کلیدی مفید خواهد بود.
# کلمات کلیدی در پایتون
کلمات کلیدی پایتون کلمات رزرو شده خاصی هستند که معانی و اهداف خاصی دارند و نمیتوان آنها را برای چیزی جز این اهداف خاص استفاده کرد. این کلمات کلیدی همیشه در دسترس هستند - شما هرگز مجبور نخواهید بود آنها را در کد خود وارد کنید.
کلمات کلیدی پایتون با توابع و انواع داخلی پایتون متفاوت است. توابع و انواع داخلی نیز همیشه در دسترس هستند، اما در استفاده از آنها به اندازه کلمات کلیدی محدود کننده نیستند.
نمونه ای از کاری که نمی توانید با کلمات کلیدی پایتون انجام دهید این است که چیزی به آنها اختصاص دهید. اگر امتحان کنید، یک SyntaxError دریافت خواهید کرد. اگر بخواهید چیزی را به یک تابع یا نوع داخلی اختصاص دهید، SyntaxError دریافت نمی کنید، اما هنوز هم ایده خوبی نیست.
از پایتون 3.8، سی و پنج کلمه کلیدی در پایتون وجود دارد.
False |
await |
else |
import |
pass |
None |
break |
except |
in |
raise |
True |
class |
finally |
is |
return |
and |
continue |
for |
lambda |
try |
as |
def |
from |
nonlocal |
while |
assert |
del |
global |
not |
with |
async |
elif |
if |
or |
yield |
بخشهای زیر، کلمات کلیدی پایتون را بر اساس استفاده از آنها به گروههایی سازماندهی میکنند. به عنوان مثال، گروه اول تمام کلمات کلیدی هستند که به عنوان value استفاده می شوند و گروه دوم کلیدواژه هایی هستند که به عنوان عملگر استفاده می شوند. این گروه بندی ها به شما کمک می کند تا نحوه استفاده از کلمات کلیدی را بهتر درک کنید و راه خوبی برای سازماندهی لیست طولانی کلمات کلیدی پایتون ارائه دهید.
دوره پیشنهادی: دوره آموزش پایتون (python)
# کلمات کلیدی نوع value در پایتون: True, Flase, None
سه کلمه کلیدی پایتون وجود دارد که به عنوان مقادیر استفاده می شود. این مقادیر singleton هستند که می توانند بارها و بارها مورد استفاده قرار گیرند و همیشه دقیقاً به همان شی اشاره می کنند. به احتمال زیاد این مقادیر را زیاد می بینید و استفاده می کنید.
+ کلمات کلیدی True و False در پایتون
کلمه کلیدی True به عنوان مقدار واقعی بولی در کد پایتون استفاده می شود. کلمه کلیدی False پایتون مشابه کلمه کلیدی True است، اما با مقدار Boolean مخالف false. در سایر زبان های برنامه نویسی، این کلمات کلیدی را با حروف کوچک (true و false) می بینید، اما در پایتون همیشه با حروف بزرگ نوشته می شوند.
کلمات کلیدی True و False را می توان به متغیرها اختصاص داد و مستقیماً با آنها مقایسه کرد:
>>> x = True
>>> x is True
True
>>> y = False
>>> y is False
True
اکثر مقادیر در پایتون زمانی که به bool () منتقل می شوند، به True ارزیابی می شوند. فقط چند مقدار در پایتون وجود دارد که با ارسال به bool() به False ارزیابی می شود. مثلا: 0، ""، []، و {}. ارسال یک مقدار به bool() درستی مقدار یا مقدار بولی معادل آن را نشان می دهد. شما میتوانید با ارسال مقدار به bool() حقیقت یک مقدار را با True یا False مقایسه کنید.
>>> x = "this is a truthy value"
>>> x is True
False
>>> bool(x) is True
True
>>> y = "" # This is falsy
>>> y is False
False
>>> bool(y) is False
True
توجه داشته باشید که مقایسه یک مقدار حقیقت به طور مستقیم با استفاده از True یا False کار نمی کند. شما باید مستقیماً یک مقدار را با True یا False مقایسه کنید فقط اگر می خواهید بدانید که آیا واقعاً مقادیر True یا False است.
هنگام نوشتن عبارات شرطی که بر اساس درستی یک مقدار است، نباید مستقیماً با True یا False مقایسه کنید. می توانید برای انجام بررسی صحت در شرایط شرطی به پایتون تکیه کنید:
>>> x = "this is a truthy value"
>>> if x is True: # Don't do this
... print("x is True")
...
>>> if x: # Do this
... print("x is truthy")
...
x is truthy
در پایتون، معمولاً نیازی به تبدیل مقادیر به درست یا غلط بودن ندارید. پایتون به طور ضمنی صحت ارزش را برای شما تعیین می کند.
مقاله پیشنهادی: درک Booleanها در پایتون
+ کلمه کلیدی None در پایتون
کلمه کلیدی None پایتون هیچ را نشان می دهد. در سایر زبان های برنامه نویسی، None به صورت null، nil، none، undef یا undefined نمایش داده می شود.
None نیز مقدار پیش فرضی است که توسط یک تابع برگردانده می شود اگر دستور بازگشتی نداشته باشد:
>>> def func():
... print("hello")
...
>>> x = func()
hello
>>> print(x)
None
# کلمات کلیدی نوع عملگر در پایتون: and, or, not, in, is
چندین کلمه کلیدی پایتون به عنوان عملگر استفاده می شود. کد پایتون برای خوانایی طراحی شده است. به همین دلیل است که بسیاری از اپراتورهایی که از نمادها در سایر زبان های برنامه نویسی استفاده می کنند، در پایتون کلمات کلیدی هستند.
مقاله مرتبط: استفاده از عملگر and در پایتون
+ کلمه کلیدی and در پایتون
کلمه کلیدی and پایتون برای تعیین درست یا نادرست بودن هر دو عملوند چپ و راست استفاده می شود. اگر هر دو عملوند صادق باشند، نتیجه True خواهد بود. اگر یکی نادرست باشد، نتیجه False خواهد بود:
<expr1> and <expr2>
توجه داشته باشید که نتایج یک عبارت and لزوما درست یا نادرست نخواهد بود. این به دلیل رفتار عجیب و غریب and است. به جای ارزیابی عملوندها به مقادیر بولی خود، and به سادگی <expr1> را در صورت نادرست بودن برمی گرداند یا <expr2> را برمی گرداند. نتایج یک عبارت and را میتوان به bool() ارسال کرد تا مقدار صریح True یا False را بدست آورد، یا میتوان از آنها در یک دستور if شرطی استفاده کرد.
اگر میخواهید عبارتی را تعریف کنید که همان کار عبارت and را انجام میدهد، اما بدون استفاده از کلمه کلیدی and، میتوانید از عملگر سه تایی پایتون استفاده کنید:
left if not left else right
عبارت بالا همان نتیجه left and right
را ایجاد می کند.
چون and اگر نادرست باشد اولین عملوند را برمی گرداند و در غیر این صورت آخرین عملوند را برمی گرداند، می توانید از and در یک انتساب نیز استفاده کنید:
x = y and z
اگر y نادرست باشد، به x مقدار y اختصاص می یابد. در غیر این صورت، به x مقدار z اختصاص داده می شود. با این حال، این باعث ایجاد کد گیج کننده می شود. یک جایگزین واضح تر و واضح تر این خواهد بود:
x = y if not y else z
این کد طولانیتر است، اما واضحتر نشان میدهد که چه چیزی میخواهید انجام دهید.
مقاله مرتبط: استفاده از عملگر or در پایتون
+ کلمه کلیدی or در پایتون
کلمه کلیدی or پایتون برای تعیین اینکه آیا حداقل یکی از عملوندها درست است یا خیر استفاده می شود. یک دستور or عملوند اول را اگر درست باشد و در غیر این صورت عملوند دوم را برمی گرداند:
<expr1> or <expr2>
درست مانند کلمه کلیدی and کلمه کلیدی or عملوندهای خود را به مقادیر بولی خود تبدیل نمی کند. در عوض، برای تعیین نتایج به درستی آنها متکی است.
اگر می خواهید چیزی مانند عبارت or را بدون استفاده از or بنویسید، می توانید این کار را با عبارت سه تایی انجام دهید:
left if left else right
این عبارت همان نتیجه left or right
را ایجاد می کند.
+ کلمه کلیدی not در پایتون
کلمه کلیدی not پایتون برای بدست آوردن مقدار بولی مخالف یک متغیر استفاده می شود:
>>> val = "" # Truthiness value is `False`
>>> not val
True
>>> val = 5 # Truthiness value is `True`
>>> not val
False
کلمه کلیدی not در عبارات شرطی یا سایر عبارات بولی برای برگرداندن معنی یا نتیجه بولی استفاده می شود. بر خلاف and, or، کلمه not، مقدار بولی صریح، True یا False را تعیین میکند و سپس عکس آن را برمیگرداند.
اگر میخواهید بدون استفاده از not همان رفتار را داشته باشید، میتوانید با عبارت سهگانه زیر این کار را انجام دهید:
True if bool(<expr>) is False else False
ویدیو مرتبط: ویدیو آموزش آبجکت های container در پایتون
+ کلمه کلیدی in در پایتون
کلمه کلیدی in پایتون یک کنترل قدرتمند یا اپراتور عضویت است. اگر عنصری برای یافتن در دنبالهای برای جستجو در نظر گرفته شود، مقدار صحیح یا نادرست را نشان میدهد که نشان میدهد آیا عنصر در دنباله پیدا شده است:
<element> in <container>
یک مثال خوب برای استفاده از کلمه کلیدی in، بررسی یک حرف خاص در یک رشته است:
>>> name = "Chad"
>>> "c" in name
False
>>> "C" in name
True
کلمه کلیدی in با انواع کانتینرها کار می کند: لیست ها، دیکت ها، مجموعه ها، رشته ها و هر چیز دیگری که __contains__() را تعریف می کند یا می تواند دوباره تکرار شود.
ویدیو مرتبط: ویدیو تفاوت بین is و == در پایتون
+ کلمه کلیدی is پایتون
کلمه کلیدی is پایتون یک بررسی هویت است. این با عملگر == که برابری را بررسی می کند متفاوت است. گاهی اوقات می توان دو چیز را برابر در نظر گرفت، اما در حافظه دقیقاً یک شیء مشابه نیست. کلمه کلیدی is تعیین می کند که آیا دو شی دقیقاً یک شی هستند یا خیر:
<obj1> is <obj2>
این درست خواهد بود اگر <obj1> دقیقا در حافظه <obj2> است، و یا آن را false باز خواهد گشت.
ویدیو مرتبط: ویدیو شرط if در پایتون
# کلمات کلیدی برای کنترل جریان در پایتون: if, elif, else
سه کلمه کلیدی پایتون برای کنترل جریان استفاده می شود: if، elif، و else. این کلمات کلیدی پایتون به شما این امکان را می دهد که از منطق شرطی استفاده کنید و کد را با توجه به شرایط خاص اجرا کنید. این کلمات کلیدی بسیار رایج هستند - تقریباً در هر برنامه ای که در پایتون می بینید یا می نویسید استفاده می شود.
+ کلمه کلیدی if پایتون
کلمه کلیدی if برای شروع یک دستور شرطی استفاده می شود. دستور if به شما امکان می دهد بلوکی از کد بنویسید که فقط در صورتی اجرا می شود که عبارت بعد از if درست باشد.
نحو دستور if با کلمه کلیدی if در ابتدای سطر شروع می شود و به دنبال آن یک عبارت معتبر برای مقدار درستی آن ارزیابی می شود:
if <expr>:
<statements>
دستور if یک جزء حیاتی در اکثر برنامه ها است. استفاده دیگر از کلمه کلیدی if به عنوان بخشی از عملگر سه تایی پایتون است:
<var> = <expr1> if <expr2> else <expr3>
این یک نسخه یک خطی از عبارت if...else زیر است:
if <expr2>:
<var> = <expr1>
else:
<var> = <expr3>
عبارات if شما عباراتی بدون پیچیدگی هستند، استفاده از عبارت سه تایی راه خوبی برای ساده کردن کد شما فراهم می کند. هنگامی که شرایط کمی پیچیده شد، اغلب بهتر است به عبارت استاندارد if تکیه کنید.
+ کلمه کلیدی elif در پایتون
دستور elif به نظر می رسد و مانند دستور if عمل می کند، با دو تفاوت عمده:
- استفاده از elif فقط بعد از دستور if یا elif دیگر معتبر است.
- شما می توانید به تعداد مورد نیاز از عبارت elif استفاده کنید.
در زبان های برنامه نویسی دیگر، elif یا other if (دو کلمه مجزا) یا elseif (هر دو کلمه با هم له شده اند) است. وقتی elif را در پایتون می بینید، به موارد زیر فکر کنید:
if <expr1>:
<statements>
elif <expr2>:
<statements>
elif <expr3>:
<statements>
+ کلمه کلیدی else پایتون
عبارت else، همراه با کلمات کلیدی if و elif، نشاندهنده یک بلوک از کد است که تنها در صورتی باید اجرا شود که سایر بلوکهای شرطی، if و elif، همگی نادرست باشند:
if <expr>:
<statements>
else:
<statements>
توجه داشته باشید که عبارت else یک عبارت شرطی ندارد. آگاهی از کلمات کلیدی elif و else و استفاده صحیح از آنها برای برنامه نویسان پایتون بسیار مهم است. همراه با if، برخی از اجزای پرکاربرد در هر برنامه پایتون را تشکیل می دهند.
ویدیو مرتبط: ویدیو آموزش حلقه for در پایتون
# کلمات کلیدی برای پیمایش در پایتون: for, while, break, continue, else
حلقه و تکرار، مفاهیم برنامه نویسی بسیار مهمی هستند. چندین کلمه کلیدی پایتون برای ایجاد و کار با حلقه ها استفاده می شود. اینها، مانند کلمات کلیدی پایتون که برای شرطیها در بالا استفاده میشوند، تقریباً در هر برنامه پایتونی که با آن روبرو میشوید استفاده میشوند و دیده میشوند. درک آنها و استفاده صحیح از آنها به شما کمک می کند تا به عنوان یک برنامه نویس پایتون پیشرفت کنید.
+ کلمه کلیدی for پایتون
رایج ترین حلقه در پایتون حلقه for است. این با ترکیب کلمات کلیدی پایتون for و in ساخته میشود. نحو اصلی برای حلقه for به شرح زیر است:
for <element> in <container>:
<statements>
یک مثال معمول، حلقه زدن روی اعداد یک تا پنج و چاپ آنها روی صفحه است:
>>> for num in range(1, 6):
... print(num)
...
1
2
3
4
5
ویدیو مرتبط: ویدیو آموزش حلقه while در پایتون
+ کلمه کلیدی while پایتون
حلقه while پایتون از کلمه کلیدی while استفاده می کند و مانند حلقه while در سایر زبان های برنامه نویسی کار می کند. تا زمانی که شرطی که به دنبال کلمه کلیدی while درست است، بلوک زیر دستور while بارها و بارها اجرا می شود:
while <expr>:
<statements>
ساده ترین راه برای تعیین یک حلقه بی نهایت در پایتون استفاده از کلمه کلیدی while با عبارتی است که همیشه درست است:
>>> while True:
... print("working...")
...
+ کلمه کلیدی break پایتون
اگر باید زودتر از یک حلقه خارج شوید، می توانید از کلمه کلیدی break استفاده کنید. این کلمه کلیدی در هر دو حلقه for و while کار می کند:
for <element> in <container>:
if <expr>:
break
مثالی از استفاده از کلیدواژه break این است که اگر اعداد صحیح را در لیستی از اعداد جمع میکنید و میخواهید زمانی که مجموع از مقدار معینی بالاتر رفت، از آن خارج شوید:
>>> nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> sum = 0
>>> for num in nums:
... sum += num
... if sum > 10:
... break
...
>>> sum
15
ویدیو مرتبط: ویدیو آموزش دستورهای break, continue, pass در پایتون
+ کلمه کلیدی continue پایتون
پایتون همچنین یک کلمه کلیدی continue دارد برای زمانی که می خواهید به تکرار حلقه بعدی بروید. مانند بسیاری از زبان های برنامه نویسی دیگر، کلمه کلیدی continue به شما امکان می دهد اجرای تکرار حلقه فعلی را متوقف کرده و به تکرار بعدی بروید:
for <element> in <container>:
if <expr>:
continue
کلمه کلیدی continue نیز در حلقه های while کار می کند. اگر کلمه کلیدی continue در یک حلقه بدست آید، تکرار فعلی متوقف می شود و تکرار بعدی حلقه شروع می شود.
+ کلمه کلیدی else در کنار حلقههای پایتون
علاوه بر استفاده از کلمه کلیدی else با دستورات شرطی if، می توانید از آن به عنوان بخشی از یک حلقه نیز استفاده کنید. هنگامی که با یک حلقه استفاده می شود، کلمه کلیدی else کدی را مشخص می کند که در صورت خروج عادی حلقه باید اجرا شود، به این معنی که break برای خروج زودهنگام از حلقه فراخوانی نشده است.
نحو استفاده از else با حلقه for به صورت زیر است:
for <element> in <container>:
<statements>
else:
<statements>
این بسیار شبیه به استفاده از else با دستور if است. استفاده از else با حلقه while مشابه به نظر می رسد:
while <expr>:
<statements>
else:
<statements>
مستندات استاندارد پایتون بخشی در مورد استفاده از break و دیگری با یک حلقه for دارد که باید واقعا بررسی کنید. از یک مثال عالی برای نشان دادن سودمندی بلوک else استفاده می کند.
وظیفه ای که نشان می دهد این است که روی اعداد دو تا نه حلقه بزنید تا اعداد اول را پیدا کنید. یکی از راه هایی که می توانید این کار را انجام دهید استفاده از یک حلقه استاندارد با یک متغیر پرچم است:
>>> for n in range(2, 10):
... prime = True
... for x in range(2, n):
... if n % x == 0:
... prime = False
... print(f"{n} is not prime")
... break
... if prime:
... print(f"{n} is prime!")
...
2 is prime!
3 is prime!
4 is not prime
5 is prime!
6 is not prime
7 is prime!
8 is not prime
9 is not prime
می توانید از پرچم اصلی برای نشان دادن نحوه خروج از حلقه استفاده کنید. اگر به طور معمول از آن خارج شد، پرچم اصلی True باقی می ماند. اگر با break خارج شد، پرچم اصلی روی False تنظیم می شود. هنگامی که از حلقه for داخلی خارج میشوید، میتوانید پرچم را بررسی کنید تا تشخیص دهید که آیا اول True است یا خیر، و اگر چنین است، چاپ کنید که عدد اول است.
بلوک else دستور ساده تری را ارائه می دهد. اگر متوجه شدید که باید یک پرچم را در یک حلقه تنظیم کنید، مثال بعدی را به عنوان راهی برای ساده کردن کد خود در نظر بگیرید:
>>> for n in range(2, 10):
... for x in range(2, n):
... if n % x == 0:
... print(f"{n} is not prime")
... break
... else:
... print(f"{n} is prime!")
...
2 is prime!
3 is prime!
4 is not prime
5 is prime!
6 is not prime
7 is prime!
8 is not prime
9 is not prime
تنها کاری که برای استفاده از بلوک else در این مثال باید انجام دهید این است که پرچم اول را حذف کرده و دستور if نهایی را با بلوک else جایگزین کنید. این در نهایت نتیجه ای مشابه مثال قبل را تولید می کند، فقط با کد واضح تر.
گاهی اوقات استفاده از کلمه کلیدی else با یک حلقه می تواند کمی عجیب به نظر برسد، اما زمانی که متوجه شدید که به شما امکان می دهد از استفاده از پرچم در حلقه های خود اجتناب کنید، می تواند ابزار قدرتمندی باشد.
# کلمات کلیدی ساختاری در پایتون: def, class, with, as, pass, lambda
برای تعریف توابع و کلاس ها یا استفاده از context manager، باید از یکی از کلمات کلیدی پایتون در این بخش استفاده کنید. آنها بخش مهمی از زبان پایتون هستند و درک زمان استفاده از آنها به شما کمک می کند تا برنامه نویس بهتری برای پایتون شوید.
ویدیو مرتبط: ویدیو آموزش ساخت تابع با def در پایتون
+ کلمه کلیدی def پایتون
کلمه کلیدی def پایتون برای تعریف تابع یا متد یک کلاس استفاده می شود. این معادل function در جاوا اسکریپت و PHP است. سینتکس اصلی برای تعریف یک تابع با def به شکل زیر است:
def <function>(<params>):
<body>
توابع و متدها می توانند ساختارهای بسیار مفیدی در هر برنامه پایتون باشند. برای کسب اطلاعات بیشتر در مورد تعریف آنها و تمام نکات آنها، ویدیو تعریف تابع پایتون را بررسی کنید.
+ کلمه کلیدی class پایتون
برای تعریف کلاس در پایتون از کلمه کلیدی class استفاده می کنید. سینتکس کلی برای تعریف کلاس با class به صورت زیر است:
class MyClass(<extends>):
<body>
کلاس ها ابزار قدرتمندی در برنامه نویسی شی گرا هستند و شما باید در مورد آنها و نحوه تعریف آنها بدانید. برای کسب اطلاعات بیشتر، ویدیو برنامه نویسی شی گرا (OOP) در پایتون 3 را بررسی کنید.
ویدیو مرتبط: ویدیو آموزش context manager در پایتون
+ کلمه کلیدی with پایتون
context manager یک ساختار واقعا مفید در پایتون هستند. هر context manager کد خاصی را قبل و بعد از عباراتی که شما مشخص کرده اید اجرا می کند. برای استفاده از یکی، از کلمه کلیدی with استفاده می کنید:
with <context manager> as <var>:
<statements>
استفاده از with راهی را برای تعریف کدی که در محدوده context manager اجرا می شود به شما ارائه می دهد. ابتدایی ترین مثال زمانی است که شما با فایل I/O در پایتون کار می کنید.
اگر میخواهید یک فایل را باز کنید، با آن فایل کاری انجام دهید و سپس مطمئن شوید که فایل به درستی بسته شده است، از یک context manager استفاده میکنید. این مثال را در نظر بگیرید که در آن names.txt شامل فهرستی از نامها، یکی در هر خط است:
>>> with open("names.txt") as input_file:
... for name in input_file:
... print(name.strip())
...
Jim
Pam
Cece
Philip
فایل I/O context manager ارائه شده توسط open() و با کلیدواژه with شروع می شود، فایل را برای خواندن باز می کند، نشانگر فایل باز را به input_file اختصاص می دهد، سپس هر کدی را که در بلوک with مشخص می کنید اجرا می کند. سپس، پس از اجرای بلوک، نشانگر فایل بسته می شود. حتی اگر کد شما در بلوک with یک استثنا ایجاد کند، نشانگر فایل همچنان بسته میشود.
+ کلمه کلیدی as در کنار with پایتون
اگر میخواهید به نتایج عبارت یا context manager که به آن منتقل شده است دسترسی داشته باشید، باید آن را با استفاده از as نام مستعار کنید. همچنین ممکن است دیده باشید که به import و استثناها نام مستعار داده شده است. نام مستعار در بلوک with موجود است:
with <expr> as <alias>:
<statements>
در بیشتر مواقع کلمه with و as در کنار یکدیگر استفاده میشوند.
+ کلمه کلیدی pass پایتون
از آنجایی که پایتون نشانگرهای بلوکی برای تعیین انتهای بلوک ندارد، از کلمه کلیدی pass برای مشخص کردن اینکه بلوک عمداً خالی است استفاده میشود. این معادل یک عملیات بدون بدنه است. در اینجا چند نمونه از استفاده از pass برای مشخص کردن خالی بودن بلوک آورده شده است:
def my_function():
pass
class MyClass:
pass
if True:
pass
ویدیو مرتبط: ویدیو آموزش لامبدا(lambda) در پایتون
+ کلمه کلیدی lambda پایتون
کلمه کلیدی لامبدا برای تعریف تابعی استفاده می شود که نام ندارد و فقط یک دستور دارد که نتایج آن برگردانده می شود. توابع تعریف شده با لامبدا به عنوان توابع لامبدا شناخته می شوند:
lambda <args>: <statement>
یک مثال اساسی از یک تابع لامبدا که آرگومان افزایش یافته به توان 10 را محاسبه می کند، به شکل زیر است:
p10 = lambda x: x**10
این معادل تعریف یک تابع با def است:
def p10(x):
return x**10
یکی از کاربردهای رایج برای یک تابع لامبدا، تعیین رفتار متفاوت برای تابع دیگر است. برای مثال، تصور کنید میخواهید فهرستی از رشتهها را بر اساس مقادیر صحیح آنها مرتب کنید. رفتار پیشفرض sorted() رشتهها را بر اساس حروف الفبا مرتب میکند. اما با sorted() می توانید مشخص کنید که لیست بر روی کدام کلید مرتب شود.
یک تابع لامبدا راه خوبی برای انجام این کار ارائه می دهد:
>>> ids = ["id1", "id2", "id30", "id3", "id20", "id10"]
>>> sorted(ids)
['id1', 'id10', 'id2', 'id20', 'id3', 'id30']
>>> sorted(ids, key=lambda x: int(x[2:]))
['id1', 'id2', 'id3', 'id10', 'id20', 'id30']
این مثال لیست را نه بر اساس ترتیب حروف الفبا بلکه بر اساس ترتیب عددی آخرین کاراکترهای رشته ها پس از تبدیل آنها به اعداد صحیح مرتب می کند. بدون لامبدا، باید تابعی را تعریف میکردید، نامی برای آن میدادید و سپس آن را به sorted() میدادید. lambda این کد را پاک کننده کرد.
برای مقایسه، این همان چیزی است که مثال بالا بدون استفاده از لامبدا به نظر می رسد:
>>> def sort_by_int(x):
... return int(x[2:])
...
>>> ids = ["id1", "id2", "id30", "id3", "id20", "id10"]
>>> sorted(ids, key=sort_by_int)
['id1', 'id2', 'id3', 'id10', 'id20', 'id30']
این کد نتیجه ای مشابه با مثال لامبدا ایجاد می کند، اما قبل از استفاده باید تابع را تعریف کنید.
# کلمات کلیدی بازگشتی در پایتون: return, yield
دو کلمه کلیدی پایتون برای مشخص کردن آنچه از توابع یا متدها بازگردانده می شود استفاده می شود: return و yield. درک زمان و مکان استفاده از return برای تبدیل شدن به یک برنامه نویس بهتر پایتون حیاتی است. کلمه کلیدی yield یکی از ویژگیهای پیشرفتهتر پایتون است، اما همچنین میتواند ابزار مفیدی برای درک باشد.
ویدیو مرتبط: ویدیو انواع None در پایتون
+ کلمه کلیدی return پایتون
کلمه کلیدی return پایتون فقط به عنوان بخشی از یک تابع تعریف شده با def معتبر است. هنگامی که پایتون با این کلمه کلیدی روبرو می شود، از تابع در آن نقطه خارج می شود و نتایج هر چیزی که بعد از کلمه کلیدی return آمده است را برمی گرداند:
def <function>():
return <expr>
هنگامی که هیچ عبارتی داده نمی شود، بازگشت به طور پیش فرض None را برمی گرداند:
>>> def return_none():
... return
...
>>> return_none()
>>> r = return_none()
>>> print(r)
None
با این حال، اغلب اوقات، شما می خواهید نتایج یک عبارت یا یک مقدار خاص را برگردانید:
>>> def plus_1(num):
... return num + 1
...
>>> plus_1(9)
10
>>> r = plus_1(9)
>>> print(r)
10
حتی می توانید از کلمه کلیدی return چندین بار در یک تابع استفاده کنید. این به شما امکان می دهد چندین نقطه خروج در عملکرد خود داشته باشید. یک مثال کلاسیک از زمانی که می خواهید چندین دستور return داشته باشید، راه حل بازگشتی زیر برای محاسبه فاکتوریل است:
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n - 1)
در تابع فاکتوریل بالا، دو حالت وجود دارد که می خواهید از تابع برگردید. اولی حالت پایه است، زمانی که عدد 1 باشد، و دومی حالت عادی است، زمانی که می خواهید عدد فعلی را در مقدار فاکتوریل عدد بعدی ضرب کنید.
ویدیو مرتبط: ویدیو توضیح generator در پایتون
+ کلمه کلیدی yield پایتون
کلمه کلیدی yield پایتون به نوعی مانند کلمه کلیدی return است که مشخص می کند چه چیزی از یک تابع برگردانده می شود. با این حال، زمانی که یک تابع یک عبارت yield دارد، چیزی که برگردانده می شود یک generator است. سپس generator را می توان به next () داخلی پایتون ارسال کرد تا مقدار بعدی از تابع برگردانده شود.
وقتی تابعی را با عبارات yield فراخوانی میکنید، پایتون آن تابع را اجرا میکند تا به اولین کلمه کلیدی yield برسد و سپس یک generator برمیگرداند. اینها به عنوان توابع generator شناخته می شوند:
def <function>():
yield <expr>
ساده ترین مثال برای این کار یک تابع generator است که مجموعه ای از مقادیر را برمی گرداند:
>>> def family():
... yield "Pam"
... yield "Jim"
... yield "Cece"
... yield "Philip"
...
>>> names = family()
>>> names
<generator object family at 0x7f47a43577d8>
>>> next(names)
'Pam'
>>> next(names)
'Jim'
>>> next(names)
'Cece'
>>> next(names)
'Philip'
>>> next(names)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
هنگامی که استثناء StopIteration مطرح می شود، مولد با بازگرداندن مقادیر کار می کند. برای اینکه دوباره نامها را مرور کنید، باید دوباره Family() را فراخوانی کنید و یک ژنراتور جدید دریافت کنید. اغلب اوقات، یک تابع generator به عنوان بخشی از یک حلقه for فراخوانی می شود که فراخوانی () next را برای شما انجام می دهد.
# کلمات کلیدی برای وارد کردن ماژول در پایتون: import, as, from
برای آن دسته از ابزارهایی که بر خلاف کلمات کلیدی و داخلی پایتون، از قبل در برنامه پایتون شما در دسترس نیستند، باید آنها را به برنامه خود وارد کنید. ماژولهای مفید زیادی در کتابخانه استاندارد پایتون وجود دارد که فقط یک ایمپورت فاصله دارند. همچنین بسیاری از کتابخانه ها و ابزارهای مفید دیگر در PyPI موجود است که پس از نصب آنها در محیط خود، باید آنها را به برنامه های خود وارد کنید.
مقاله مرتبط: importهای مطلق و نسبی در پایتون
+ کلمه کلیدی import پایتون
کلمه کلیدی import پایتون برای وارد کردن یا گنجاندن یک ماژول برای استفاده در برنامه پایتون شما استفاده می شود. نحو استفاده پایه به این صورت است:
import <module>
پس از اجرای آن عبارت، <module> برای برنامه شما در دسترس خواهد بود.
به عنوان مثال، اگر می خواهید از کلاس Counter از ماژول collections در کتابخانه استاندارد استفاده کنید، می توانید از کد زیر استفاده کنید:
>>> import collections
>>> collections.Counter()
Counter()
وارد کردن collections به این روش کل ماژول collections، از جمله کلاس Counter را در دسترس برنامه شما قرار می دهد. با استفاده از نام ماژول، به تمام ابزارهای موجود در آن ماژول دسترسی دارید. برای دسترسی به Counter، آن را از ماژول ارجاع دهید: collections.Counter.
ویدیو مرتبط: توضیح module در پایتون
+ کلمه کلیدی from پایتون
کلمه کلیدی from همراه با import برای وارد کردن چیزی خاص از یک ماژول استفاده می شود:
from <module> import <thing>
با این کار هر چیزی که <thing> داخل <module> است وارد می کند تا در برنامه شما استفاده شود. این دو کلمه کلیدی پایتون، from و import، با هم استفاده می شوند.
اگر می خواهید از Counter از ماژول collections در کتابخانه استاندارد استفاده کنید، می توانید آن را به طور خاص وارد کنید:
>>> from collections import Counter
>>> Counter()
Counter()
وارد کردن Counter مانند این، کلاس Counter را در دسترس قرار می دهد، اما هیچ چیز دیگری از ماژول collections در دسترس نیست. Counter اکنون بدون نیاز به ارجاع آن از ماژول collections در دسترس است.
ویدیو مرتبط: ویدیو آموزش Counter از ماژول collections پایتون
+ کلمه کلیدی as پایتون
کلمه کلیدی as برای نام مستعار یک ماژول یا ابزار وارد شده استفاده می شود. همراه با کلمات کلیدی import و from پایتون برای تغییر نام چیزی که وارد می شود استفاده می شود:
import <module> as <alias>
from <module> import <thing> as <alias>
برای ماژولهایی که نامهای بسیار طولانی یا نام رایج دارند، که میتواند در ایجاد نام مستعار مفید باشد.
اگر میخواهید کلاس Counter را از ماژول collections وارد کنید، اما نام آن را متفاوت بگذارید، میتوانید آن را با استفاده از as نام مستعار کنید:
>>> from collections import Counter as C
>>> C()
Counter()
اکنون Counter برای استفاده در برنامه شما در دسترس است، اما در عوض با C ارجاع داده می شود. رایجتر استفاده از نام مستعار import، بستههای NumPy یا Pandas است. اینها معمولاً با نام مستعار استاندارد وارد می شوند:
import numpy as np
import pandas as pd
این جایگزین بهتری برای وارد کردن همه چیز از یک ماژول است و به شما امکان می دهد نام ماژول وارد شده را کوتاه کنید.
# کلمات کلیدی برای مدیریت خطاها در پایتون: try, except, raise, finally, else, assert
یکی از رایج ترین جنبه های هر برنامه پایتون، ایجاد و گرفتن استثناها است. از آنجایی که این یک جنبه اساسی از همه کدهای پایتون است، چندین کلمه کلیدی پایتون برای کمک به واضح و مختصر شدن این قسمت از کد شما وجود دارد.
ویدیو مرتبط: ویدیو توضیح مدیریت خطاها در پایتون
+ کلمه کلیدی try پایتون
هر بلوک رسیدگی به استثنا با کلمه کلیدی try پایتون شروع می شود. این در بسیاری از زبان های برنامه نویسی دیگر که مدیریت استثنا دارند، یکسان است.
کد موجود در بلوک try کدی است که ممکن است استثنایی ایجاد کند. چندین کلیدواژه پایتون دیگر با try مرتبط هستند و برای تعریف کارهایی که در صورت مطرح شدن استثناهای مختلف یا در موقعیتهای مختلف باید انجام شود، استفاده میشوند. اینها عبارتند از else, finally, except:
try:
<statements>
<except|else|finally>:
<statements>
یک بلوک try معتبر نیست مگر اینکه حداقل یکی از کلیدواژههای پایتون دیگر را داشته باشد که برای مدیریت استثنا به عنوان بخشی از دستور کلی try استفاده میشود.
اگر می خواهید مایل به ازای هر گالن گاز (mpg) را با توجه به مایل های طی شده و گالن های گاز مصرف شده محاسبه و برگردانید، می توانید تابعی مانند زیر بنویسید:
def mpg(miles, gallons):
return miles / gallons
اولین مشکلی که ممکن است مشاهده کنید این است که اگر پارامتر gallons به صورت 0 ارسال شود، کد شما می تواند ZeroDivisionError ایجاد کند.
def mpg(miles, gallons):
try:
mpg = miles / gallons
except ZeroDivisionError:
mpg = None
return mpg
حال اگر گالن = 0 باشد، mpg() استثنایی ایجاد نمی کند و به جای آن None را برمی گرداند. این ممکن است بهتر باشد، یا ممکن است تصمیم بگیرید که می خواهید نوع دیگری از استثنا را مطرح کنید یا این وضعیت را به گونه ای متفاوت مدیریت کنید. شما یک نسخه توسعه یافته از این مثال را در زیر مشاهده خواهید کرد تا سایر کلمات کلیدی مورد استفاده برای رسیدگی به استثناء را نشان دهید.
+ کلمه کلیدی except پایتون
کلمه کلیدی except پایتون با تلاش برای تعریف آنچه که باید انجام شود زمانی که استثناهای خاص مطرح می شود استفاده می شود. شما می توانید یک یا چند بلوک except برای یک try داشته باشید. کاربرد اصلی به این صورت است:
try:
<statements>
except <exception>:
<statements>
با در نظر گرفتن مثال mpg() از قبل، میتوانید در صورتی که شخصی انواعی را که با اپراتور / کار نمیکنند ارسال کند، کار خاصی انجام دهید. با تعریف mpg() در مثال قبلی، اکنون سعی کنید آن را با رشته ها به جای اعداد فراخوانی کنید:
>>> mpg("lots", "many")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 3, in mpg
TypeError: unsupported operand type(s) for /: 'str' and 'str'
میتوانید mpg() را اصلاح کنید و از بلوکهای متعدد except برای مدیریت این وضعیت نیز استفاده کنید:
def mpg(miles, gallons):
try:
mpg = miles / gallons
except ZeroDivisionError:
mpg = None
except TypeError as ex:
print("you need to provide numbers")
raise ex
return mpg
در اینجا، mpg() را تغییر میدهید تا استثناء TypeError را فقط پس از چاپ یک یادآوری مفید روی صفحه نمایش دهید.
توجه داشته باشید که کلمه کلیدی except را می توان همراه با کلمه کلیدی as نیز استفاده کرد. این کار مانند سایر کاربردهای as دارد، به استثنای مطرح شده یک نام مستعار می دهد تا بتوانید با آن در بلوک جز کار کنید.
حتی اگر از نظر نحوی مجاز است، سعی کنید از عبارات except به عنوان catchall ضمنی استفاده نکنید. بهتر است همیشه به صراحت چیزی را بگیرید، حتی اگر فقط استثنا باشد:
try:
1 / 0
except: # Don't do this
pass
try:
1 / 0
except Exception: # This is better
pass
try:
1 / 0
except ZeroDivisionError: # This is best
pass
+ کلمه کلیدی raise پایتون
کلمه کلیدی raise یک استثنا ایجاد می کند. اگر متوجه شدید که باید یک استثنا مطرح کنید، میتوانید از raise و به دنبال آن استثنایی که باید ایجاد شود استفاده کنید:
raise <exception>
قبلاً در مثال mpg() از raise استفاده کردید. هنگامی که TypeError را دریافت می کنید، پس از چاپ یک پیام در صفحه، استثنا را دوباره مطرح میکنید.
+ کلمه کلیدی finally پایتون
کلمه کلیدی finally پایتون برای تعیین کدی که باید اجرا شود بدون توجه به اینکه در بلوکهای try، except یا else چه اتفاقی میافتد، مفید است. برای استفاده finally، از آن به عنوان بخشی از یک بلوک try استفاده کنید و عباراتی را که باید بدون توجه به آنچه باید اجرا شوند را مشخص کنید:
try:
<statements>
finally:
<statements>
با استفاده از مثال قبلی، ممکن است مفید باشد که مشخص کنید، مهم نیست چه اتفاقی می افتد، می خواهید بدانید که تابع با چه آرگومان هایی فراخوانی شده است. شما می توانید mpg() را تغییر دهید تا بلوک finally را شامل شود که دقیقاً این کار را انجام می دهد:
def mpg(miles, gallons):
try:
mpg = miles / gallons
except ZeroDivisionError:
mpg = None
except TypeError as ex:
print("you need to provide numbers")
raise ex
finally:
print(f"mpg({miles}, {gallons})")
return mpg
حالا، مهم نیست که mpg() چگونه فراخوانی شود یا نتیجه چه باشد، آرگومان های ارائه شده توسط کاربر را چاپ می کنید:
>>> mpg(10, 1)
mpg(10, 1)
10.0
>>> mpg("lots", "many")
you need to provide numbers
mpg(lots, many)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 8, in mpg
File "<stdin>", line 3, in mpg
TypeError: unsupported operand type(s) for /: 'str' and 'str'
کلمه کلیدی finally می تواند بخش بسیار مفیدی از کدهای مدیریت استثنا باشد.
+ کلمه کلیدی else در کنار try...except پایتون
شما یاد گرفته اید که کلمه کلیدی else را می توان هم با کلمه کلیدی if و هم با حلقه ها در پایتون استفاده کرد، اما یک کاربرد دیگر نیز دارد. می توان آن را با کلمات کلیدی try و except پایتون ترکیب کرد. فقط در صورتی می توانید از else در این روش استفاده کنید که حداقل یک بلوک except را نیز استفاده کنید:
try:
<statements>
except <exception>:
<statements>
else:
<statements>
در این زمینه، کد موجود در بلوک else تنها در صورتی اجرا میشود که استثنایی در بلوک try مطرح نشده باشد. به عبارت دیگر، اگر بلوک try همه کدها را با موفقیت اجرا کند، کد بلوک else اجرا خواهد شد.
در مثال mpg()، تصور کنید میخواهید مطمئن شوید که نتیجه mpg همیشه به صورت float برگردانده میشود، صرفنظر از اینکه چه ترکیبی از اعداد وارد میشود. یکی از راههایی که میتوانید این کار را انجام دهید استفاده از یک بلوک else است. اگر محاسبه بلوک try mpg موفقیت آمیز باشد، قبل از بازگشت، نتیجه را به یک float در بلوک else تبدیل میکنید:
def mpg(miles, gallons):
try:
mpg = miles / gallons
except ZeroDivisionError:
mpg = None
except TypeError as ex:
print("you need to provide numbers")
raise ex
else:
mpg = float(mpg) if mpg is not None else mpg
finally:
print(f"mpg({miles}, {gallons})")
return mpg
ویدیو مرتبط: ویدیو آشنایی با assert در پایتون
+ کلمه کلیدی assert پایتون
کلمه کلیدی assert در پایتون برای تعیین یک عبارت ادعا استفاده می شود. اگر عبارت (<expr>) درست باشد، یک دستور assert کاری نمیکند و اگر عبارت نادرست باشد، یک AssertionError ایجاد می کند. برای تعریف یک ادعا، از assert و به دنبال آن یک عبارت استفاده کنید:
assert <expr>
عموماً از گزارههای assert استفاده میشود تا مطمئن شویم چیزی که باید درست باشد. با این حال، نباید به آنها تکیه کنید، زیرا بسته به نحوه اجرای برنامه پایتون، می توان آنها را نادیده گرفت.
# کلمات کلیدی برای برنامه نویسی ناهمزمان در پایتون: async, await
برنامه نویسی ناهمزمان یک موضوع پیچیده است. دو کلمه کلیدی پایتون برای کمک به خوانایی و تمیزتر شدن کدهای ناهمزمان تعریف شده است: async و await.
ویدیو مرتبط: آموزش async/await در پایتون
+ کلمه کلیدی async پایتون
کلمه کلیدی async با def برای تعریف یک تابع ناهمزمان یا coroutine استفاده می شود. نحو دقیقاً مانند تعریف یک تابع است، با اضافه کردن async در ابتدا:
async def <function>(<params>):
<statements>
می توانید با افزودن کلمه کلیدی async قبل از تعریف معمولی تابع، یک تابع را ناهمزمان کنید.
+ کلمه کلیدی await پایتون
کلمه کلیدی await پایتون در توابع ناهمزمان استفاده می شود تا نقطه ای از تابع را مشخص کند که در آن کنترل به حلقه رویداد برگردانده می شود تا سایر توابع اجرا شوند. میتوانید با قرار دادن کلمه کلیدی await در مقابل فراخوانی با هر تابع async از آن استفاده کنید:
await <some async function call>
# OR
<var> = await <some async function call>
هنگام استفاده از await، میتوانید تابع ناهمزمان را فراخوانی کرده و نتایج را نادیده بگیرید، یا میتوانید نتایج را در متغیری ذخیره کنید که در نهایت تابع برمیگردد.
# کلمات کلیدی برای مدیریت متغیرها در پایتون: del, global, nonlocal
سه کلمه کلیدی پایتون برای کار با متغیرها استفاده می شود. کلمه کلیدی del بسیار رایج تر از کلیدواژه های global و nonlocal است. اما دانستن و درک هر سه کلمه کلیدی همچنان مفید است تا بتوانید زمان و نحوه استفاده از آنها را تشخیص دهید.
ویدیو مرتبط: ویدیو آموزش لیست ها در پایتون
+ کلمه کلیدی del پایتون
del در پایتون برای حذف یک متغیر استفاده می شود. میتوانید از آن در نام متغیرها استفاده کنید، اما استفاده رایجتر حذف آیتم از لیست یا دیکشنری است. برای حذف یک متغیر، از del و سپس نام متغیر استفاده کنید:
del <variable>
بیایید فرض کنیم میخواهید دیکشنری را که از پاسخ API دریافت کردهاید، با بیرون انداختن کلیدهایی که میدانید استفاده نمیکنید، پاک کنید. می توانید این کار را با کلمه کلیدی del انجام دهید:
>>> del response["headers"]
>>> del response["errors"]
با این کار کلیدهای "headers" و "errors" از دیکشنری حذف می شوند.
+ کلمه کلیدی global پایتون
اگر نیاز به تغییر متغیری دارید که در یک تابع تعریف نشده است، اما در محدوده global تعریف شده است، باید از کلمه کلیدی global استفاده کنید. این کار با مشخص کردن متغیرهایی که باید از دامنه global به داخل تابع کشیده شوند در تابع کار می کند:
global <variable>
یک مثال اساسی افزایش یک متغیر global با فراخوانی تابع است. می توانید این کار را با کلمه کلیدی global انجام دهید:
>>> x = 0
>>> def inc():
... global x
... x += 1
...
>>> inc()
>>> x
1
>>> inc()
>>> x
2
ویدیو مرتبط: ویدیو آموزش namespace در پایتون
+ کلمه کلیدی nonlocal پایتون
کلمه کلیدی nonlocal شبیه به global است زیرا به شما امکان می دهد متغیرها را از دامنه متفاوتی تغییر دهید. در مورد global، دامنه ای که شما از آن استخراج می کنید، دامنه global است. با nonlocal، محدودهای که از آن بیرون میکشید، محدوده والد است. نحو مشابه global است:
nonlocal <variable>
# نتیجه گیری
کلمات کلیدی پایتون بلوک های اساسی هر برنامه پایتون هستند. درک استفاده صحیح از آنها برای بهبود مهارت ها و دانش پایتون کلیدی است.