بايثون العرب
10.4K subscribers
871 photos
183 videos
770 links
Download Telegram
🚀 تحسين أداء 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 توفر طريقة مختصرة لإنشاء القوائم. بدلاً من استخدام حلقة for تقليدية، يمكنك تعريف القائمة الجديدة وتحديد كيفية إنشائها في سطر واحد. هذا يجعل الكود أقصر وأسهل للقراءة، وغالبًا ما يكون أسرع أيضًا.

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

الـWSJ تقول إن الموديل الجديد مفتوح المصدر من Zhipu AI واسمه GLM-5.2 صار يضاهي Anthropic Mythos في مهام الأمن السيبراني والبحث عن الثغرات. وأكثر من كذا في الأختبارات طلع الموديل أحسن من Opus 4.8 في البرمجه. وفي Design Arena يتجاوز Fable 5 الأسطورية.

في أمريكا ماهم راضين عن هذا ويشوفون إن الحكومة لما تقيّد Mythos وGPT-5.6 بإيدها هي تعطي بكين أفضلية في سباق الذكاء الاصطناعي.
🚀 تبسيط التعامل مع التواريخ في بايثون!

هل سئمت من تعقيدات التعامل مع التواريخ؟ إليك طريقة سهلة باستخدام وحدة `datetime` في بايثون.

from datetime import datetime, timedelta

# الحصول على التاريخ والوقت الحالي
now = datetime.now()
print(f"الوقت الحالي: {now}")

# إنشاء تاريخ محدد
date1 = datetime(2023, 10, 26, 10, 30, 0)
print(f"تاريخ محدد: {date1}")

# إضافة أيام إلى تاريخ
future_date = now + timedelta(days=7)
print(f"بعد 7 أيام: {future_date}")

# حساب الفرق بين تاريخين
diff = date1 - now
print(f"الفرق بين التاريخين: {diff.days} يوم")


تسمح لك وحدة `datetime` بإنشاء كائنات تمثل التواريخ والأوقات، وإجراء عمليات حسابية بسيطة عليها مثل إضافة أو طرح فترات زمنية (باستخدام `timedelta`)، وحساب الفروقات بين التواريخ.

['#بايثون', '#برمجة', '#تعلم_بايثون', '#تطوير', '#datetime', '#تاريخ']
الذكاء الاصطناعي بيستبدل الكل الا المبرمجين

تقرير جديد من SignalFire يبيّن إن الذكاء الاصطناعي فعلًا سوّى تنظيف في قطاع التقنية وطبعا كلهم تضرروا ما عدا المبرمجين.

سوق العمل في 2026 أعاد ترتيب نفسه بطريقته:

• التوظيف في الشركات الكبيرة نزل 25% مقارنة بمستوى ما قبل الجائحة بس المهندسين ما تأثروا تقريبًا. الحين يشكّلون لين 55% من كل الموظفين الجدد. الذكاء الاصطناعي خلّى السينيورز فعّالين لدرجة إن ما حد ناوي يستغني عنهم.

• أكثر فئة تضررت المصممين (التوظيف في الشركات الكبيرة طاح 48%) والمسوّقين (نزلوا 36%).

• طبعاً السينيورز صاروا مستقلين لدرجة إن مدراء الإدارات الوسطى صاروا بدون فايدة.

• والجونيورز اللي يبون يدخلون المجال نعزيهم توظيفهم نزل 65%.
This media is not supported in your browser
VIEW IN TELEGRAM
تخيلوا Dario Amodei ضد النماذج مفتوحة المصدر

الرئيس التنفيذي لـAnthropic من فترة يخوّف المشرّعين من مخاطر النماذج المفتوحة وإنها ما تنضبط وصعب تتقيّد. والحين قال إن الأوبن سورس في الذكاء الاصطناعي مجرد مناورة لصرف الانتباه. حجته إن النماذج ما تقدر تكون مفتوحة المصدر فعلًا ولتشغيلها برضو تحتاج سحابة وبنية تحتية قوية بس التحكم فيها أصعب.

هذي شوية أرقام وحقائق:

80% من المشاريع الناشئة الأمريكية في الذكاء الاصطناعي مبنية على نماذج صينية.

في OpenRouter خلال سنة نزل بشكل حاد عدد التوكنز المصروفة على النماذج الأمريكية وصار الصرف على النماذج الصينية أكثر بالضعف.

وكمان شركات أمريكية كبيرة تنتقل بالجملة للنماذج الصينية المفتوحة. مثلًا Coinbase الحين تستخدم GLM-5.2 وKimi 2.7 وغيرها من النماذج الرخيصة عشان تكسب أكثر بسعر أقل.

يبدو إن Amodei فاهم إن الأوبن سورس يدمّر شغله والصينيون بدأوا يكسبون في سباق الذكاء الاصطناعي
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']