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

Adam Ebrahim

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

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

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

أجوبة بواسطة Adam Ebrahim

  1. أحاول أن أقوم بعمل حلقة تكرار عن طريق دالة تكرارية recursive function لكن بعد فترة من التشغيل (بالضبط في الفهرس index رقم 997) يظهر لي الخطأ التالي:

    RecursionError: maximum recursion depth exceeded in comparison

    ما سبب هذا الخطأ وكيف أقوم بإصلاحه؟

    • أعجبني 1
  2. أحاول أن أقوم باستبدال جزء من نص بنص آخر، لكن يبدو أن الدالة replace لا تعمل على الإطلاق

    >>> name  = "Adam"
    >>> name.replace('am', 'd')
    'Add'
    >>> name # لا يتم تحديث name على الإطلا
    'Adam'
    >>>

    حاولت أن أستخدم أكثر من دالة أخرى ولكن نفس الأمر لا يتم تحديث المتغير أبدا

    • أعجبني 1
  3. أحاول تنفيذ أوامر في سطر الأوامر من بايثون من خلال المكتبة subprocess ، لكن لدي سؤال وهو ما الفرق الذي يحدث عندما أستعمل المدخل shell=True وعندما لا أستعمله؟ كالتالي:

    callProcess = subprocess.Popen(['pwd'], shell=True) # Output: /mnt/c/Users/Adam
    
    
    
    callProcess = subprocess.Popen(['pwd']) # Output: /mnt/c/Users/Adam
    

    كلتا الطريقتين تعملان بدون مشكلة ولا أجد أي فرق بينهما،  أي الطريقتين يجب أن أستخدم؟

    • أعجبني 1
  4. أريد أن أقوم بتشغيل سكريبت بايثون بطريقة مباشرة، لذلك وضعت في بداية الملف الكود التالي:

    #!/usr/bin/env python
    

    لكن أريد أيضًا أن أقوم بعمل unbuffered output لذلك قمت بإضافة -u إلى الأمر السابق:

    #!/usr/bin/env python -u
    

    لكن المشكلة تحدث عندما أقوم بتشغيل الملف حيث أحصل على الخطأ التالي:

    python -u: no such file or directory

     

  5. أحاول أن أقوم بتحويل نص إلى رقم صحيح كالتالي:

    >>> x = "10.111 "
    >>> int(x)
    

    لكني أحصل على الخطأ التالي:

    Traceback (most recent call last):
    
      File "<stdin>", line 1, in <module>
    
    ValueError: invalid literal for int() with base 10: '10.111 '

    ثم حاول أن أقوم بإزالة المسافات الإضافية من النص كالتالي:

    >>> int(x.strip())
    

    لكن تحدث نفس المشكلة وأحصل على نفس الخطأ، كيف أقوم بتحويل هذا النص إلى رقم صحيح؟

    • أعجبني 1
  6. أحاول أن أقوم بتخزين مسار مجلد سطح المكتب في متغير path كالتالي:

    >>> x = 'C:\Users\name\Desktop'
    

    ولكن أحصل على الخطأ التالي:

      File "<stdin>", line 1
    
    SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

    وعندما أحاول تخزين مسارات أخرى وطباعتها، يتم طباعتها في سطرين مختلفين كالتالي:

    >>> x = 'C:\Windows\System32\networklist'
    >>> print(x)
    C:\Windows\System32
    etworklist
    >>> 

     

    • أعجبني 1
  7. وجدت كود يحتوي على بعض الأصناف classes ومن ضمن هذه الخصائص وجدت أنها تسمى بهذه الطريقة

    __var = value
    

    شرطتين سفليتين ( _ _ )المشكلة أن هذه الخصائص لا يتم طباعتها عندما أحاول ذلك وأحصل على الخطأ التالي:

    AttributeError: 'X' object has no attribute '__var'
    

    ما هي هذه المتغيرات وهل توجد طريقة لطباعتها أو الحصول على قيمتها؟

    • أعجبني 1
  8. حاولت أن أقوم بتثبيت مكتبة dulwich لعمل محاكاة لـ Git وكيفية عمله، وقمت بتثبيتها  من خلال الأمر التالي:

    pip install dulwich
    

    لكن في كل مرة أحصل على الخطأ 

    error: Unable to find vcvarsall.bat 
    

    ثم حاولت أن أقوم بتثبيت المكتبة يدويًا من خلال تحميل الكود المصدري الخاص بها ومحاولة تثبيته من خلال الأمر التالي:

    python setup.py install
    

    لكني أحصل على نفس الخطأ

    running build_ext
    
    building 'dulwich._objects' extension
    
    error: Unable to find vcvarsall.bat

     

  9. أريد أن أقوم بعمل قاموس يحتوي على بعض العناصر كالتالي:

    {2:True, 1:False, 4:None, 3:”Hi”}
    

    ومن المفترض أن يتم تحويله إلى التالي:

    {1:False, 2:True, 3:”Hi”, 4:None}
    

    حاولت البحث عن حل لهذه المشكلة أكثر من مرة ولكن كل الحلول التي وجدها تستخدم الدالة sorted التي تقوم بإعادة tuple وليس قاموس dictionary

  10. أحاول أن أقوم بعمل دالة تقوم بإستقبال أمر (كـنص) وتقوم هذه الدالة بتنفيذ هذا الأمر في الـ terminal أو سطر الأوامر.

    بعد ذلك تقوم الدالة بإرجاع النتيجة (كـنص أيضًا) وفي حالة لم يكن هناك نتيجة (لا يوجد مخرج في سطر الأوامر) تعيد None

    هنا مثال pseudo code:

    def execute(cmd):
    	pass
    
    print(execute(“ipconfig”))	# يتم تفيذ الأمر ipconfig في سطر الأوامر

     

    • أعجبني 1
  11. أحاول أن أقوم بعمل دالة تقوم بإرجاع قيم ثابتة fixed بناءً على مدخل معين للدالة. في لغات أخرى مثل C أو PHP كنت سأستعمل جملة switch أو case لكن في بايثون لا أعتقد أنه توجد جملة switch من الأساس.

     ما أفضل حل للقيام بمثل هذا الأمر حسب معايير PEP؟

    أستعمل python 3.10 (أحدث إصدار)

    • أعجبني 1
  12.  

    ما هي أفضل طريقة لاستدعاء دالة معينة من خلال نص (اسم الدالة) في برنامج بايثون. على سبيل المثال ، لنفترض أن لديّ الصنف foo بداخله method تسمى bar ، ولدي نص يحتوي على كلمة "bar". ما هي أفضل طريقة لاستدعاء foo.bar()؟

  13. لدي ملفين بايثون وأريد أن أقوم بإستدعاء الأول في داخل الثاني حتى أتمكن من إستخدام الدوال والمتغيرات الموجدة فيه، وبنيه الملفات كالتالي:

    projects
    |── blog
    |   |── helpers
    |       |── files.py
    |── dashboard
        |── helpers
            |── all.py

    كيف أقوم بإستدعاء الملف files.py من داخل الملف all.py؟

    • أعجبني 2
  14. كيفية ترتيب قائمة بإستخدام طريقة Natural sort order في بايثون؟

    لدي قائمة بالشكل التالي:

    ['Item10', 'item2', 'Item9', 'item3']
    

    وأريد أن أقوم بترتيب هذه القائمة بطريقة Natural sort order لتكون النتيجة كالتالي:

    ['item2', 'Item9', 'item10', 'Item11']
    

    حاولت أن أستعمل الدالة sorted وكذلك التابع sort لكن كانت النتيجة كالتالي:

    ['Item10', 'Item9', 'item2', 'item3']
    

    لاحظ الأرقام في كل عنصر وكذلك حرف i و I

    كيف يمكنني أن أقوم بترتيب القائمة للحصول على النتيجة الأولى؟

  15.  

    كيف يمكنني إستدعاء ملف Python من خلال مسار الملف الكامل؟ مثلًا لدي ملف في المسار التالي:

    C:\Users\Adam\OneDrive\Desktop\script.py

    كيف يمكنني إستدعاء هذا الملف كما نفعل بإستخدام جملة import ، لاحظ أن الملف يمكن أن يكون في أي مكان في القرص الصلب.

    • أعجبني 1
  16. لدي حلقة تكرار وفي داخل هذه الحلقة يتم طباعة نص معين، لكن المشكلة أن دالة print تقوم بطباعة النصوص أسفل بعضها البعض وأنا أريد أن يتم طباعة كل النصوص في نفس السطر.

    for i in range(10):
    	print(i)
    
    """
    Output:
    0
    1
    2
    4
    5
    6
    7
    8
    9
    
    أريد أن يتم الطباعة كالتالي:
    0123456789
    """

    كيف أقوم بطباعة الأرقام بجانب بعضها البعض؟

    • أعجبني 2
  17. كيف أقوم بضرب مجموعة من القاوائم للحصول على كل الإحتمالات الممكنة الناتجة عن ضرب هذه القوائم، على سبيل المثال لدي القائمة التالية:

    sections = [ [1, 2, 3], [4, 5], [6, 7] ]

    كيف أحصل على مجموعة من القائم كالتالي:

    [
    
    [1, 4, 6],
    [1, 4, 7],
    [1, 5, 6],
    [1, 5, 7],
      
    [2, 4, 6],
    [2, 4, 7],
    [2, 5, 6],
    [2, 5, 7],
      
    [3, 4, 6],
    [3, 4, 7],
    [3, 5, 6],
    [3, 5, 7]
    
    ]

     

    • أعجبني 1
×
×
  • أضف...