۴ قابلیت پنهان پایتون برای افراد مبتدی — به زبان ساده

۲۷۹ بازدید
آخرین به‌روزرسانی: ۲۸ خرداد ۱۴۰۱
زمان مطالعه: ۳ دقیقه
۴ قابلیت پنهان پایتون برای افراد مبتدی — به زبان ساده

یادگیری فرایندی است که هرگز پایان نمی‌پذیرد. در واقع هیچ کس هرگز یادگیری شیوه برنامه‌نویسی با پایتون را به پایان نمی‌برد. فرد باید به طور مداوم به کشف قابلیت‌های جدید که مفید هستند در پایتون بپردازد و در این حالت شاید از حجم مطالبی که باید بیاموزید، دچار سردرگمی شوید. در ادامه 4 قابلیت پنهان پایتون را معرفی می‌کنیم که برای افراد مبتدی مفید خواهند بود.

یک کتاب یا وب‌سایت منفرد وجود ندارد که شامل همه چیزهایی باشد که باید در مورد پایتون بیاموزید. حتی مستندات پایتون (+) نیز چنین جامعیتی ندارد. در واقع امکانات پایتون عملاً بی‌نهایت است. حتی کسانی که سال‌ها است با پایتون کد می‌نویسند به طور مداوم قابلیت‌های جدیدی در آن کشف می‌کنند که کاملاً منحصربه‌فرد هستند. این‌ها مواردی هستند که شاید در زبان‌های برنامه‌نویسی دیگر نتوان یافت.

1. حلقه For-Else

در زبان پایتون برخی گزاره‌های شرطی به شرح زیر وجود دارند:

  • حلقه‌های while
  • حلقه‌های for
  • بندهای if else

اما آیا در مورد بندهای for else اطلاع دارید؟

1def test(nums):
2    for i in nums:
3        if i == 0: # if the condition is satisfied, it hits break and the else block will not run
4            print('There is a 0.')
5            break
6    else:
7        print('There are no 0s.')
8        
9test([1,2,3,0]) # There is a 0.
10test([1,2,3])   # There are no 0s.

کد موجود در بلوک else تنها در صورتی اجرا می‌شود که حلقه for بدون مراجعه به گزاره break به پایان برسد. دستور break برای توقف حلقه مورد استفاده قرار می‌گیرد.

اینک شاید بپرسید فایده حلقه for-else چیست؟ فرض کنید کاربر 3 بار حق امتحان کردن رمز عبور خود را در یک حلقه for _ in range(3):‎ داشته باشد و تنها با وارد کردن رمز صحیح گزاره break فعال می‌شود. بلوک else نیز زمانی فعال می‌شود که کاربر 3 بار پیاپی رمز عبور خود را به اشتباه وارد کند و برای مثال سیستم را در برابر استفاده کاربر قفل می‌کند.

2. زنجیره سازی عملگر مقایسه

اگر بخواهید بررسی کنید آیا مقدار a در بازه 0 تا 100 است یا نه، باید دو مقایسه به صورت 0 <= a و a <= 100 انجام داده و نتایج را با and ترکیب کنید. این کار آسانی است. اما امکان زنجیره سازی مقایسه‌ها و نوشتن آن‌ها به روشی شهودی و قابل خواندن از سوی انسان مانند زیر وجود دارد:

0 <= a <= 100

مفسر آن‌ها را افراز خواهد کرد و عملیات مقایسه را به صورت زیر می‌خواند:

0 <= a and a <= 100

کد آن به صورت زیر است:

a = 25
0 <= a <= 100 # True
0 <= a and a <= 100 # True
# The two expressions above are equivalent in Python

حتی می‌توان این زنجیره را به صورت زیر طولانی‌تر ساخت:

0 < a < 10 < b < 100

3. برش‌های بسط یافته

با استفاده از ساختاری مانند زیر می‌توان یک لیست a را برش داد:

a[start:stop:step]

در این دستور آرگومان سوم یعنی step اختیاری است. این دستور یک بخش از دنباله را برش می‌دهد به طوری که در start آغاز می‌شود و در stop متوقف می‌شود. هر برش نیز اندازه‌ای به طول step دارد. اندازه step باید یک عدد صحیح باشد و می‌تواند منفی نیز باشد:

a = list(range(10))
print(a[::2]) # [0, 2, 4, 6, 8]
print(a[3::-1]) # [3, 2, 1, 0]

امکان معکوس سازی یک لیست با استفاده از a[::-1] و تعیین آرگومان step به صورت 1- وجود دارد. مقدار این step در حالتی که تعیین نشده باشد، به صورت پیش‌فرض برابر با 1 است که به معنی عدم پرش از روی هیچ عنصر یا معکوس سازی لیست است.

4. تعویض مقادیر

روش تعویض مقادیر دو شیء در پایتون چیست؟ کافی است یک شیء temporary به نام temp ایجاد کنید. این کار دقیقاً همانند زبان‌های برنامه‌نویسی دیگر انجام می‌یابد.

# Standard way to swap values of two objects in other languages
temp = a
a = b
b = temp

اما این کد چندان خوانا نیست و به روش خوبی هم نوشته نشده است. در پایتون امکان تعویض مقادیر با استفاده از یک خط ساده وجود دارد:

# Standard Python way to swap values
b, a = a, b

در کد فوق مفسر ابتدا سمت راست را ارزیابی می‌کند و سپس یک چندتایی (a,b) در حافظه ایجاد می‌کند. سپس سمت چپ که دو عنصر در چندتایی قرار دارند ارزیابی می‌شوند و باز شده و به ترتیب به مقادیر a و b انتساب می‌یابند. این دستور عملاً اشیا منتسب به b و a را تعویض می‌کند.

سخن پایانی

به این ترتیب در این مقاله با 4 مورد از قابلیت‌های پنهان پایتون آشنا شدیم که به تسهیل کدنویسی افراد تازه‌کار کمک زیادی می‌کنند.

اگر این مطلب برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

==

بر اساس رای ۰ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
towardsdatascience
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *