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

Adam Ebrahim

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

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

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

كل منشورات العضو Adam Ebrahim

  1. أرغب في تغيير اسم حقل معين في النموذج model في جانغو Django: class Foo(models.Model): name = models.CharField() يجب أن يتغير الحقل name إلى full_name كالتالي: class Foo(models.Model): full_name = models.CharField() كيف أقوم بذلك؟
  2. عندما أحاول اختبار أي تطبيق جانغو Django باستخدام الأمر fabric، والذي يستخدم هذا الأمر: python manage.py test myapp يظهر لي هذا الخطأ: Creating test database for alias 'default'... Got an error creating the test database: permission denied to create database Type 'yes' if you would like to try deleting the test database 'test_mydb', or 'no' to cancel يبدو أن الأمر syncdb يعمل. لكن بالرغم من ذلك لا يعمل الأمر السابق، هنا إعدادات قاعدة البيانات الخاصة بي في ملف settings.py: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'oracle'. 'NAME': 'mydb', 'USER': 'myusername', 'PASSWORD': 'mypassword', 'HOST': '127.0.0.1', 'PORT': '', } } ما سبب هذه المشكلة وكيف أقوم بحلها؟
  3. أقوم بتطوير برنامج في Python سيتم بيعه إلى بعض العملاء. وأريد أن أقوم بجعل البرنامج مغلق المصدر ولا يمكن لأحد الوصول إلى الكود المصدري للبرنامج، أعلم أنه يمكن تشغيل برامج بايثون بصيغة pyc لكن أعتقد أنه من السهل تحويل كود pyc إلى كود بايثون عادي. هل هناك طريقة جيدة للتعامل مع هذه المشكلة؟
  4. أريد أن أقوم بتعديل قيمة خاصية في صنف class من خلال نص باسم الخاصية، كالتالي: class Foo: def __init__(self): self.attr1 = True self.attr2 = False foo = Foo() x = "attr1" y = 123 كيف أقوم بتعديل الخاصية المخزنة في المتغير x بقيمة المتغير y؟
  5. أحاول التطبيق على OOP ولكن عند إستخدام المعامل += يحدث أمر غير متوقع، في الكود التالي يوجد صنفين foo و foo2 وعند عمل كائن من كل صنف وإضافة قيمة إلى القائمة bar يتم إضافتها أيضًا إلى الكائن الآخر!! >>> class foo: ... bar = [] ... def __init__(self,x): ... self.bar += [x] ... >>> class foo2: ... bar = [] ... def __init__(self,x): ... self.bar = self.bar + [x] ... >>> f = foo(1) >>> g = foo(2) >>> f.bar [1, 2] >>> g.bar [1, 2] >>> f.bar += [3] >>> f.bar [1, 2, 3] >>> g.bar [1, 2, 3] لماذا أصبح الكائن g يحتوي على نفس القائمة أيضًا؟ هذه المشكلة لا تحدث إن قمت بإستخدام الطريقة العادية كالتالي: >>> f.bar = f.bar + [4] >>> f.bar [1, 2, 3, 4] >>> g.bar [1, 2, 3] >>> ما الفرق بين الطريقة الأولى والثانية؟
  6. هل تدعم بايثون لتعبيرات الشروط المختصرة short if ؟ في لغات مثل JavaScript يمكنني فعل الآتي: condition ? exprIfTrue : exprIfFalse أريد أن أقوم بتطبيق جمل شرطية مختصرة في بايثون كذلك الأمر بالنسبة إلى الحلقات المختصرة
  7. لدي قائمتين بالشكل التالي: lst1 = ['One', 'Two', 'Three', 'Four'] lst2 = ['One', 'Two'] كيف أحصل على العناصر الموجودة في القائمة الأولى وغير الموجودة في القائمة الثانية، لتكون النتيجة في النهاية: result = ['Three', 'Four']
  8. لدي ملف log تتم كتابته بواسطة عملية أخرى وأريد أن أتابع التغييرات. في كل مرة يحدث تغيير، أود قراءة البيانات الجديدة لإجراء بعض المعالجة عليها. بدلًا من قراءة الملف كاملًا، حيث أن حجم الملف يزداد مع الوقت وتستغرق عملية قراءة الملف وقت أطول كل مرة. كيف أقوم بمعرفة التغيرات التي تحدث على الملف فقط (يتم إضافة أسطر جديدة إلى الملف كل بضع ثواني)؟
  9. هل يمكن أن أستخدم التابع replace لإزالة أو ‘ستبدال أجزاء متعددة من النص، أعلم أنه يمكنني أن أستخدم replace أكثر من مرة كالتالي: x = "hello, world" x = x.replace("hello", "hi") x = x.replace("world", "adam") print(x) # hi, adam هل توجد طريقة مختصرة أكثر بدلًا من تكرار replace العديد من المرات؟
  10. عندما أقوم بإنشاء نص يحتوي على خطوط مائلة backslashes يتم تكرارها كالتالي: >>> x = "hello, \world" >>> x 'hello, \\world' >>> لماذا تم إضافة هذه العلامة الإضافية وكيف أقوم إزالتها؟
  11. لدي ملفات قمت بكتابته من خلال سحب البيانات من الإنترنت web scraping وحجمه 1GB، كيف أقوم بقراءة هذا الملف جزء بجزء بطريقة chunk؟ هل يمكن إستخدام lazy method للقيام بهذا الأمر؟
  12. لدي قاموس بالشكل التالي: {'Adam': 18, 'Ebrahim' : 19} كيف أحصل على كلمة Adam من خلال البحث عن القيمة 18 بفرض أن القيم Values يمكن أن تتكرر، أي يصبح لأكثر من مفتاح نفس القيمة.
  13. من فترة تعلمت كيف أقوم بعمل staticmethod في صنف بايثون، والآن وجد كود يحتوي على @classmethod قبل تعريف دالة في الصنف بنفس طريقة إستعمال staticmethod@ ولم أفهم ما الذي يفعله هذا الأمر. لذلك أريد أن أعرف ما الفرق بين staticmethod و classmethod في أصناف بايثون؟
  14. لدي نص كالتالي: x= """Bound methods have been "bound" (how descriptive) to an instance, what about that?!""" كيف أقوم باستخراج الكلمات فقط بدون باقي علامات التنصيص والاستفهام وغيرها من رومز؟ حاولت أن استخدم التابع replace لحذف هذه العلامات، لكن أخشى أن يقوم المستخدم بإدخال رموز مختلفة أو رموز Emoji، وبالتالي سيكون من المستحيل إزالة كل الرموز الغريبة من النص قبل تقسيمه لكلمات باستخدام التابع split. هل توجد طريقة سريعة لإستخراج الكلمات فقط من النص؟
  15. في الوقت الحالي أنا أتعلم كيفية استخدام الـ threading و multiprocessing في بايثون لتشغيل عمليات معينة بالتوازي وتسريع الكود الخاص بي. لكن لدي مشكلة في معرفة الفرق بين هذه المكتبات، ما الفرق بين الكائنين التاليين؟ threading.Thread() multiprocessing.Process() متى أستعمل كلًا من مكتبة threading أو multiprocessing؟
  16. لدي ملف يحتوي على جمل وفي هذه الجمل يوجد أرقام كثيرة، كيف يمكنني إستخراج الأرقام من هذه النصوص؟ على سبيل المثال لدي المتغير التالي: x = "Hello, World! 0 Started 99, I'm 20 years" كيف أحصل على النتيجة التالية: [0, 99, 20] حاولت أن أقوم بالمرور على كل حرف في النص ولكن بهذه الطريقة سوف أحصل على كل الأرقام في شكل نص واحد فقط، وأنا أريد قائمة من الأرقام كما في المثال السابق.
  17. أريد أن أقوم باستدعاء ملف بايثون والذي يقوم بطباعة جملة معينة عند استدعائه، لكن المشكلة أنه بمجرد استدعائه مرة واحد لا يتم تنفيذ الكود في المرات التالية: for i in range(5): import myScript # يتم تنفيذه مرة واحدة فقط print('imported')
  18. لدي عدة حلقات متداخلة وأريد أن أقوم بإيقاف الحلقة الخارجية عند تحقيق شرط ما، لكن المشكلة أن الحلقة الداخلية هي ما تتوقف: for i in range(5): for n in range(5): if i == 5: break # أريد هنا أن يتم إيقاف الحلقة الخارجية print(i, n)
  19. أريد أن أقوم بطباعة أقواس معقوفة { } في نص وفي نفس الوقت إستخدام التابع format كالتالي: myString = " \{ Age \} {0} " print(myString.format(23)) لكني أحصل على الخطأ التالي: KeyError: ' Age\\' كيف يمكنني الحصول على التالي: { age } 23
  20. أستخدم Linux والذي يأتي بإصدار 2.7 من بايثون ، ثم قمت بتثبيت بايثون 3.8 أيضًا، والآن لدي أكثر من إصدار بايثون مثبتة على حسوبي (بايثون 2.7 و 3.8)، كيف أقوم بتحديد أحد هذه الإصدارات عند إنشاء بيئة عمل إفتراضية من خلال virtualenv؟
  21. أريد أن أقوم باستدعاء دالة ما وبدء عداد counter وإذا وصل العداد إلى 10 ثوان ولم تنتهي الدالة بعد يتم إيقاف الدالة على الفور (حتى وإن لم تقم بعمل return ) أي كيف أقوم بعمل TimeOut لدالة ما في بايثون؟
  22. لدي قائمتين بالشكل التالي: keys = ['x', 'y', 'z'] values = ['abc', 123, True] ما هي أسهل طريقة لإنتاج القاموس التالي من خلال القوائم السابقة؟ {'x': 'abc', 'y': 123, 'z': True}
  23. كيف يمكنني إخراج نص ملون إلى terminal في بايثون؟ رأيت في أحد السكريبتات أنه يتم ظهور الإختيارات والنتيجة .. إلخ في الـ terminal بألوان مختلفة، كيف يمكنني عمل ذلك أيضًا؟ وهل هذه الطريقة تعمل في جميع أنظمة التشغيل (Winodws و Linux و MacOS)؟
  24. أحيانًا عندما أقوم بتحميل سكريبت من أحد المواقع مثل GitHub وأقوم بتشغيل السكريبت أجد خطأ IndentationError كالتالي: File "script.py", line 4 print('foo') IndentationError: unindent does not match any outer indentation level بالرغم من بساطة الكود للغاية إلا أن هذا الخطأ يظهر لي في كثير من الأحيان، أعرف أن سبب هذا الخطأ في الغالب هو عدم تناسق عدد المسافات في (أستعمل 4 spaces في الغالب)، لكن لا أستطيع إصلاح المشكلة في الغالب. وتظهر لي أخطاء أخرى لكن أعتقد أن لها علاقة بـ indentation أيضًا IndentationError: unexpected indent IndentationError: expected an indented block هل توجد طريقة سهلة لترتيب هذه المسافات في ملف بايثون، أستخدم VS Code
  25. أريد أن أقوم بتخزين وإحضار بعض البيانات من قاعدة بيانات SQLite وأقوم بإستعمال formatted string لوضع المتغيرات في جملة SQL لكن أعتقد أن هذه الطريقة غير صحيحة وقد تسبب مشكلة إن قام المستخدم بإدخال علامات تنصيص ' " على سبيل المثال، لذلك كيف أقوم بإستخدام المتغيرات في جمل SQL بطريقة صحيحة هذا هو الكود الخاص بي: setting = input("Change settings") cr.execute(f"SELECT * FROM settings WHERE id = {setting}")
×
×
  • أضف...