بايثون العرب
10.4K subscribers
871 photos
183 videos
770 links
Download Telegram
✨ تحسين أداء Python: استخدام `enumerate` بكفاءة ✨

هل سئمت من تتبع الفهارس يدويًا في حلقات Python؟ إليك طريقة أنيقة لتبسيط الكود الخاص بك!

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


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

['#Python', '#برمجة', '#تعلم_البرمجة', '#نصائح_برمجية', '#enumerate']
🚀 تنظيم الكود باستخدام الدوال في بايثون

هل تبحث عن طريقة لجعل الكود الخاص بك أكثر تنظيمًا وقابلية للقراءة؟ الدوال هي الحل السحري! تعرف على كيفية استخدامها بفعالية.

def greet(name):
return f"Hello, {name}!"

message = greet("World")
print(message)

def add_numbers(a, b):
return a + b

result = add_numbers(5, 3)
print(f"The sum is: {result}")


الدوال (functions) تسمح لك بتجميع مجموعة من الأوامر لأداء مهمة معينة. يمكنك استدعاء الدالة عدة مرات، مما يقلل التكرار ويجعل الكود أسهل في الفهم والصيانة. في المثال، قمنا بإنشاء دالة `greet` للترحيب ودالة `add_numbers` لجمع رقمين.

