بايثون العرب
10.5K subscribers
866 photos
183 videos
768 links
Download Telegram
تلميحة بايثون سريعة! 💡

هل تعلم كيف تجعل طباعة النصوص والمتغيرات أسهل وأكثر أناقة في بايثون؟ إليك طريقة استخدام f-strings (formatted string literals) التي ستغير طريقة تعاملك مع السلاسل النصية!

name = "سارة"
age = 28
language = "بايثون"

# استخدام f-string لتضمين المتغيرات مباشرة
message = f"مرحباً، اسمي {name}، عمري {age} عاماً، وأحب برمجة {language}."

print(message)


تسمح لك f-strings بتضمين تعبيرات بايثون (مثل المتغيرات) مباشرة داخل سلاسل نصية عن طريق وضع حرف 'f' أو 'F' قبل علامات الاقتباس. هذا يجعل الكود أكثر وضوحاً، قراءةً، وأسهل في الصيانة مقارنةً بالطرق التقليدية مثل .format() أو علامة %. كما أنها أسرع في التنفيذ!

['#بايثون', '#تلميحات_برمجية', '#f_strings', '#PythonTips', '#تعلم_بايثون', '#برمجة']
تنسيق النصوص بمرونة باستخدام f-strings! ✨

اكتشف كيف يمكنك جعل تنسيق النصوص في بايثون أسهل وأكثر قراءة باستخدام f-strings القوية.

name = "أحمد"
age = 30
city = "الرياض"

# Using f-string for easy formatting
message = f"مرحباً، اسمي {name} وعمري {age} سنة. أعيش في {city}."
print(message)

# You can also include expressions and format them
price = 19.99
quantity = 3
total = f"السعر الإجمالي: {price * quantity:.2f} ريال."
print(total)


تتيح لك f-strings تضمين التعبيرات والمتغيرات مباشرة داخل السلاسل النصية باستخدام الأقواس المعقوفة {}، مما يجعل الكود أكثر وضوحاً واختصاراً. كما يمكنك تطبيق التنسيقات مباشرة داخل الأقواس.

['#بايثون', '#تعلم_بايثون', '#برمجة', '#نصائح_برمجية', '#fstrings', '#PythonTips']
تنسيق السلاسل النصية بـ f-strings في بايثون! 💡

تعلم كيف تجعل تنسيق السلاسل النصية أسهل وأكثر قابلية للقراءة باستخدام f-strings في بايثون. إنها طريقة قوية وفعالة لتضمين المتغيرات والتعبيرات مباشرة في سلاسلك النصية.

name = "أحمد"
age = 30
city = "الرياض"

# استخدام f-string لتنسيق سهل
greeting = f"مرحباً، اسمي {name} وعمري {age} سنة. أنا أعيش في {city}."
print(greeting)

# يمكن لـ f-strings أيضاً تقييم التعبيرات
price = 19.99
quantity = 3
total_cost = f"التكلفة الإجمالية: ${price * quantity:.2f}"
print(total_cost)


تعتبر f-strings (formatted string literals) في بايثون طريقة حديثة وقوية لتضمين التعبيرات داخل السلاسل النصية. تبدأ السلسلة بالحرف 'f' أو 'F'، ويمكنك وضع المتغيرات أو التعبيرات داخل أقواس متعرجة {} مباشرة داخل السلسلة. هذا يجعل الكود أكثر وضوحاً وسهولة في القراءة مقارنة بالطرق القديمة، كما يتيح لك تنسيق الأرقام بسهولة.

['#بايثون', '#برمجة', '#نصائح_برمجية', '#fstrings', '#تعلم_بايثون', '#PythonTips']
💡 نصيحة بايثون: استخدام f-strings للطباعة السهلة! 🐍

هل سئمت من كتابة سلاسل نصية معقدة في بايثون؟ إليك طريقة أسهل وأكثر أناقة باستخدام f-strings!

name = "علي"
age = 30
print(f"اسمي هو {name} وعمري {age} سنة.")


f-strings (formatted string literals) تسمح لك بتضمين تعبيرات بايثون مباشرة داخل السلاسل النصية عن طريق وضع حرف 'f' قبل علامة التنصيص. هذا يجعل الكود أكثر قابلية للقراءة ويقلل من الأخطاء.

['#بايثون', '#برمجة', '#نصائح_برمجية', '#fstrings', '#PythonTips']
🚀 تحسين أداء Python: استخدام `enumerate` بكفاءة!

هل سئمت من كتابة عدادات يدوية في حلقات Python؟ دعنا نكتشف كيف يمكن لدالة `enumerate` أن تجعل كودك أنظف وأكثر كفاءة!

my_list = ['تفاحة', 'موزة', 'كرز']

for index, value in enumerate(my_list):
print(f"العنصر رقم {index}: {value}")

# يمكنك تحديد قيمة بداية للعداد
for index, value in enumerate(my_list, start=1):
print(f"العنصر رقم {index}: {value}")


تسمح لك دالة `enumerate` بالحصول على كل من الفهرس (index) والقيمة (value) لكل عنصر أثناء المرور على قائمة أو أي كائن قابل للتكرار. هذا يلغي الحاجة إلى تتبع الفهرس يدويًا، مما يجعل الكود أكثر قابلية للقراءة. يمكنك أيضًا تحديد قيمة بداية للعداد باستخدام المعامل `start`.

['#Python', '#برمجة', '#تعلم_البرمجة', '#PythonTips', '#enumerate', '#كود_نظيف']
🚀 تحسين أداء Python: استخدام `__slots__`

