بايثون العرب
10.4K subscribers
871 photos
183 videos
770 links
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
تخيلوا الـreCAPTCHA الجديدة اللي تطلب منك تلوّح بيدك قدام الكاميرا اتجاوزوها بصور عادية شوفوا الفيديو.

شركة قيمتها تريليونات الدولارات وفيها من أفضل المهندسين في العالم ضد man_waving.jpg
💡 تحسين أداء Python باستخدام List Comprehensions 🚀

هل تبحث عن طريقة لكتابة كود Python أكثر إيجازًا وكفاءة؟ دعنا نستكشف قوة List Comprehensions!

numbers = [1, 2, 3, 4, 5]
squares = [x**2 for x in numbers]
print(squares)


List Comprehensions توفر طريقة مختصرة لإنشاء القوائم. بدلًا من استخدام حلقة for تقليدية، يمكنك إنشاء قائمة جديدة بناءً على قائمة موجودة في سطر واحد من الكود. هذا يجعل الكود أسهل في القراءة وأسرع في التنفيذ.

['#Python', '#برمجة', '#ListComprehensions', '#كود', '#تطوير', '#تعلم_البرمجة']
صار لي فترة أدور تطبيق للشعر العربي الكلاسيكي يكون احترفي ومافي شي اعجبني وقررت أسوّيه بنفسي.

غُرَر.

مكتبة فيها شعر لأكثر من ١٦٠٠ شاعر، من المعلقات لين المتنبي وأبي العلاء المعرّي. والواجهة عربية من البداية وكل جهاز له تصميمه الآيفون بفلسفته والأندرويد بالمتريال يعني نتيف للنظامين.

غُرَر مو بس مكتبة تقرأ منها. تحفظ الأبيات اللي تحبها والتطبيق يرجّعها لك بين فترة وفترة عشان تثبت معاك. تجمع مختاراتك في مكان ما يضيع وأي بيت يعجبك تطلعه بصوره أنيقة تنشرها أو تهديها لأحد. وإذا استصعب عليك معنى فيه شرح للقصائد المشهورة تفهّمك من غير ما تدوّر خارج التطبيق . ولو عندك النسخة المدفوعة يكون شغّال حتى بدون نت ومعاك وين ما رحت.

طبعاً مجاني وبدون إعلانات

حملوه من هناghurar.app/
صار لي فترة أدور تطبيق للشعر العربي الكلاسيكي يكون احترفي ومافي شي اعجبني وقررت أسوّيه بنفسي.

غُرَر.

مكتبة فيها شعر لأكثر من ١٦٠٠ شاعر، من المعلقات لين المتنبي وأبي العلاء المعرّي. والواجهة عربية من البداية وكل جهاز له تصميمه الآيفون بفلسفته والأندرويد بالمتريال يعني نتيف للنظامين.

غُرَر مو بس مكتبة تقرأ منها. تحفظ الأبيات اللي تحبها والتطبيق يرجّعها لك بين فترة وفترة عشان تثبت معاك. تجمع مختاراتك في مكان ما يضيع وأي بيت يعجبك تطلعه بصوره أنيقة تنشرها أو تهديها لأحد. وإذا استصعب عليك معنى فيه شرح للقصائد المشهورة تفهّمك من غير ما تدوّر خارج التطبيق . ولو عندك النسخة المدفوعة يكون شغّال حتى بدون نت ومعاك وين ما رحت.

طبعاً مجاني وبدون إعلانات

حملوه من هناghurar.app/
RT@alqaabba: التطبيق الي اشغلتكم فيه بقصايده اخر فتره 😍😍😍
🚀 تحسين أداء Python: استخدام List Comprehensions

هل تريد كتابة كود Python أكثر إيجازًا وفعالية؟ تعلم كيف تستخدم List Comprehensions لتحسين أدائك!

numbers = [1, 2, 3, 4, 5]
squares = [x**2 for x in numbers]
print(squares)

# مقارنة مع الطريقة التقليدية:
# squares_old = []
# for x in numbers:
# squares_old.append(x**2)
# print(squares_old)


List Comprehensions توفر طريقة مختصرة لإنشاء قوائم. بدلاً من استخدام حلقة for تقليدية، يمكنك كتابة نفس المنطق في سطر واحد. هذا يجعل الكود أسهل للقراءة وأحيانًا أسرع.

['#Python', '#برمجة', '#ListComprehensions', '#تطوير', '#كود']
🚀 تحسين أداء Python: استخدام `enumerate` بدلاً من عداد يدوي 🚀

هل تعبت من كتابة عدادات يدوية في حلقات Python؟ هناك طريقة أسهل وأكثر فعالية!

my_list = ['apple', 'banana', 'cherry']

# الطريقة التقليدية (أقل كفاءة)
index = 0
for item in my_list:
print(f'Index: {index}, Item: {item}')
index += 1

print('\n--- باستخدام enumerate ---')

# الطريقة المثلى باستخدام enumerate
for index, item in enumerate(my_list):
print(f'Index: {index}, Item: {item}')


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

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

هل تريد كتابة كود Python أكثر كفاءة وإيجازًا؟ تعلم كيف تجعل قوائمك تتشكل بسحر!

