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

TheBrain

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

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

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

أجوبة بواسطة TheBrain

  1. قرأت أن رمز \d يُستخدم للإشارة إلى الأرقام في التعابير النمطية في لغة بايثون، فهل هذا صحيح؟ لأنني جربته على مجموعة من الأرقام وقام بمطابقتها جميعها سوى الرقم 2 فلم يطابقه، فما السبب؟ وما الفرق بين الرمز \d و [0-9]؟

  2. هل هنالك طريقة في بايثون لتكرار سلسلة نصية حتى تصل إلى طول معين وتتوقف؟ مثلا إذا كتبت repeat('abc', 7) فسيكون الناتج 'abcabca'، حتى الآن كتبت الشيفرة البرمجية التالية:

    def repeat(string, length):
        cur, old = 1, string
        while len(string) < length:
            string += old[cur-1]
            cur = (cur+1)%len(old)
        return string
  3. استخدم طريقة "python -c” لتنفيذ بعض التعليمات البرمجية بسطر واحد من خلال سطر الأوامر:

    $ python -c "for r in range(10): print 'rob'"
    

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

    $ python -c "import sys; for r in range(10): print 'rob'"
      File "<string>", line 1
        import sys; for r in range(10): print 'rob'
                  ^
    SyntaxError: invalid syntax
    

    فهل هنالك طريقة لحل هذه المشكلة؟

  4. لدي حلقة تكرار تبدأ بـ for i in range(0, 100) وهي تعمل في العادة بدون مشاكل لكن في بعض الأحيان تفشل بسبب مشاكل في الشبكة، فكيف أستطيع الاستمرار في حلقة التكرار وتجاهل الاستثناء (exception)؟ أي الاستمرار إلى العدد التالي للمتغير I.

  5. أحتاج إلى استبدال جميع الحروف التي ليست من نوع آسكي في سلسلة نصية معينة بفراغ في لغة بايثون، فما هي أسهل طريقة لفعل ذلك؟ جربت هاتين الطريقتين لكنهما يقومان بالحذف وليس بالاستبدال:

    def remove_non_ascii_1(text):
    return ''.join(i for i in text if ord(i)<128)

    كما جربت هذه الطريقة:

    def remove_non_ascii_2(text):
    return re.sub(r'[^\x00-\x7F]',' ', text) 
  6. كتبت هذا السطر:

    print("Total score for %s is %s  ", name, score))
    

    وأريد أريد طباعة جملة "Total score for (name) is (score)” حيث أن الاسم (name) هو متغير في قائمة والرصيد (score) هو عدد صحيح، فكيف أستطيع فعل ذلك في بايثون 3.3 ﻷن السطر الذي كتبته لا يعمل؟

  7. قمت بتنفيذ INSERT INTO لإضافة معلومات إلى قاعدة البيانات كالتالي:

    cursor.execute("INSERT INTO mytable(height) VALUES(%s)",(height))

    والآن أريد الحصول على "id” من هذا الجدول:

    id      primary, auto increment
    height  this is the other column.
    

    فكيف أستطيع فعل ذلك في بايثون؟

  8. أريد معرفة هل يوجد أي فرق بين نوع str و basestring في لغة بايثون، لأنني جربت معرفة نوع سلسلة نصية فوجدت أنه في كلا الحالتين ترجع لي دالة isinstance قيمة منطقية true كما يظهر هنا:

    a='aaaa'
    print isinstance(a, basestring)#true
    print isinstance(a, str)#true
    

    فهل يوجد أي فرق بين النوعين؟

  9. لدي سلسلة نصية تشبه هذه:

    6Â 918Â 417Â 712
    

    أريد حذف جميع أحرف غير آسكي من هذه السلسلة لذلك وضعتهم في متغير ومن ثم استخدمت دالة replace:

    s.replace('Â ', '')
    

    المشكلة أن هو ظهور خطأ يخبرني أن أحرف غير آسكي الموجودة في ملف بايثون غير مرمزة (not encoded)، فما حل هذه المشكلة؟

  10. كتبت شيفرة برمجية لإزالة أحرف العلة من سلسلة نصية معينة، حيث ستقوم حلقة التكرار بالتكرار حول الأحرف الموجودة في السلسلة النصية، لكن المشكلة أن الحلقة لا تُدور حول جميع الأحرف بل تبقى الحروف الأخيرة.
    الشيفرة البرمجية التي كتبتُها:

    text = "Hey look Words!"
    
    def anti_vowel(text):
    
        textlist = list(text)
    
        for char in textlist:
            if char.lower() in 'aeiou':
                textlist.remove(char)
    
        return "".join(textlist)
    
    print anti_vowel(text)

    فما سبب هذه المشكلة؟

  11. أريد معرفة كيف يمكنني فرز مصفوفة في numpy حسب عمود معين كما في المثال التالي:

    a = array([[1,2,3],[4,5,6],[0,0,1]])
    

    لنفترض أنني أريد فرز هذه القوائم حسب العمود الثاني ليكون الناتج كالتالي:

    array([[0,0,1],[1,2,3],[4,5,6]])
    

    فما هي الطريقة الصحيحة لفعل ذلك؟

×
×
  • أضف...