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

MaxReve

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

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

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

كل منشورات العضو MaxReve

  1. كنت أستخدم سابقا تابع Date.parse في روبي 1.87 بدون مشاكل لكني عندما انتقلت إلى الإصدار 1.92 من روبي حصلت على الخطأ التالي: ArgumentError: invalid date فما المشكلة؟
  2. هل هنالك طريق معينة لتطبيق التكرار على جميع الحروف الموجودة داخل سلسلة نصية معينة في لغة روبي 1.8.6، حيث أريد طباعة جميع هذه الحروف تحت بعضها البعض.
  3. ما فائدة العامل الحسابي !! في لغة روبي؟ حيث وجدته في أحد تطبيقات المكتوبة بلغة روبي كما يظهر هنا: def signed_in? !!current_user end
  4. ما هي الطريقة الصحيحة لاختبار قيمة معينة على أكثر من متغير في بايثون، فأنا أريد اختبار عدد صحيح مع 3 متغيرات فإذا كانت قيمة أحد هذه المتغيرات تساوي العدد الصحيح سيقوم البرنامج بتعليمات برمجية معينة.
  5. هل توجد في لغة بايثون طريقة لمعرفة ما إذا كان المتغير المُمرّر هو صنف أو لا، لأنني أحتاجها في برنامجي.
  6. أريد معرفة معنى هذه الرموز %r{} في روبي حيث وجدتها في أحد الأكواد: validates :image_file_name, :format => { :with => %r{\.(gif|jpg|jpeg|png)$}i وبالإضافة إلى ذلك أريد معرفة معنى التعبير النمطي الموجود داخلها.
  7. أريد أن أخلط ترتيب عناصر مصفوفة في بايثون بصيغة عشوائية من أجل استخدامها في برنامج للأسئلة العشوائية، فما هي أسهل طريقة لفعل ذلك في بايثون؟
  8. أريد أن أخلط ترتيب عناصر مصفوفة في بايثون بصيغة عشوائية من أجل استخدامها في برنامج للأسئلة العشوائية، فما هي أسهل طريقة لفعل ذلك في بايثون؟
  9. لنفترض أن لدي القائمة التالية التي تحتوي على قواميس: [ {"name": "Tom", "age": 10}, {"name": "Mark", "age": 5}, {"name": "Pam", "age": 7} ] عندما أبحث عن اسم مثل Pam أريد أن أتمكّن أولا من إيجاد العنصر الذي يحتوي على هذا الاسم ومن ثم أريد الحصول على جميع معلوماته، فكيف أستطيع فعل ذلك في بايثون؟
  10. أتعلّم حاليا لغة باسكال وأريد معرفة كيف أستطيع الاستفادة من تعلمي لهذه اللغة؟ وهل يمكن الاعتماد عليها لبناء برامج كبيرة وقوية؟
  11. هنالك طرق عديدة لتحويل الثواني إلى ساعات ودقائق وثواني في لغة بايثون، أسهلها استخدام دالة divmod() والتي تقوم بعملية قسمة تقليديّة ومن ثم ترجع ناتج القسمة والباقي. يمكنك الحصول على النتيجة التي تريدها بسرعة عن طريق عمليتين حسابيتين باستخدام دالة divmod() والتقسيم على 60 كما في المثال التالي: m, s = divmod(seconds, 60) h, m = divmod(m, 60) print "%d:%02d:%02d" % (h, m, s) وهنالك حل آخر أيضا باستخدام دالة timedelta من وحدة datetime التي ستُرجع عدد الساعات والدقائق والثواني لكن يجب تحويلهم إلى سلسلة نصية باستخدام str() قبل استخدامهم كما في المثال التالي: >>> import datetime >>> str(datetime.timedelta(seconds=666)) '0:11:06'
  12. نعم هنالك فرق كبير بين print (دالة print() في الإصدار الثالث للبايثون) ودالة sys.stdout.write()، فـ print تقوم بأشياء أكثر من دالة sys.stdout.write() فهي تحوّل أولًا الكائن/الكائنات الممررة إلى سلسلة نصية (إذا لم يكونوا سلاسل نصية) وستضيف فراغ قبل الكائن إذا لم يكن بداية السطر وستضع رمز السطر الجديد (newline) في النهاية. أما في حالة ما استخدمت stdout فيجب عليك أن تقوم بكل شيء بنفسك، فتحتاج مثلا إلى تحويل الكائن إلى سلسلة نصية وإضافة رمز سطر جديد … إلخ. فهذا السطر: print 99 يساوي هذا السطر في حالة استخدام stdout: import sys sys.stdout.write(str(99) + '\n')
  13. هنالك طرق متعددة لدمج السلاسل النصية مع الأعداد الصحيحة،لكنها تشترك جميعها في لزوم تحويل العدد الصحيح إلى سلسلة نصية حتى تتمكن من دمجه مع السلسلة النصية الثانية. إذا أردت طباعة مجموعة من الأعداد الصحيح بعد سلسلة نصية فيمكنك استخدام حلقة التكرار for مع دالة المدى range() كما في المثال التالي: string = 'string' for i in range(11): string +=`i` print string وسوف يتم طباعة السطر التالي: string012345678910 أما لو أردت الحصول على عدّة سلاسل نصية مع عدد في كل واحدة، مثلا string0, string1 ..... string10 فيمكنك استخدام هذه الطريقة لفعل ذلك: >>> string = "string" >>> [string+`i` for i in range(11)]
  14. هنالك عدة طرق لاختبار ما إذا كانت السلسلة نصية تحتوي على عدد صحيح أو لا في روبي وأبسط مثال لمعرفة ذلك هي عن طريق استخدام التعابير النمطية كما في المثال التالي الذي قمنا فيه بإنشاء صنف بداخله دالة الاختبار: class String def is_i? !!(self =~ /\A[-+]?[0-9]+\z/) end end كما يمكنك كتابة المثال السابق بطريقة أخرى كما في هذا المثال الثاني: class String def is_i? /\A[-+]?\d+\z/ === self end end وفي حالة ما أردت أن تتأكد من الأرقام الموجبة فقط يمكنك استعمال هذا المثال: if !/\A\d+\z/.match(string_to_check) #Is not a positive number else #Is all good ..continue end
  15. هنالك عدة طرق لتحويل السلاسل النصية إلى أعداد صحيحة، فيمكنك على سبيل المثال استخدام الدالة المدمجة int() والتي ستمرر لها سلسلة نصية تحتوي على رقم و ترجع الرقم كعدد صحيح كما في المثال التالي: print int("1") + 1 المثال السابق يطبع 2. إذا كنت تعرف هيكل القائمة (على الرغم من أن قائمتك تحتوي على قوائم لكنها تمتلك فقط مستوى واحد من القوائم) فيمكنك استخدام map وحلقة التكرار for لإنشاء قائمة من الأعداد الصحيحة كما في المثال التالي: T2 = [map(int, x) for x in T1]المصدر
  16. يمكنك كتابة هذا السكربت (السطر) مباشرة إلى الطرفية دون أن تقوم بوضعه داخل السكربت. لن تحتاج إلى ".” أو "&” في جزء البحث أو الاستبدال. احفظ السكربت التالي كـ ./ind ومن ثم اجعله قابل للتنفيذ عن طريق الأمر chmod +x ./ind #! /bin/sh sed -e 's/^/\t/' "$@"ولتشغيل الملف يمكنك كتابة الأمر ./ind lines ملاحظة: قم بنقل ملف ind إلى مكان ما في $PATH حتى تتمكن من تشغيله من أي مكان (مثلا أضف ~/bin إلى PATH ومن ثم قم بتنفيذ الأمر mv ./ind ~/bin/). المصدر
  17. هنالك طرق متعددة لحذف حرف معين من السلسلة النصية، إلا أن السلاسل النصية في بايثون غير قابلة للتغيير لذلك ستضطر إلى إنشاء سلسلة جديدة. هنالك عدة خيارات عن كيفية إنشاء سلسلة نصية جديدة، فإذا أرد حذف حرف M وتكراراته في كامل السلسلة النصية فيمكنك استخدام دالة replace() ومن ثم تمرر الحرف المراد حذفه، والبديل كما في المثال التالي: newstr = oldstr.replace("M", "") أما لو أردت حذف الحرف الأوسط من سلسلة نصية فيمكنك فعل ذلك عن طريق السطرين التاليين: midlen = len(oldstr)/2 newstr = oldstr[:midlen] + oldstr[midlen+1:]
  18. لدي دالة ترجع لي المعلومات بالثواني لكنني أريد تخزين تلك المعلومات بشكل ساعات:دقائق:ثواني فهل هنالك طريقة سهلة لتحويل الثواني إلى هذا الشكل في بايثون؟
  19. هل هنالك فرق بين print ودالة sys.stdout.write() في لغة بايثون؟ وهل هنالك حالات يتم تفضيل استخدام واحدة على الأخرى؟
  20. أريد أن أنشئ سلاسل نصية مع عدد صحيح مُولّد عن طريق حلقة التكرار for كما في المثال التالي: for i in range [1,10]: string="string"+i لكن عندما أقوم بتنفيذ الأمر السابق أحصل على خطأ: TypeError: unsupported operand type(s) for +: 'int' and 'str' فما هي الطريقة الصحيح لفعل ذلك؟
  21. أحتاج إلى دالة تختبر لي فيما إذا كانت السلسلة النصية تحتوي على عدد صحيح أم لا، أي إذا كانت تحتوى على عدد صحيح سوف ترجع لي true وسترجع false إذا كان عكس ذلك.
  22. أريد شرح بسيط وسريع لكيف تتم عملية الإقلاع لاستخدمها في برمجة برنامج صغير للإقلاع (نظام تشغيل بسيط)، أريد أن تكون الشفرة البرمجية بلغة أسمبلي وليست بلغة السي.
  23. عندما أقوم بتنفيذ سطر 1 in [1,0] == True يتم إرجاع كلمة "False” على الرغم من أن هذا السطر من المفترض أن يُرجع "True” لأن العدد 1 موجود في قائمة [1,0]، فما هو سبب هذا الخطأ؟ >>> 1 in [1,0] # This is expected True >>> 1 in [1,0] == True # This is strange False
  24. هل هنالك أي اختلاف بين raw_input() وinput() في الإصدار الثالث عن الإصدار الثاني للبايثون؟ فلقد سمعت أنه تم تغيير عدة أشياء في الإصدار الجديد والتي من بينها هاتين الدالتين.
  25. في العادة استخدم -c عندما أريد التحقق من صياغة برنامج مكتوب بلغة بيرل ومن ثم الخروج من دون تنفيذه، فهل توجد طريقة في بايثون مشابهة لذلك؟
×
×
  • أضف...