numbers = [1, 2, 3, 4, 5]
squares = [n**2 for n in numbers]
print(squares)


List comprehensions توفر طريقة مختصرة لإنشاء القوائم. بدلاً من كتابة حلقة for تقليدية، يمكنك إنشاء القائمة في سطر واحد. في هذا المثال، ننشئ قائمة 'squares' تحتوي على مربعات الأرقام الموجودة في قائمة 'numbers'.

['#Python', '#برمجة', '#ListComprehensions', '#كود', '#تطوير']
✨ تحسين أداء Python: فهم GIL 🐍

هل تساءلت يومًا لماذا قد لا تستفيد برامج Python متعددة الخيوط (multithreaded) بشكل كامل من وحدات المعالجة المركزية (CPU) متعددة النوى؟ الجواب يكمن في Global Interpreter Lock (GIL). دعنا نتعمق!

import threading
import time

def countdown(n):
while n > 0:
n -= 1

start_time = time.time()
# تشغيل دالتين في خيطين منفصلين (ولكن GIL يحد من التوازي الحقيقي)
thread1 = threading.Thread(target=countdown, args=(10000000,))
thread2 = threading.Thread(target=countdown, args=(10000000,))

thread1.start()
thread2.start()

thread1.join()
thread2.join()

end_time = time.time()
print(f"الوقت المستغرق: {end_time - start_time:.4f} ثانية")


Global Interpreter Lock (GIL) هو آلية في CPython (التطبيق الأكثر شيوعًا لبايثون) تمنع خيطًا واحدًا فقط من تنفيذ كود بايثون في كل مرة، حتى على المعالجات متعددة النوى. هذا يعني أنه بالنسبة للمهام التي تعتمد بكثافة على وحدة المعالجة المركزية (CPU-bound)، فإن استخدام الخيوط المتعددة قد لا يؤدي إلى تسريع كبير. للحصول على توازي حقيقي للمهام التي تعتمد على وحدة المعالجة المركزية، فكر في استخدام وحدات (multiprocessing) بدلاً من الخيوط (threading).

['#Python', '#GIL', '#Programming', '#CPython', '#Multithreading', '#Performance', '#Tips']
💡 تحسين أداء Python باستخدام List Comprehensions!

هل تريد كتابة كود Python أكثر إيجازًا وكفاءة؟ تعلم كيف تجعل قوائمك تتشكل بلمح البصر باستخدام List Comprehensions!

numbers = [1, 2, 3, 4, 5]
squares = [x**2 for x in numbers]
print(squares)

# مثال مع شرط
even_squares = [x**2 for x in numbers if x % 2 == 0]
print(even_squares)


List comprehensions توفر طريقة مختصرة لإنشاء القوائم. الصيغة الأساسية هي `[expression for item in iterable]`. يمكنك أيضًا إضافة شرط باستخدام `if` لجعل العملية أكثر تحديدًا. إنها أسرع وأكثر قابلية للقراءة من حلقات `for` التقليدية لإنشاء القوائم.

['#Python', '#برمجة', '#ListComprehensions', '#تطوير', '#كود']
✨ تحسين أداء Python: استخدام List Comprehensions!

هل تبحث عن طريقة لكتابة كود Python أكثر إيجازًا وكفاءة؟ دعنا نتعرف على List Comprehensions!

numbers = [1, 2, 3, 4, 5]
squares = [x**2 for x in numbers]
print(squares)


List Comprehensions هي طريقة مختصرة لإنشاء القوائم. بدلاً من كتابة حلقة `for` تقليدية، يمكنك إنشاء قائمة جديدة (مثل `squares`) بناءً على قائمة موجودة (`numbers`) في سطر واحد. إنها تجعل الكود أسهل للقراءة وأكثر كفاءة.

['#Python', '#برمجة', '#ListComprehensions', '#PythonTips', '#كود']
💡 استخدام enumerate في بايثون لتبسيط الحلقات التكرارية 💡

هل سئمت من تتبع الفهارس يدوياً في حلقاتك التكرارية؟ إليك طريقة بايثونية أنيقة تجعل كودك أكثر وضوحاً وقراءة!

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

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


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

['#بايثون', '#برمجة', '#enumerate', '#PythonTips', '#تعليم_برمجة']
🚀 تحسين سرعة الدوال في بايثون باستخدام `lru_cache`

هل تعاني من بطء بعض الدوال التي تستدعيها مراراً وتكراراً بنفس المدخلات؟ دعنا نكتشف كيف يمكن لـ `lru_cache` تسريعها!

from functools import lru_cache
import time

@lru_cache(maxsize=None)
def slow_function(n):
"""دالة بطيئة تحاكي عملية مكلفة."""
time.sleep(1) # محاكاة عملية تستغرق وقتاً
return n * 2

# الاستدعاء الأول (سيستغرق وقتاً)
start_time = time.time()
result1 = slow_function(5)
end_time = time.time()
print(f"الاستدعاء الأول: {result1}, الوقت المستغرق: {end_time - start_time:.2f} ثانية")