['#بايثون', '#برمجة', '#دوال', '#تنظيم_الكود', '#Python', '#Programming', '#Functions', '#CodeOrganization']
✨ تحسين أداء 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()` في Python تسمح لك بالمرور على قائمة (أو أي كائن قابل للتكرار) والحصول على كل من الفهرس والقيمة في كل تكرار. هذا يجعل الكود أكثر وضوحًا ويقلل من الحاجة إلى متغيرات عداد إضافية. يمكنك أيضًا تحديد قيمة بداية للفهرس باستخدام الوسيط `start`.

['#Python', '#برمجة', '#تعلم_البرمجة', '#enumerate', '#نصائح_برمجية', '#PythonTips']
✨ تحسين أداء 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 تسمح لك بالمرور على أي كائن قابل للتكرار (مثل القوائم، الصفوف، السلاسل النصية) والحصول على كل من الفهرس والعنصر في كل تكرار. هذا يجعل الكود أكثر وضوحًا وأقل عرضة للأخطاء مقارنة بتتبع الفهرس يدويًا.

['#Python', '#برمجة', '#تعلم_البرمجة', '#enumerate', '#نصائح_برمجية']
🚀 تحسين أداء Python: استخدام list comprehensions!

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

squares = [x**2 for x in range(10)]
print(squares)


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

['#Python', '#برمجة', '#تطوير', '#ListComprehensions', '#كود', '#نصائح_برمجية']
🚀 تحسين أداء 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

p1 = Point(1, 2)
ps1 = PointWithoutSlots(1, 2)

print(f'Size with __slots__: {sys.getsizeof(p1)} bytes')
print(f'Size without __slots__: {sys.getsizeof(ps1)} bytes')


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

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

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

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

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


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

['#Python', '#برمجة', '#ListComprehensions', '#تطوير', '#كود']
✨ تلميح بايثون: استخدام enumerate() بسهولة ✨

هل سئمت من تتبع الفهارس يدويًا عند المرور على قائمة؟ تابع هذا التلميح السريع لاستخدام `enumerate()`!

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

for index, value in enumerate(my_list):
print(f'الفهرس: {index}, القيمة: {value}')


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

['#بايثون', '#برمجة', '#تلميحات_بايثون', '#enumerate', '#تعلم_البرمجة']
✨ تحسين أداء Python: استخدام `list comprehension` ✨

هل تريد كتابة كود Python أكثر إيجازًا وكفاءة؟ تعلم كيف يمكن لـ `list comprehension` تبسيط مهامك!

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


بدلاً من كتابة حلقة `for` تقليدية لإنشاء قائمة جديدة، تسمح لك `list comprehension` بإنشاء قوائم جديدة بطريقة موجزة وواضحة. في هذا المثال، قمنا بإنشاء قائمة `squares` تحتوي على مربعات كل رقم في قائمة `numbers`.

['#Python', '# البرمجة', '#ListComprehension', '#كود', '#تطوير']
🚀 تسريع عمليات البحث في بايثون! 🚀

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

my_list = list(range(1000000))
search_item = 999999

# الطريقة التقليدية (أبطأ)
if search_item in my_list:
print("العنصر موجود (بالطريقة التقليدية)")

# طريقة أسرع باستخدام set (للبحث المتكرر)
my_set = set(my_list)
if search_item in my_set:
print("العنصر موجود (باستخدام set)")


عند البحث عن عنصر في قائمة كبيرة، قد يستغرق الأمر وقتًا طويلاً. تحويل القائمة إلى `set` (مجموعة) قبل البحث يجعل العملية أسرع بكثير، خاصة إذا كنت ستقوم بالبحث عدة مرات، لأن البحث في المجموعات يتم في وقت ثابت (O(1)) تقريبًا، بينما في القوائم يعتمد على حجم القائمة (O(n)).

['#بايثون', '#برمجة', '#تطوير', '#Python', '#Programming', '#Tips']
💡 تحسين أداء Python باستخدام List Comprehensions!

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

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

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


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

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

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

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

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


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

['#Python', '#برمجة', '#ListComprehensions', '#كود', '#تطوير']
مشروع Debian Linux اعتمد رسميًا قرار عام يحدد موقفه من استخدام الذكاء الاصطناعي.

القرار اسمه:

«الاستخدام المسؤول للذكاء الاصطناعي التوليدي»

ومضمونه باختصار:

انه Debian لا يشجع ولا يمنع استخدام أدوات الذكاء الاصطناعي التوليدي في تطوير البرمجيات أو صيانتها أو كتابة التوثيق أو بناء الحزم أو أي مواد ثانية تنشر ضمن المشروع.

يعني بشكل أبسط:

استخدم الذكاء الاصطناعي.

لا تستخدمه.

خذ راحتك Debian ماعنده مشكلة 😂

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

التصويت انتهى قبل امس، وتم بنظام التصويت التفضيلي.

والآن هذا صار موقف Debian الرسمي من الذكاء الاصطناعي.
المبرمجين زعلانين

مطور معروف في Debian أعلن انسحابه من المشروع بعد تصويت المشاركين لصالح السماح بالمساهمات اللي تستخدم الذكاء الاصطناعي.

المطور Antoine Le Gonidec كتب في بيان انسحابه:

«أريد أن تكون عواقب تقبّل Debian الكامل لتقنيات يدعمها الفاشيون معروفة للجميع».

وقال:

«ماعاد يهمني أي شيء يخرج من Debian».

وأضاف:

«التظاهر باتخاذ موقف محايد أمام الفاشية ماهو حياد، بل تعاون فعلي معها».

يعني قرار Debian اللي كان مضمونه تقريبًا:

استخدم الذكاء الاصطناعي أو لاتستخدمه، إحنا مانمنعه

كان كافي بالنسبة له علشان يترك المشروع بالكامل.

ايش رأيكم بكلامه؟
ناعي قادر يتعامل معها أفضل منه.

يعني وصلنا لمرحلة غريبة شوي:

"ما أعرف بالضبط كيف هذا الكود يشتغل لكن الاختبارات تقول إنه أسرع، صحيح، وما يخرب شيء."

وخلاص نطلقه

السؤال هنا:

هل فعلًا هذي هي المرحلة الطبيعية القادمة للبرمجة؟

ولا إحنا قاعدين نبني طبقات ضخمة من الاكواد اللي محد يفهمها، وبنكتشف المشكلة يوم شيء ينفجر؟ 🤔
This media is not supported in your browser
VIEW IN TELEGRAM
مهندسين OpenAI صاروا يكتبون كود هم أنفسهم مايقدرون يشرحونه سطر بسطر 😂

القصة حكاها جوردان نانوس، محلل في SemiAnalysis، وكان يتعاون مع مهندسين من OpenAI أثناء اختبارهم لشريحة الاستدلال الجديدة Jalapeño على اختبار InferenceX التابع لـ SemiAnalysis.

بحسب كلامه، مهندسين عندهم خبرة تقنية قوية جدًا ماقدروا يشرحون بالتفصيل ايش يسوي الكود سطر بسطر.

والسبب؟

الكود منخفض المستوى بالكامل تم توليده بواسطة Codex.

بالتحديد كان عبارة عن Kernel مكتوب بلغة التجميع منخفضة المستوى Gluon.

والمهندسين أصلًا ماجلسوا يفهمون كل تفاصيله.

ليش؟

لأنه ببساطة… شغال 😂

نانوس يشوف إن هذا مو شيء سيئ، بل بداية تغيير كامل في طريقة تطوير البرمجيات.

المطور مستقبلًا مو بس ممكن ما يكتب الكود بنفسه…

ممكن حتى ما يحتاج يفهم كل سطر فيه.

دوره يصير:

يحدد المشكلة.

يبني المعمارية.

يعطي الذكاء الاصطناعي القيود والمتطلبات.

وبعدها يقيس النتيجة ويتأكد إنها صحيحة وسريعة وتحقق المطلوب.

أما التفاصيل منخفضة المستوى، مثل كيف تتحرك البيانات داخل العتاد وكيف تتم معالجة الذاكرة وتنفيذ التعليمات، فما عاد ضروري الإنسان يفكر فيها بنفس العمق إذا الذكاء الاصط
This media is not supported in your browser
VIEW IN TELEGRAM
واحد كان يستعرض قدرات نظام القيادة الذاتية اللي طوره بنفسه

وأثناء العرض صدم سيارة شرطة 🤣

اختبر في الإنتاج واكتشف الخطأ في الإنتاج 🔥
طلبت من الذكاء الاصطناعي يمر على 160 ألف قصيدة ويعطي كل قصيدة اوازن مناسبه، اتوقع هذا اهم تحديث بيزل وبعدها الاقترحات بتكون اكثر تنوع وبنفس الوقت كلها ضمن اهتماماتك ومافيها قصائد مكرره