هل تعاني من استهلاك ذاكرة كبير في كائنات Python؟ اكتشف كيف يمكن لـ `__slots__` أن يساعدك في تحسين الأداء وتقليل استهلاك الذاكرة بشكل كبير!

class Point:
__slots__ = ('x', 'y')

def __init__(self, x, y):
self.x = x
self.y = y

# بدون __slots__
class PointWithoutSlots:
def __init__(self, x, y):
self.x = x
self.y = y

import sys

# مقارنة حجم الذاكرة
point1 = Point(1, 2)
point2 = PointWithoutSlots(1, 2)

print(f'حجم الذاكرة لكائن Point (مع __slots__): {sys.getsizeof(point1)} بايت')
print(f'حجم الذاكرة لكائن PointWithoutSlots (بدون __slots__): {sys.getsizeof(point2)} بايت')


عندما تنشئ كائنًا في Python بدون `__slots__`، يقوم Python بإنشاء قاموس (`__dict__`) لتخزين سمات الكائن. هذا يوفر مرونة ولكنه يستهلك ذاكرة إضافية. بتعريف `__slots__`، أنت تخبر Python بتخصيص مساحة ثابتة لكل سمة محددة، مما يلغي الحاجة إلى `__dict__` ويقلل بشكل كبير من استهلاك الذاكرة، خاصة عند إنشاء عدد كبير من الكائنات. لاحظ أن استخدام `__slots__` يمنع إضافة سمات جديدة ديناميكيًا بعد الإنشاء.

['#Python', '#برمجة', '#تحسين_الأداء', '#تطوير_البرمجيات', '#PythonTips', '#علم_البيانات', '#Backend']
✨ تحسين سرعة استدعاء الدوال في بايثون باستخدام @lru_cache

هل تعاني من بطء في استدعاء دوال معينة تتكرر فيها نفس العمليات؟ الحل بسيط مع Decorator مميز في بايثون!

from functools import lru_cache

@lru_cache(maxsize=None)
def fibonacci(n):
if n < 2:
return n
return fibonacci(n-1) + fibonacci(n-2)

print(fibonacci(10))
print(fibonacci(30))


الـ @lru_cache هو Decorator يقوم بتخزين نتائج استدعاءات الدالة. في المرة القادمة التي يتم فيها استدعاء الدالة بنفس المدخلات، يتم إرجاع النتيجة المخزنة مباشرة بدلاً من إعادة حسابها، مما يوفر الكثير من الوقت خاصة مع الدوال التكرارية أو التي تتطلب عمليات حسابية معقدة.

['#بايثون', '#برمجة', '#تطوير', '#تحسين_الأداء', '#lru_cache', '#PythonTips']
💡 نصيحة بايثون: استخدام `enumerate` لترقيم القوائم بسهولة! 🚀

هل سئمت من كتابة عدادات يدوية عند المرور على عناصر قائمة في بايثون؟ جرب `enumerate`!

my_list = ['تفاحة', 'موزة', 'كرز']
for index, value in enumerate(my_list):
print(f'العنصر رقم {index}: {value}')


الدالة `enumerate()` تأخذ قائمة (أو أي كائن قابل للتكرار) وتعيد زوجًا من (الفهرس، القيمة) لكل عنصر. هذا يجعل الكود أنظف وأكثر قابلية للقراءة.

['#بايثون', '#برمجة', '#نصائح_بايثون', '#enumerate', '#PythonTips']
💡 استخدم enumerate في بايثون بكفاءة! 💡

هل سئمت من كتابة عدادات يدوية عند المرور على قوائم بايثون؟ إليك طريقة أسهل وأكثر أناقة!

my_list = ['تفاحة', 'موز', 'كرز']

for index, value in enumerate(my_list):
print(f"العنصر رقم {index}: {value}")


الدالة `enumerate()` تسمح لك بالحصول على كل من الفهرس (index) والقيمة (value) للعنصر أثناء المرور على أي تسلسل (مثل القوائم أو السلاسل النصية) في حلقة `for`. هذا يجعل الكود أقصر وأكثر قابلية للقراءة.

['#بايثون', '#برمجة', '#enumerate', '#نصائح_برمجة', '#PythonTips']
🐍 تحسين أداء Python: دليل سريع للمبتدئين

هل تريد جعل أكواد Python الخاصة بك أسرع وأكثر كفاءة؟ إليك بعض النصائح الأساسية التي ستساعدك على البدء!

def sum_list_naive(numbers):
total = 0
for num in numbers:
total += num
return total

import timeit

my_list = list(range(1000000))

time_naive = timeit.timeit(lambda: sum_list_naive(my_list), number=100)

print(f"الوقت المستغرق للطريقة البسيطة: {time_naive:.6f} ثانية")

def sum_list_optimized(numbers):
return sum(numbers)

time_optimized = timeit.timeit(lambda: sum_list_optimized(my_list), number=100)

print(f"الوقت المستغرق للطريقة المحسنة: {time_optimized:.6f} ثانية")


في هذا المثال، نقارن بين طريقة يدوية لجمع عناصر قائمة وطريقة استخدام الدالة المدمجة `sum()`. كما ترى، الدالة المدمجة أسرع بكثير لأنها مكتوبة بلغة C ومُحسّنة للغاية. القاعدة العامة: استخدم الدوال المدمجة والمكتبات القياسية كلما أمكن ذلك لضمان أفضل أداء.

['#Python', '#برمجة', '#تطوير', '#تعلم_البرمجة', '#PythonTips', '#Performance']