# الاستدعاء الثاني بنفس المدخلات (سيكون سريعاً جداً)
start_time = time.time()
result2 = slow_function(5)
end_time = time.time()
print(f"الاستدعاء الثاني: {result2}, الوقت المستغرق: {end_time - start_time:.2f} ثانية")

# استدعاء بمدخلات مختلفة (سيستغرق وقتاً مجدداً)
start_time = time.time()
result3 = slow_function(10)
end_time = time.time()
print(f"الاستدعاء الثالث: {result3}, الوقت المستغرق: {end_time - start_time:.2f} ثانية")


الديكور `@lru_cache(maxsize=None)` يقوم بتخزين نتائج استدعاءات الدالة. عندما تُستدعى الدالة مرة أخرى بنفس المدخلات، يتم إرجاع النتيجة المخزنة مباشرة بدلاً من إعادة حسابها، مما يؤدي إلى تسريع كبير في الأداء، خاصة للدوال التي تتطلب عمليات حسابية معقدة أو مكلفة.

['#بايثون', '#برمجة', '#تحسين_الأداء', '#lru_cache', '#PythonTips', '#Coding']
🚀 تحسين أداء Python: استخدام List Comprehensions

تعلم كيف تجعل كود Python الخاص بك أكثر إيجازًا وكفاءة باستخدام List Comprehensions!

numbers = [1, 2, 3, 4, 5]
squares = [n**2 for n in numbers]
print(squares)


List Comprehensions توفر طريقة مختصرة لإنشاء قوائم. بدلاً من كتابة حلقة for تقليدية، يمكنك إنشاء قائمة جديدة (مثل 'squares') في سطر واحد، مما يجعل الكود أسهل للقراءة وأسرع في التنفيذ.

['#Python', '#برمجة', '#ListComprehensions', '#تطوير', '#كود']
🚀 تحسين أداء Python: استخدام List Comprehensions!

هل تريد كتابة كود Python أكثر إيجازًا وكفاءة؟ إليك طريقة سحرية!

numbers = [1, 2, 3, 4, 5]
squares = [x**2 for x in numbers]
print(squares)


List comprehensions توفر طريقة مختصرة لإنشاء قوائم. بدلًا من استخدام حلقة for تقليدية، يمكنك بناء القائمة في سطر واحد. هذا يجعل الكود أسهل للقراءة وأسرع في التنفيذ.

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

هل تعلم أن هناك طريقة أسهل وأكثر كفاءة للتكرار على قائمة مع الحصول على الفهرس؟ تعرف على `enumerate`!

my_list = ['تفاحة', 'موزة', 'برتقالة']
for index, value in enumerate(my_list):
print(f'الفهرس: {index}, القيمة: {value}')


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

['#Python', '#برمجة', '#نصائح_برمجية', '#enumerate', '#تطوير']
🐍 فك تشفير السلاسل النصية في بايثون 🐍

هل واجهت يومًا سلسلة نصية مشفرة وتريد فك تشفيرها في بايثون؟ إليك طريقة بسيطة باستخدام مكتبة `base64`.

import base64

encoded_string = "SGVsbG8gV29ybGQh"

decoded_bytes = base64.b64decode(encoded_string)
decoded_string = decoded_bytes.decode('utf-8')

print(f"السلسلة المشفرة: {encoded_string}")
print(f"السلسلة المفكوكة: {decoded_string}")


نستخدم الدالة `base64.b64decode()` لفك تشفير السلسلة النصية من ترميز Base64 إلى بايتات. بعد ذلك، نحول البايتات إلى سلسلة نصية قابلة للقراءة باستخدام `.decode('utf-8')`.

['#بايثون', '#برمجة', '#Base64', '#تشفير', '#تعليم_بايثون']
🚀 تحسين أداء Python باستخدام List Comprehensions!

هل تبحث عن طريقة لكتابة كود Python أكثر إيجازًا وكفاءة؟ دعنا نستكشف قوة List Comprehensions!

numbers = [1, 2, 3, 4, 5]
squares = [x**2 for x in numbers]
print(squares)

# الطريقة التقليدية
squares_traditional = []
for x in numbers:
squares_traditional.append(x**2)
print(squares_traditional)


List Comprehensions توفر طريقة مختصرة لإنشاء قوائم. في المثال، قمنا بتربيع كل عنصر في القائمة `numbers` بكفاءة أكبر مقارنة بالحلقة التقليدية `for`.

['#Python', '#برمجة', '#ListComprehensions', '#كود', '#تعلم_البرمجة']
✨ تخصيص فلاتر القوائم في بايثون!

هل سئمت من البحث اليدوي في القوائم؟ تعلم كيف تستخدم `filter()` و `lambda` لإنشاء فلاتر ديناميكية وقوية بكفاءة عالية.

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)


الدالة `filter()` تأخذ دالة (هنا `lambda`) وقائمة. تقوم بتطبيق الدالة على كل عنصر في القائمة وترجع فقط العناصر التي تكون نتيجتها `True`. `lambda x: x % 2 == 0` هي دالة بسيطة تتحقق مما إذا كان الرقم زوجيًا.

['#بايثون', '#برمجة', '#تطوير', '#lambda', '#filter', '#قوائم']