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

Hasan Dayoub

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

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

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

كل منشورات العضو Hasan Dayoub

  1. أقرب شكل ممكن اسخدامه هو: {key: value for (key, value) in iterable} وهو توصيف عام يوضح المبدأ الذي تعمل به هذه الطريقة. يمكن استخدمه مع بايثون 2 و 3.
  2. أيضا يوجد طريقة أخرى و مستخدمة بشكل أكبر: import os filename, file_extension = os.path.splitext('/path/to/somefile.ext') file_extension #الخرج'.ext'
  3. فيما يلي كيف يقوم ال ORM بتحقيق blank و null في دجانغو 1.8 class Test(models.Model): charNull = models.CharField(max_length=10, null=True) charBlank = models.CharField(max_length=10, blank=True) charNullBlank = models.CharField(max_length=10, null=True, blank=True) intNull = models.IntegerField(null=True) intBlank = models.IntegerField(blank=True) intNullBlank = models.IntegerField(null=True, blank=True) dateNull = models.DateTimeField(null=True) dateBlank = models.DateTimeField(blank=True) dateNullBlank = models.DateTimeField(null=True, blank=True) أما قاعدة البيانات فيتم إنشائها كما يلي في PostgreSQL 9.4: CREATE TABLE Test ( id serial NOT NULL, "charNull" character varying(10), "charBlank" character varying(10) NOT NULL, "charNullBlank" character varying(10), "intNull" integer, "intBlank" integer NOT NULL, "intNullBlank" integer, "dateNull" timestamp with time zone, "dateBlank" timestamp with time zone NOT NULL, "dateNullBlank" timestamp with time zone, CONSTRAINT Test_pkey PRIMARY KEY (id) ) أما في MySQL 5.6 : CREATE TABLE Test ( `id` INT(11) NOT NULL AUTO_INCREMENT, `charNull` VARCHAR(10) NULL DEFAULT NULL, `charBlank` VARCHAR(10) NOT NULL, `charNullBlank` VARCHAR(10) NULL DEFAULT NULL, `intNull` INT(11) NULL DEFAULT NULL, `intBlank` INT(11) NOT NULL, `intNullBlank` INT(11) NULL DEFAULT NULL, `dateNull` DATETIME NULL DEFAULT NULL, `dateBlank` DATETIME NOT NULL, `dateNullBlank` DATETIME NULL DEFAULT NULL )
  4. أيضا يمكننا تحقيق ذلك من خلال: [[x,l.count(x)] for x in set(l)] مثال: l = ["a","b","b"] [[x,l.count(x)] for x in set(l)] # [['a', 1], ['b', 2]] الخرج #أو dict((x,l.count(x)) for x in set(l)) #{'a': 1, 'b': 2} الخرج
  5. عادة يفضل اسخدام مع سبق مع try : try: doStuff(a.property) except AttributeError: otherStuff()
  6. يوجد طرق اضافية. في حال كنتي تستخدمين بايثون بنسخة قبل 3.6 يمكنك استخدتم ما يلي: import random secure_random = random.SystemRandom() print(secure_random.choice(foo)) و في حال أردتي اختاير أكثر من قيمة بنفس الوقت يمكنك استخدام الكود التالي: import random group_of_items = {1, 2, 3, 4} num_to_select = 2 # تحديد عدد العناصر التي نريد اختيارها عشوائيا list_of_random_items = random.sample(group_of_items, num_to_select) first_random_item = list_of_random_items[0] second_random_item = list_of_random_items[1]
  7. يمكن تحقيق ذلك بعدة طرق إضافية: # تعريف اطار البيانات df = pd.DataFrame(data={'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}, index=['a', 'b', 'c']) # تحويل اطار البيانات df.to_numpy() # تحويل عمود محدد df[['A', 'C']].to_numpy() او طريقة أخرى: df.index.to_numpy() df['A'].to_numpy()
  8. من أجل Python 2 نستخدم ما يلي: except (IDontLikeYouException, YouAreBeingMeanException), e: pass
  9. يمكن استخدام ما يلي: from os import walk f = [] for (dirpath, dirnames, filenames) in walk(mypath): f.extend(filenames) break أو from os import walk _, _, filenames = next(walk(mypath))
  10. يمكن بهذه الطريقة: for idx, val in enumerate(ints): print(idx, val) أو هذه: for index, item in enumerate(iterable, start=1): print index, item print(index, item)
  11. يوجد عدة طرق لذلك: a[start:stop] # 1-من البداية المحددة الى النهاية a[start:] # من البداية المحددة وحتى النهاية a[:stop] # من البداية و حتى النهاية المحددة ناقص واحد a[:] # نسخ كامل المصفوفة a[start:stop:step] # من البداية المحددة الى النهاية المحددة بخطوة محددة a[-1] # آخر عنصر من المصفوفة a[-2:] # آخر عنصرين من المصفوفة a[:-2] # جميع العناصر ما عدا آخر عنصرين a[::-1] # جميع عناصر المصفوفة بترتيب معاكس a[1::-1] # اول عنصرين بترتيب معاكس a[:-3:-1] # آخر عنسرين بترتيب معاكس a[-3::-1] # جميع العناصر ما عدا آخر عنصرين بترتيب معاكس
  12. نعم يمكن ذلك. بإمكانك استخدام التابع التالي لتحقيق ذلك: def merge_two_dicts(x, y): z = x.copy() # نبدأ مع مفاتيح x و قيمها z.update(y) # نقوم بتحديث قيم مفاتيح Y return z ثم نقوم باستدعاء التابع السبق: z = merge_two_dicts(x, y)
  13. loc : تعمل فقط مع الدليل (index) iloc : تمعل مع الموقع (position) مثال: نقوم بإنشاء اطار البيانات التالي: df = pd.DataFrame({'age':[30, 2, 12, 4, 32, 33, 69], 'color':['blue', 'green', 'red', 'white', 'gray', 'black', 'red'], 'food':['Steak', 'Lamb', 'Mango', 'Apple', 'Cheese', 'Melon', 'Beans'], 'height':[165, 70, 120, 80, 180, 172, 150], 'score':[4.6, 8.3, 9.0, 3.3, 1.8, 9.5, 2.2], 'state':['NY', 'TX', 'FL', 'AL', 'AK', 'TX', 'TX'] }, index=['Jane', 'Nick', 'Aaron', 'Penelope', 'Dean', 'Christina', 'Cornelia']) يمكن استخدام loc للحصول على سطر بيانات واحد: df.loc['Penelope'] و النتيجة: age 4 color white food Apple height 80 score 3.3 state AL Name: Penelope, dtype: object أما في حال أردنا اختيار سطر بحسب رقم السطر، نستخدم iloc: df.iloc[4] و النتيجة: age 32 color gray food Cheese height 180 score 1.8 state AK Name: Dean, dtype: object
  14. طريقة أخرى مع الحلقات: d = {1:200,2:100,3:400} temp = 0 for ele in d.values(: if ele == 200: print("True") temp = 1 break if temp == 0: print("False")
  15. بإمكانك استخدم الكود التالي: def func(): num1 = int(input("enter the 1st number:")) # المستخدم يدخل العدد الأول num2 = int(input("enter the second number:")) # المستخدم يدخل العدد الثاني if num1>num2: # التحقق من أن العدد الأول أكبر من الثاني print("error") return l = [] for i in range(num1,num2+1): # توليد الأعداد المحصورة بين العددين l.append(i) for ele in l: # طباعة الترتيب الصحيح print(ele) for ele in reversed(l): # طباعة الترتيب المعكوس print(ele) func()
  16. كيف أقوم بتحويل كود بايثون موجود إلى ملف EXE؟
  17. اضغط على اشارة ال + في اسفل الشاشة، فتنقلك الى المكان المخصص لتنزيل المكتبة.
  18. يوجد عدة احتمالات للمشكلة. احيانا يمكن حل المشكلة من خلال تحميل بعض المكتبات الداعمة للويندوز من هنا كما يمكنك ان تقوم بتحميل المكتبة من خلال برنامج Pycharm ، وذلك بالذهاب الى File > Settings > Python interpreter ثم البحث عن المكتبة و إضافتها.
  19. هنالك عدة حلول للمشكلة حسب منشئها. 1- بإمكانك حذف ال Object الخاصة بالعملة بعد أن يقوم اللاعب الاصطدام بها، و في هذه الحالة سيتم إجراء الزيادة لمرة واحدة. 2- بإمكانك منح العملة متغيرا يساوي القيمة 10، و عند ملامسة اللاعب لها تقوم بإنقاص قيمة هذا المتغير بمقدار 10. كما أن الطرق التي وردت في الإجابة السابقة قد تكون صحيحة حسب طبيعة المشكلة.
  20. المثال السابق يعالج حالة القوائم، lists. أما في حال كنت تقصد مصفوفات Numpy Array فبإمكانك استخدام الكود التالي: import numpy as np # تحميل مكتبة numpy array1 = np.array([0, 10, 20, 40, 60]) # تعريف المصفوفة الأولى print("Array1: ",array1) # طباعة قيمتها للتأكد من أنها اصبحت مصفوفة array2 = [10, 30, 40] # تعريف المصفوفة الثانية print("Array2: ",array2) # طباعة قيمتها للتأكد من أنها اصبحت مصفوفة print("Common values between two arrays:") print(np.intersect1d(array1, array2)) # ايجاد القيم المشتركة و طباعتها
  21. يوجد أيضا مكتبة PyQT5 والتي تعتبر أسهل مكتبة لتصميم الواجهات، حيث بإمكانك تصميم الواجهة بالسحب و الإفلات و ذلك من خلال استخدام PyQT5 Designer. PyQT5 Designer رابط التحميل و بعد تصميم الواجهة تقوم بحفظ الملف التصميمي بامتداد UI. ثم تقوم بتحميل Pyqt5 : conda install pyqt ثم تقوم بتحويلها إلى ملف .py من خلال كتابة الأمر التالية : python -m PyQt5.uic.pyuic -x [FILENAME].ui -o [FILENAME].py
  22. يختلف الأمر حسب شكل البانات التي تتعامل معها. مثلا ان كانت الباينات ضمن مصفوفة Numpy فيمكنك حفظها عن طريق : from numpy import asarray from numpy import savetxt # عرف البيانات data = asarray([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]) # احفظها كملف CSV savetxt('data.csv', data, delimiter=',') و يمكنك قراءتها كما يلي: from numpy import loadtxt # تحميل المصفوفة data = loadtxt('data.csv', delimiter=',') # طباعة المصفوفة print(data)
  23. كما يمكنك استخدام هذه الطريقة لطباعة جدول الضرب لكافة الأعداد من ال 1 و حتى العدد المدخل من قبل المستخدم: n = int(input("ادخل الاعدد الذي ترغب بتوليد الجدول اليه? ")) m = list(list(range(1*i,(n+1)*i, i)) for i in range(1,n+1)) for i in m: i = [str(j).rjust(len(str(m[-1][-1]))+1) for j in i] print(''.join(i))
  24. الحل الصحيح هو: if (2*C + P - 4*D < c) and P < 0 and d > 0: A = C - D elif D<0: A = C
  25. بشكل عام يوجد عدة طرق لإنشاء زر، و تختلف حسب الغاية و المكتبة المستخدمة، فمثلا، باستخدام مكتبة Tkinter: import Tkinter # نستدعي المكتبة import tkMessageBox # من اجل انشاء راسالة بقصد التجريب top = Tkinter.Tk() # نقوم بتهئية البيئة def helloCallBack(): tkMessageBox.showinfo( "Hello Python", "Hello World") B = Tkinter.Button(top, text ="Hello", command = helloCallBack) B.pack() top.mainloop() و في حالتك تقوم بوضع الجزء المتعلق باستدعاء اللعبة داخل التابع helloCallBack.
×
×
  • أضف...