اذهب إلى المحتوى

Fahmy Mostafa

الأعضاء
  • المساهمات

    91
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    1

كل منشورات العضو Fahmy Mostafa

  1. سمعت عن مصطلح memoization من فترة قصيرة ولم أفهم الغرض منه، أعلم أنه يستخدم لتسريع البرامج لكن كيف يتم هذا الأمر؟ ولماذا لا تستعمله كل البرمجيات؟ حاولت البحث عن إجابة لهذه الأسئلة لكن لم أجد مصادر عربية تفيد في هذا الأمر.
  2. لدي قائمة تحتوي على أربعة أرقام وأريد أن أقوم بتمرير كل القيم من هذه القائمة إلى دالة تقبل أربعة مدخلات كالتالي: def echo(a, b, c, d): print(a, b, c, d) myLits = [1, 2, 3, 4] أريد تمرير محتوى myList إلى دالة echo، في لغات أخرى مثل JavaScript يمكنني أن أستخدم المعامل "..." كالتالي: echo( ...myList ) كيف أقوم بهذا الأمر في بايثون؟
  3. لدي مجلد يحتوي على عدد من ملفات بايثون كالتالي: foo/ ├── dir/ | ├── file.py | └── boo.py └── helpers.py أريد أن أقوم بإستدعاء ملف helpers.py داخل الملف file.py، كيف أقوم بهذا الأمر بإستخدام جملة import؟
  4. لدي مصفوفة بسيطة التالي: x = numpy.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) أريد أن أقوم بتحويلها إلى مصفوفة بحجم 5*3 كالتالي: numpy.array([[1, 2, 3, 4, 5] ,[4, 5, 6 ,7, 8], [7, 8, 9, 10, 11]]) حاولت أن أستخدم حلقة for للقيام بهذا الأمر لكن الخطوات لم تكن واضحة بالنسبة لي، كيف يمكنني تطبيق هذا الأمر؟
  5. لقد سمعت أنه بالنسبة لـ "المصفوفات الكبيرة" يجب أن أستخدم Numpy بدلاً من قوائم Python ، لأسباب تتعلق بالأداء وقابلية التوسع. الشيء هو أنني أعرف قوائم بايثون ويبدو أنها تعمل بدون مشكلة بالنسبة لي. ماذا ستكون الفوائد إذا انتقلت إلى Numpy؟ وهل أحتاج إلى إمكانيات أكبر في حسوبي لكي أتعامل مع Numpy؟ وكيف أقيس سرعة العمليات التي تتم من خلال numpy؟
  6. لدي مصفوفتين numpy كالتالي: x = np.array([0, 1, 2]) y = np.array([3, 4, 5]) ما أريده هو عمل مصفوفة جديدة تكون عبارة عن دمج المصفوفتين كالتالي: result = np.array([ [0, 3], [0, 4], [0, 5], [1, 3], [1, 4], [1, 5], [2, 3], [2, 4], [2, 5] ]) كيف يمكنني عمل ذلك من خلال مكتبة numpy لإتمام المهمة بأسرع ما يكون؟
  7. قمت مؤخرًا بتحميل مشروع Python وعندما أردت تثبيت كل المكتبات المستعملة في هذا المشروع من خلال الأمر التالي: pip install -r requirements.txt ظهر لي هذا الخطأ: OSError: [Errno 13] Permission denied: '/usr/local/lib/python3.7/dist-packages/amqp-1.4.6.dist-info' كيف أقوم بحل هذا الخطأ وأقوم بتثبيت المكتبات؟
  8. هل من الممكن إنشاء كائن عبارة عن set لكنه مرتب أي orderedSet في بايثون بدلًا من إستعمال list ثم حذف كل القيم المكررة؟
  9. يمكن إستعمال دوال مثل find و rfind للبحث عن نص في نص آخر، لكن هل توجد طريقة تمكنني من إيجاد كل النصوص المكرر في نص معين في بايثون كالتالي على سبيل المثال: >>> x = "hello, world! Hi! hello!" >>> x.find("hello") 0 >>> x.rfind("hello") 18 هل توجد دالة مثل find_all على سبيل المثال؟
  10. عندما أقوم بربط concatenate نص مع رقم أو قائمة يظهر لي الخطأ التالي: TypeError: must be str, not int وأنا أفهم سبب الخطأ، لكن ألا توجد طريقة لربط النص مع رقم بدون استعمال دوال مثل str لتحويل الارقام إلى نصوص، فعلى سبيل المثال أريد هنا أن يتم طباعة العمر أيضًا ضمن النص: age= 18 print("I have " + age + " years old") هل بإمكاني استعمال طرق أخرى غير علامة + لربط نص مع رقم؟
  11. لدي دالة بسيطة تقبل عدد غير محدد من المدخلات الرقمية، كالتالي: def func(*args): # print(len(args), max(args), min(args)) return len(args) or max(args)-min(args) print(func(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)) # 10 لماذا تم اعادة الرقم 10 هنا؟ أليس من المفترض أن يتم إعادة قيمة منطقية True/False ونفس الأمر إن قمت بتغيير or إلى and في الدالة كالتالي: def func(*args): # print(len(args), max(args), min(args)) return len(args) and max(args)-min(args) print(func(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)) # 9
  12. هل من المؤكد أن True == 1 و False == 0 في كل الأحوال، فعلى سبيل المثال ، هل هو مضمون بأي شكل من الأشكال أن الشفرة التالية ستؤدي دائمًا إلى نفس النتائج: 1 == True # True 0 == False # True ['hello', 'world'][False] # is 'hello' 1 + True # 2 هل يمكن في أي إحتمال أن يفشل الكود السابق لأي سبب من الأسباب المتعلقة بنوع الكائنات؟ وهل دائمًا يتم إعتبار True بالقيمة 1 و False بالقيمة 0؟ أم أن هناك حالات لا تتساوى هذه القيم؟
  13. لدي نص كالتالي: string = "board, projects, resources and activities" ولدي قائمة تحتوي على عدد من النصوص في داخلها كالتالي: arr = ['board', 'projects', 'activities'] كيف أقوم بالتحقق من وجود أغلب النصوص (أكثر من نصف عدد القيم في القائمة) في النص الأول؟
  14. لدي نقطتين كالتالي: (a, b, c) (x, y, z) وأريد أن أقوم بحساب المسافة بين النقطتين كالتالي: dist = sqrt((a-x)^2 + (b-y)^2 + (c-z)^2) كيف يمكنني حساب المسافة بين النقطتين باستخدام numpy فقط؟ import numpy point1 = numpy.array((a, b, c)) point2 = numpy.array((x, y, z))
  15. قمت بإنشاء الكائنات datetime64 و datetime.datetime و Timestamp كالتالي: import datetime import numpy as np import pandas as pd dt = datetime.datetime(2012, 5, 1) ts = pd.DatetimeIndex([dt])[0] dt64 = np.datetime64(dt) الآن كيف أقوم بالتحويل بين هذه الأنواع وبعضها البعض بإستخدام numpy؟
  16. لدي مصفوفة بالشكل التالي: x = np.array([[0, 1], # 0 [2, 3], # 1 [4, 5], # 2 [6, 7], # 3 [8, 9]]) # 4 وأريد أن أقوم بإيجاد الفهرس الخاص بكل صف في المصفوفة التالي: search_array = np.array([[0, 1], [4, 5], [8, 9] ]) من المفترض أن تكون النتيجة كالتالي: [0, 2, 4] كيف أقوم بعمل هذا الأمر باستخدام مكتبة numpy؟
  17. ما هي الطريقة الأكثر فاعلية لتعيين دالة map على مصفوفة numpy؟ الطريقة التي كنت أقوم بها في مشروعي الحالي هي كما يلي: import numpy as np arr = np.array([0, 1, 2, 3, 4, 5]) arr_squarer = lambda t: t ** 2 squares = np.array([arr_squarer (i) for i in arr_squarer]) لكن أعتقد أن هذه الطريقة غير عملية على الإطلاق، هل توجد طريقة أفضل للقيام بذلك من خلال مكتبة numpy فقط
  18. أحاول إنشاء دالة تقوم بحذف كل الحروف المتحركة (aeiou) من نص مدخل إليها، لكن المشكلة هي أنه لا يتم حذف كل الحروف المتحركة، ويتبقى حرف متحرك أخير، هذا هو الكود الخاص بي: text = "Hellooo, world! Words!" def removeVowel(text): textlist = list(text.lower()) for char in textlist: if char in 'aeiou': textlist.remove(char) return "".join(textlist) print(removeVowel(text)) # hll, wrld! words! كما تلاحظ حرف o في كلمة words لم يتم حذفه، ما الخطأ الذي أقوم به هنا؟
  19. لدي قاموس كالتالي: dataDict = { "a":{ "x": 1, "y": 2, "z": 3 }, "b":{ "x": 1, "y": { "x": 1, "y": 2, "z": 3 }, "z": 3 } } كيف يمكنني الوصول إلى القيمة 3 من القاموس من خلال قائمة المفاتيح السابقة؟ أي كيف أقوم باستخدام القائمة السابقة للحصول على القيمة الموجودة في القاموس بنفس الطريقة التالية: dataDict["b"]["y"]["z"] كيف يمكنني الوصول إلى القيمة 3 من القاموس من خلال قائمة المفاتيح السابقة؟ هل توجد مكتبة / دولة قياسية تقوم بهذا الأمر بشكل سريع؟
  20. عندما أستخدم التابع list.append لإضافة عنصر إلى القائمة، يتم اعتبار قيمتها False كالتالي: >>> x = [] >>> not x.append(123) True >>> ما هو سبب هذا الأمر؟ وهل يمكن تطبيقه في دوال خاصة بي أيضًا؟
  21. أريد أن أقوم بتبديل عدد من الأسطر في ملف نصي عادي، لذلك أقوم بقراءة كل الملف (قد تحدث مشاكل إن كان الملف كبير للغاية)، وبعد ذلك أقوم بالبحث عن السطر المطلوب وتبديله، لكن المشكلة هي بمجرد إيجاد السطر المطلوب تبديله لا أعلم كيفية حذف السطر الخاص به والكتابة مكانه، هل توجد طريقة للكتابة في مكان معين في ملف نصي بدلًا من كتابة كامل محتوى الملف مرة أخرى؟ هذا هو الكود الخاص بي: f = open(file) for line in f: if line.contains('foo'): newline = line.replace('foo', 'bar') # كيفية كتابة هذا السطر الجديد مرة أخرى إلى الملف
  22. يظهر لدي الخطأ التالي دائمًأ عندما أحاول أن أستخدم مكتبة Numpy: حاولت أن أستخدم بايثون الإصدار 3.7 و 3.8 ولكن يبدو أن هذا الأمر لم يحل المشكلة، كما حاولت أن أعيد تثبيت كل من pandas و numpy من خلال الأمر pip install -r requirements.txt وهذه محتويات ملف requirements.txt numpy==1.19.4 pandas==1.1.2 beautifulsoup4==4.8.4 requests==2.25.0
  23. كيف يمكنني إنشاء دالة تكرارية (أو كائن مكرر) في لغة بايثون؟ بحيث يمكن إستخدامه في حلقات التكرار مثل حلقة for ، على سبيل المثال عمل صنف Counter يمكن إستخدامه بالشكل التالي: for i in Counter(3, 9): print(i)
  24. رأيت اليوم كود يستخدم جملة with للتعامل مع الملفات لكن لم أفهم ما الذي تفعله هذه الجملة ولماذا تم استعمالها، لذلك لدي بعض الأسئلة حولها: ما هو إستخدام هذه الجملة؟ وما هي الصيغة syntax الصحيحة لاستعمالها؟ هل يوجد خطر في استخدام هذه الجملة؟ وهل يمكنني أن أستعمل جملة try … except بدلًا منها ما هي المكتبات / الأصناف / الدوال القياسية التي يمكنني استخدامها معها؟ (مثل دالة open على سبيل المثال)
  25. لدي DataFrame بإستخدام مكتبة Pandas كالتالي: DataFrame([ {'var1': 'a', 'var2': 1}, {'var1': 'b', 'var2': 1}, {'var1': 'c', 'var2': 1}, {'var1': 'd', 'var2': 2}, {'var1': 'e', 'var2': 2}, {'var1': 'f', 'var2': 2} ]) كيف يمكنني أن أحول إطار البيانات هذا إلى مصفوفة في مكتبة Numpy؟
×
×
  • أضف...