حلقه for که break خورده
پایتون با چاشنی سرعت
در این پست به 6 نکته می پردازیم که باعث افزایش سرعت کد های پایتون می شود
1. ماژول هارا به صورت کامل اضافه نکنیم
اضافه کردن ماژول ها در برنامه نویسی به خصوص با زبان پایتون چیزی اجتناب ناپذیر است اما در خیلی از مواقع ما به یک تابع یا چند کلاس خاص از آن ماژول احتیاج داریم . در چنین مواردی سعی کنید فقط آن توابع و کلاس هارا به برنامه خود اضافه کنید.
برای مثال برنامه محاسبه جذر اعداد:
import math
math.sqrt(100)
from math import sqrt
sqrt(100)
2.عدم استفاده از زنجیره . ها (dot)
در پایتون استفاده (dot) و فراخوانی توابع به صورت متوالی بسیار مورد استفاده قرار میگیرد . به صورت کلی مشکلی وجود ندارد اما اگر سعی کنیم از این کار تا حد امکان اجتناب کنیم عملکرد بهتری را مشاهده خواهیم کرد.
نوشتن کد به این روش مرسوم نیست ولی به عنوان یک برنامه نویس پایتون خوب است بدانیم راه سریع تری هم وجود دارد
برای مثال اضافه کردن یک عدد به لیست و سپس حذف آن :
my_list = [1, 2, 3]
my_list.append(4)
my_list.remove(4)
my_list = [1, 2, 3]
append = my_list.append
remove = my_list.remove
append(4)
remove(4)
3. از + برای چسباندن رشته ها به یکدیگر استفاده نکنید
از آنجا که رشته ها در پایتون تغییر ناپذیر (immutable) هستند اینکار بسیار عملکرد برنامه را کاهش میدهد
ممکن است در خیلی از مواقع ما فقط قصد اضافه کردن دو رشته را به هم داشته باشیم در این موارد استفاده از + طول کد را کمتر و خوانایی آن را بیشتر می کند
برای مثال:
strs = ['Life', 'is', 'short,', 'I', 'use', 'Python']
def join_strs(strs):
result = ''
for s in strs:
result += s + ' '
return result
def join_strs_better(strs):
return ' '.join(strs)
join_strs_better(strs)
4. استفاده نکردن از متغیر اضافه (temp) برای تبادل مقادیر
در بسیاری از زبان ها ما برای عوض کردن مقدار دو متغییر از یک متغییر واسط استفاده میکنیم
ولی پایتون به ما این امکان را میدهد که بدون متغییر اضافی این کار را انجام دهیم
a = 1
b = 2
temp = a
a = b
b = temp
a = 1
b = 2
a, b = b, a
5. استفاده درست چند شرط در if
این مورد در اکثر زبان های برنامه نویسی کاربرد دارد و بهتر است آنرا با یک مثال توضیح دهیم :
فرض کنید لیستی از اسامی و سن آنها داریم و قصد داریم افرادی که سن آنها بزرگتر مساوی 30 و اسمشان با حرف 'C' شروع میشود را جدا کنیم
my_dict = [
{
'name': 'Alice',
'age': 28
},
{
'name': 'Bob',
'age': 23
},
{
'name': 'Chris',
'age': 33
},
{
'name': 'Chelsea',
'age': 2
},
{
'name': 'Carol',
'age': 24
}
]
در نتیجه ما در اینجا دو شرط داریم
- سن مساوی یا بالای 30
- شروع اسم با حرف 'C'
به دو صورت میتوانیم if مورد نظر را بنویسیم:
در حالت اول ابتدا اسم را چک کرده و سپس سن را . در این حالت در شرط اول که چک کردن اسامی است سه اسم True میشوند و شرط دوم که چک کردن سن است برای هر سه اسم تکرار خواهد شد
در حالت دوم اول سن را چک می کنیم که تنها یک نفر True میشود و سپس اسم آن فرد هم چک میشود
به داخل کد برویم:
filtered_list = []
for person in my_dict:
if person['name'].startswith('C') and person['age'] >= 30:
filtered_list.append(person)
6. از حلقه while استفاده نکن
ساختار زبان پایتون به صورتی پیاده سازی شده است که حلقه for عملکرد بهتری دارد
پس در مواردی که میتوان از حلقه for استفاده کرد از حلقه while استفاده نکنید
حلقه for علاوه بر عملکرد بهتر زیبایی و خوانایی بیشتری نیز دارد
مثالی برای مورد آخر :
result = 0
max_number = 10
i = 0
while i < 10:
result += i
i +=1
result = 0
max_number = 10
for i in range(max_number):
result += i
ممنون از همراهیت ❤️
اگر علاقه دارید این مقاله را به زبان اصلی مطالعه کنید میتوانید از لینک زیر استفاده کنید:
مطلبی دیگر از این انتشارات
برنامه نویسی پُر خطر؛ خطاهای پر تکرار!
مطلبی دیگر از این انتشارات
چگونه به عنوان یک برنامهنویس درآمد بیشتری داشته باشیم
مطلبی دیگر از این انتشارات
در اقیانوس Back-end چه خبره؟ مبادا چیزی از قلم بیوفته!