نكشات ;) Python

هنا توجد كل المواضيع المتعلقة بالبرمجيات المفتوحة المصدر

المشرف: Karam

نكشات ;) Python

مشاركة غير مقروءةبواسطة Karam » الأربعاء أغسطس 04, 2010 11:49 pm

هون بهاد الموضوع رح حاول اكتب tutorial صغير .. عن نكشات Python .. والتقنيات الموجودة بهي اللغة
لأني تعذبت الكتير لحتى تعلمتهن لحالي .. المصادر كتير قليلة :imb:

رح تكون هي الشروحات عن طريق ردود رح حطها بهاد الموضوع .. وان شاء الله رح حاول ضيف كل يوم شغلة جديدة

إن شاء لله يكون مفيد للأشخاص الراغبين بنعلّم هي اللغة :ism:
أنا بتنفس حرية .. ما تقطع عني الهوى
صورة العضو الشخصية
Karam
مشرف منتدى البرمجيات المفتوحة المصدر
مشرف منتدى البرمجيات المفتوحة المصدر
 
مشاركات: 2039
اشترك في: الخميس أكتوبر 01, 2009 2:50 pm
مكان: Stadt Ilmenau, Thuringen, Germa
الجتس: ذكر
الشهادة الثانوية: Syria
الجامعة: Damascus
الكلية: ITE
المرحلة الدراسية: السنة الرابعة
الاختصاص: شبكات و نظم

Re: نكشات ;) Python

مشاركة غير مقروءةبواسطة Karam » الأربعاء أغسطس 04, 2010 11:49 pm

CODE: تحديد الكل
x = [i-2 for i in [i+1 for i in [i+1 for i in [i for i in [1, 2, 3]]]]]
x = repr(x)
x = x.replace(']', '').replace('[', '').replace(' ', '').replace(',', '')
print(eval('+'.join(x)))


الشرح



أولا :

CODE: تحديد الكل
x = [i-2 for i in [i+1 for i in [i+1 for i in [i for i in [1, 2, 3]]]]]

رح يتحول هاد السطر إلى الشكل التالي :
CODE: تحديد الكل
x = [i-2 for i in [i+1 for i in [i+1 for i in [1, 2, 3]]]]

وبالمرحلة التانية رح ياخد الشكل التالي :
CODE: تحديد الكل
x = [i-2 for i in [i+1 for i in [2, 3, 4]]]

وبعدين إلى :
CODE: تحديد الكل
x = [i-2 for i in [3, 4, 5]]

وأخيراً :
CODE: تحديد الكل
x = [1, 2, 3]


ثانيا :

CODE: تحديد الكل
x = repr(x)

تابع repr موجود ضمن الـكلاس __main__ يقوم بردّ سلسلة نصية string وهي تمثل شكل الـ object الي منمررور لهاد التابع
يعني بتصير قيمة x
CODE: تحديد الكل
x = '[1, 2, 3]'



ثالثا :

CODE: تحديد الكل
x = x.replace(']', '').replace('[', '').replace(' ', '').replace(',', '')


بالمرحلة الأولى رح نستبدل كل ']' بـ empty char
بالمرحلة التانية رح نستبدل كل '[' بـ empty char
بالمرحلة التالتة رح نستبدل كل ' ' بـ empty char
بالمرحلة الرابعة رح نستبدل كل ' , ' بـ empty char
بهي الحالة رحي تصفى قيمة x :
CODE: تحديد الكل
x = '123'


رابعا :
CODE: تحديد الكل
print(eval('+'.join(x)))


بمرحلة join .. قمنا بتحويل '123' إلى '1+2+3' وهي قيمة x
ثم مررنا هذه القيمة إلى تابع eval باعطاء القيمة الموجودة داخل ال String يعني '1+2+3' تصبح 6
وبالنهاية خرج الكود السابق طباعة العدد 6
أنا بتنفس حرية .. ما تقطع عني الهوى
صورة العضو الشخصية
Karam
مشرف منتدى البرمجيات المفتوحة المصدر
مشرف منتدى البرمجيات المفتوحة المصدر
 
مشاركات: 2039
اشترك في: الخميس أكتوبر 01, 2009 2:50 pm
مكان: Stadt Ilmenau, Thuringen, Germa
الجتس: ذكر
الشهادة الثانوية: Syria
الجامعة: Damascus
الكلية: ITE
المرحلة الدراسية: السنة الرابعة
الاختصاص: شبكات و نظم

Re: نكشات ;) Python

مشاركة غير مقروءةبواسطة Karam » الأربعاء أغسطس 04, 2010 11:57 pm

CODE: تحديد الكل
x = [i for i in range(1, 101) if i % 2 == 0]
print sum(x)




الشرح


أولا :

CODE: تحديد الكل
x = [i for i in range(1, 101) if i % 2 == 0]


بهي الطريقة منكون ستوينا Linked List فيها كل الأعداد الزوجية بين الـ ( 1 ) وبين الـ ( 100 )

ثانيا :

CODE: تحديد الكل
print sum(x)


تابع sum بياخد جميع أنواع السلاسل وبرد مجموع العناصر الي فيها ..
وبهي الحالة رح نطبع مجموع الأعداد الزوجية الواقعة بين الـ ( 1 ) وبين الـ ( 100 )
أنا بتنفس حرية .. ما تقطع عني الهوى
صورة العضو الشخصية
Karam
مشرف منتدى البرمجيات المفتوحة المصدر
مشرف منتدى البرمجيات المفتوحة المصدر
 
مشاركات: 2039
اشترك في: الخميس أكتوبر 01, 2009 2:50 pm
مكان: Stadt Ilmenau, Thuringen, Germa
الجتس: ذكر
الشهادة الثانوية: Syria
الجامعة: Damascus
الكلية: ITE
المرحلة الدراسية: السنة الرابعة
الاختصاص: شبكات و نظم

Re: نكشات ;) Python

مشاركة غير مقروءةبواسطة Karam » الخميس أغسطس 05, 2010 12:17 am

CODE: تحديد الكل
x = (1, 2, 3, 4)
y = x[::-1]
z = {}
for this in zip(x, y):
   z[this[0]] = this[1]
print(sum(z.keys()+z.values()))




الشرح



أولا :

CODE: تحديد الكل
x = (1, 2, 3, 4)


قمنا بتكوين tuple تيوبل .. وهي تشبه المصفوفة شوي ..


ثانيا :

CODE: تحديد الكل
y = x[::-1]


لاحظ الاشارة التي بعد x وهي [1-::] تعبر عن مقدار القفزة داخل السلسلة أو القائمة x ,وبهذا الشكل نكون قد وضعنا القائمة x بشكل معكوس في y
توضيح أكتر مثال :
CODE: تحديد الكل
>>> L = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> L[::1]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> L[::2]
[1, 3, 5, 7, 9]
>>> L[::3]
[1, 4, 7, 10]
>>> L[::4]
[1, 5, 9]
>>> L[::5]
[1, 6]
>>> L[::-1]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]



ثالثا :

CODE: تحديد الكل
z = {}


قمنا بتوليد dict

رابعا :

CODE: تحديد الكل
for this in zip(x, y):
   z[this[0]] = this[1]


آلية عم تابع الضغط zip :
CODE: تحديد الكل
x = (1, 2, 3, 4)
y = (4, 3, 2, 1)
zip(x, y) = ( (1, 4), (2, 3), (3, 2), (4, 1) )


وهيك بكون صار ت بنية z باشكل التالي
CODE: تحديد الكل
z = {1 : 4,
     2 : 3,
     3 : 2,
     4 : 1}


خامسا :

التابعين الخاصين بـ dict هنن values و keys
الأول بيعطي القيم الموجود بـ tuple
والتاني بيعطي المفاتيح الموجودة كمان من خلال tuple

CODE: تحديد الكل
z.keys()   --> (1, 2, 3, 4)
z.values() --> (4, 3, 2, 1)



يعني رح يطبع هون 20
CODE: تحديد الكل
print(sum(z.keys()+z.values()))
أنا بتنفس حرية .. ما تقطع عني الهوى
صورة العضو الشخصية
Karam
مشرف منتدى البرمجيات المفتوحة المصدر
مشرف منتدى البرمجيات المفتوحة المصدر
 
مشاركات: 2039
اشترك في: الخميس أكتوبر 01, 2009 2:50 pm
مكان: Stadt Ilmenau, Thuringen, Germa
الجتس: ذكر
الشهادة الثانوية: Syria
الجامعة: Damascus
الكلية: ITE
المرحلة الدراسية: السنة الرابعة
الاختصاص: شبكات و نظم

Re: نكشات ;) Python

مشاركة غير مقروءةبواسطة Karam » الخميس أغسطس 05, 2010 12:26 am

CODE: تحديد الكل
x = iter([iter([iter([22, 55]), 1, 3]), 2, 3])
print(x.next().next().next())
print(x.next())
print(x.next())



الشرح



أولا :

آلية عمل التابع iter :
هو تابع يقوم بتوليد سلاسل تكرارية مممم .. شوفو هاد المثال البسيط
CODE: تحديد الكل
>>> x = iter([1, 2, 3])
>>> x.next()
1
>>> x.next()
2
>>> x.next()
3


بتصوّر هيك الكود كلّو نفهم :wink:

الخرج رح يطبع :
22
2
3
أنا بتنفس حرية .. ما تقطع عني الهوى
صورة العضو الشخصية
Karam
مشرف منتدى البرمجيات المفتوحة المصدر
مشرف منتدى البرمجيات المفتوحة المصدر
 
مشاركات: 2039
اشترك في: الخميس أكتوبر 01, 2009 2:50 pm
مكان: Stadt Ilmenau, Thuringen, Germa
الجتس: ذكر
الشهادة الثانوية: Syria
الجامعة: Damascus
الكلية: ITE
المرحلة الدراسية: السنة الرابعة
الاختصاص: شبكات و نظم

Re: نكشات ;) Python

مشاركة غير مقروءةبواسطة Karam » الخميس أغسطس 05, 2010 12:39 am

CODE: تحديد الكل
x = range(25, 125, 25)
x = filter(lambda x : '0' in str(x), x)
x = int(reduce(lambda i, j : i/2.0+j, x))
print(x)




الشرح


أولا :

تابع range يقوم بتكوين سلسلة , على الشكل التالي ... شوفو كيف :
الدخل :
أول باراميتر : نقطة البداية
تاني باراميتر : نقطة النهاية
تالت باراميتر : مقدار القفزة داخل السلسة
مثال :
CODE: تحديد الكل
>>> range(1, 11, 1)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> range(1, 11, 3)
[1, 4, 7, 10]
>>> range(1, 25, 5)
[1, 6, 11, 16, 21]



ثانيا :

تابع filter :
أول باراميتر : قادة ربط تابع
تاني باراميتر : السلسة التي نرد فلترتها

يعني نحنا بهي الحالة منكون عم نحذف كل الأعداد الي مافيها صفار ..


ثالثا :
CODE: تحديد الكل
x = int(reduce(lambda i, j : i/2.0+j, x))


تابع reduce :
يقوم باختزال السلسلة إلى متحول بسيط وفق قاعدة ربط تابع
هون رح نختزل x إلى العدد 125
أنا بتنفس حرية .. ما تقطع عني الهوى
صورة العضو الشخصية
Karam
مشرف منتدى البرمجيات المفتوحة المصدر
مشرف منتدى البرمجيات المفتوحة المصدر
 
مشاركات: 2039
اشترك في: الخميس أكتوبر 01, 2009 2:50 pm
مكان: Stadt Ilmenau, Thuringen, Germa
الجتس: ذكر
الشهادة الثانوية: Syria
الجامعة: Damascus
الكلية: ITE
المرحلة الدراسية: السنة الرابعة
الاختصاص: شبكات و نظم

Re: نكشات ;) Python

مشاركة غير مقروءةبواسطة Karam » الخميس أغسطس 05, 2010 12:47 am

CODE: تحديد الكل
seq  = [0]
for i in seq:
   print(i)
   seq.extend([i+1])


CODE: تحديد الكل
i = 0
while True :
   print(i)
   i += 1



هدول الحلقتين حلقات غير منتهية :imb:
أنا بتنفس حرية .. ما تقطع عني الهوى
صورة العضو الشخصية
Karam
مشرف منتدى البرمجيات المفتوحة المصدر
مشرف منتدى البرمجيات المفتوحة المصدر
 
مشاركات: 2039
اشترك في: الخميس أكتوبر 01, 2009 2:50 pm
مكان: Stadt Ilmenau, Thuringen, Germa
الجتس: ذكر
الشهادة الثانوية: Syria
الجامعة: Damascus
الكلية: ITE
المرحلة الدراسية: السنة الرابعة
الاختصاص: شبكات و نظم

Re: نكشات ;) Python

مشاركة غير مقروءةبواسطة Karam » الخميس أغسطس 05, 2010 1:13 am

CODE: تحديد الكل
x = enumerate(' '.join('abcdefghijklmnopqrstuvwxyz').split())
while True :
   try :
      this = x.next()
      print(this[0], ' : ', this[1])
   except StopIteration :
      break




الشرح



تابع join سبق وعرفتو شغلتو :wink:

أولا :

تابع split هو عبارة عن method خاصة بالـ String Object ...
عملها : تقوم بردّ الكلمات الواردة داخل سطر ووضعها في مصفوفة ( قائمة )
مثلا :
CODE: تحديد الكل
>>> 'programming with Python is funny'.split()
['programming', 'with', 'Python', 'is', 'funny']



ثانيا :

تابع enumerate يقوم بتحويل السلاسل إلى نمط معدود
وكل عقدة في هذا النمط هي عبارة عن tuple ثنائية .. ( رقم العقدة , قيمة العقدة )
مثال :
CODE: تحديد الكل
>>> L = enumerate(['a', 'b', 'c'])
>>> L.next()
(0, 'a')
>>> L.next()
(1, 'b')



ثالثا :

تعليمة try وتعليمة except .. مممم لمعالجة الـ Exception

يعن الخرج هو :
CODE: تحديد الكل
(0, ' : ', 'a')
(1, ' : ', 'b')
(2, ' : ', 'c')
(3, ' : ', 'd')
(4, ' : ', 'e')
(5, ' : ', 'f')
(6, ' : ', 'g')
(7, ' : ', 'h')
(8, ' : ', 'i')
(9, ' : ', 'j')
(10, ' : ', 'k')
(11, ' : ', 'l')
(12, ' : ', 'm')
(13, ' : ', 'n')
(14, ' : ', 'o')
(15, ' : ', 'p')
(16, ' : ', 'q')
(17, ' : ', 'r')
(18, ' : ', 's')
(19, ' : ', 't')
(20, ' : ', 'u')
(21, ' : ', 'v')
(22, ' : ', 'w')
(23, ' : ', 'x')
(24, ' : ', 'y')
(25, ' : ', 'z')
أنا بتنفس حرية .. ما تقطع عني الهوى
صورة العضو الشخصية
Karam
مشرف منتدى البرمجيات المفتوحة المصدر
مشرف منتدى البرمجيات المفتوحة المصدر
 
مشاركات: 2039
اشترك في: الخميس أكتوبر 01, 2009 2:50 pm
مكان: Stadt Ilmenau, Thuringen, Germa
الجتس: ذكر
الشهادة الثانوية: Syria
الجامعة: Damascus
الكلية: ITE
المرحلة الدراسية: السنة الرابعة
الاختصاص: شبكات و نظم

Re: نكشات ;) Python

مشاركة غير مقروءةبواسطة Karam » الخميس أغسطس 05, 2010 1:21 am

CODE: تحديد الكل
exec('x = y = 12')
exec('x *= y')
y = eval('y + x')
print('x = {0}\ny = {1}'.format(x, y))




الشرح


أولا :

التابع exec :
الدخل : string
العمل تنفيذ سطر برمجي :wink:


مثلا :
CODE: تحديد الكل
>>> exec('x = 3')
>>> print(x)
3



ثانيا :

تابع eval سيق وعرفتو فوق ..


يعني الخرج تبع الكود بيطبع التالي :

CODE: تحديد الكل
x = 144
y = 156
أنا بتنفس حرية .. ما تقطع عني الهوى
صورة العضو الشخصية
Karam
مشرف منتدى البرمجيات المفتوحة المصدر
مشرف منتدى البرمجيات المفتوحة المصدر
 
مشاركات: 2039
اشترك في: الخميس أكتوبر 01, 2009 2:50 pm
مكان: Stadt Ilmenau, Thuringen, Germa
الجتس: ذكر
الشهادة الثانوية: Syria
الجامعة: Damascus
الكلية: ITE
المرحلة الدراسية: السنة الرابعة
الاختصاص: شبكات و نظم

Re: نكشات ;) Python

مشاركة غير مقروءةبواسطة Karam » الخميس أغسطس 05, 2010 1:25 am

CODE: تحديد الكل
def make_seq(begin, end):
   for i in range(begin, end+1):
      yield i

this = make_seq(1, 10)
print(this)
print(this.next())
print(this.next())
print(this.next())




الشرح



أولا :

yield تقوم بإعادة عقدة داخل generator object ...

خرج المثال السابق يوضح الأمر :
CODE: تحديد الكل
1
2
3
أنا بتنفس حرية .. ما تقطع عني الهوى
صورة العضو الشخصية
Karam
مشرف منتدى البرمجيات المفتوحة المصدر
مشرف منتدى البرمجيات المفتوحة المصدر
 
مشاركات: 2039
اشترك في: الخميس أكتوبر 01, 2009 2:50 pm
مكان: Stadt Ilmenau, Thuringen, Germa
الجتس: ذكر
الشهادة الثانوية: Syria
الجامعة: Damascus
الكلية: ITE
المرحلة الدراسية: السنة الرابعة
الاختصاص: شبكات و نظم

Re: نكشات ;) Python

مشاركة غير مقروءةبواسطة Karam » الخميس أغسطس 05, 2010 1:30 am

CODE: تحديد الكل
x = 290
print('Octal({0})   : {1}'.format(x, oct(x)))
print('Binary({0})  : {1}'.format(x, bin(x)))
print('Hexa({0})    : {1}'.format(x, hex(x)))




الشرح



أولا :

التابع oct :
الدخل : عدد
الخرج : string يمثل العدد بالنظام الثماني


ثانيا :
التابع bin :
الدخل : عدد
الخرج : string يمثل العدد بالنظام الثنائي


ثالثا :
التابع hex :
الدخل : عدد
الخرج : string يمثل العدد بالنظام الست عشري


خرج الكود :

CODE: تحديد الكل
Octal(290)   : 0442
Binary(290)  : 0b100100010
Hexa(290)    : 0x122
أنا بتنفس حرية .. ما تقطع عني الهوى
صورة العضو الشخصية
Karam
مشرف منتدى البرمجيات المفتوحة المصدر
مشرف منتدى البرمجيات المفتوحة المصدر
 
مشاركات: 2039
اشترك في: الخميس أكتوبر 01, 2009 2:50 pm
مكان: Stadt Ilmenau, Thuringen, Germa
الجتس: ذكر
الشهادة الثانوية: Syria
الجامعة: Damascus
الكلية: ITE
المرحلة الدراسية: السنة الرابعة
الاختصاص: شبكات و نظم

Re: نكشات ;) Python

مشاركة غير مقروءةبواسطة Karam » الخميس أغسطس 05, 2010 2:44 am

CODE: تحديد الكل
x = [True, True, True]
print 'all(', x, ')  : ', all(x)
print 'any(', x, ')  : ', any(x)

x.append(False)
print 'all(', x, ')  : ', all(x)
print 'any(', x, ')  : ', any(x)



الشرح



أولا :

التابع all :
الدخل : سلسلة ( قائمة )
الخرج : True || False
آلية العمل .. إذا كانت جميع عناصر القائمة ترد قيمة منطقية True فيرد التابع True وإلا False
مثال :
CODE: تحديد الكل
>>> all(['a', 'b', ''])
False
>>> all([1 > 0, 4 % 2 == 0, eval('1 + 2')])
True
>>> all([1, 2, 0])
False



ثانيا :
التابع any :
الدخل : سلسلة ( قائمة )
الخرج : True || False
آلية العمل .. إذا كانت جميع عناصر القائمة ترد قيمة منطقية False فيرد التابع False وإلا True
مثال :
CODE: تحديد الكل
>>> any(['a', 'b', ''])
True
>>> any([1 > 0, 4 % 2 == 0, eval('1 + 2')])
True
>>> any([1, 2, 0])
True
>>> any([0, 0, 0])
False


إذا خرج الكود هو :
CODE: تحديد الكل
all( [True, True, True] )  :  True
any( [True, True, True] )  :  True
all( [True, True, True, False] )  :  False
any( [True, True, True, False] )  :  True
أنا بتنفس حرية .. ما تقطع عني الهوى
صورة العضو الشخصية
Karam
مشرف منتدى البرمجيات المفتوحة المصدر
مشرف منتدى البرمجيات المفتوحة المصدر
 
مشاركات: 2039
اشترك في: الخميس أكتوبر 01, 2009 2:50 pm
مكان: Stadt Ilmenau, Thuringen, Germa
الجتس: ذكر
الشهادة الثانوية: Syria
الجامعة: Damascus
الكلية: ITE
المرحلة الدراسية: السنة الرابعة
الاختصاص: شبكات و نظم

Re: نكشات ;) Python

مشاركة غير مقروءةبواسطة Karam » الخميس أغسطس 05, 2010 2:49 am

مجموعة الأعداد العقدية :

CODE: تحديد الكل
x = 1 + 2j

print(x == complex(1, 2))
print(x.real)
print(x.imag)
print(x.conjugate())



الشرح



الخرج :

CODE: تحديد الكل
True
1.0
(1-2j)


أمثلة أخرى على مجموعة الأعداد العقدية :
CODE: تحديد الكل
>>> x = 1 - 2j
>>> y = 5j
>>> x + y
(1+3j)
>>> x - y
(1-7j)
>>> x * y
(10+5j)
>>> x / y
(-0.40000000000000002-0.20000000000000001j)
>>> x ** y
(-161.18751321137705-195.77962956590403j)
أنا بتنفس حرية .. ما تقطع عني الهوى
صورة العضو الشخصية
Karam
مشرف منتدى البرمجيات المفتوحة المصدر
مشرف منتدى البرمجيات المفتوحة المصدر
 
مشاركات: 2039
اشترك في: الخميس أكتوبر 01, 2009 2:50 pm
مكان: Stadt Ilmenau, Thuringen, Germa
الجتس: ذكر
الشهادة الثانوية: Syria
الجامعة: Damascus
الكلية: ITE
المرحلة الدراسية: السنة الرابعة
الاختصاص: شبكات و نظم

Re: نكشات ;) Python

مشاركة غير مقروءةبواسطة Karam » الخميس أغسطس 05, 2010 2:54 am

وهي مجموعة من التوابع الظريفة الخاصة بالـ String :

CODE: تحديد الكل
# XXX capitalize
name = 'python'
print(name)
name = name.capitalize()
print(name)


CODE: تحديد الكل
# XXX count
x = 'foot ball'
print(x.count('o', 0, len(x)))


CODE: تحديد الكل
# XXX expandtabs
x = 'Hi\tMan'
y = x.expandtabs()
print(y)


CODE: تحديد الكل
# XXX find
x = 'I love programming'
print(x.find('programming'))


CODE: تحديد الكل
# XXX format
x = '{0} / {1} = {2:1.3}'.format(1.0, 3.0, 1.0/3.0)
print(x)


CODE: تحديد الكل
# XXX index
x = 'Python Programming'
print(x.index('P', 4, len(x)))
print(x.index('P', 0, len(x)))


CODE: تحديد الكل
# XXX isalnum
x = '12'
if x.isalnum() :
   print(int(x)/4)
else :
   print(x.isalnum())


CODE: تحديد الكل
# XXX isalpha
x = 'Hi'
print(x.isalpha())


CODE: تحديد الكل
# XXX islower
x = 'python'
print(x.islower())


CODE: تحديد الكل
# XXX is upper
x = 'PYTHON'
print(x.upper())


CODE: تحديد الكل
# XXX isspace
print('            '.isspace())


CODE: تحديد الكل
# XXX join
x = '12345'
print(' + '.join(x), ' = ', eval('+'.join(x)))


CODE: تحديد الكل
# XXX lower & upper

x = 'python'
y = x.upper()
print(y)
y = y.lower()
print(y)



CODE: تحديد الكل
# XXX partition

x = '1234_4321'
l = x.partition('_')
print(l[0])
print(l[1])
print(l[2])



CODE: تحديد الكل
# XXX split
x = 'programming with python is funny'
print(x.split())


CODE: تحديد الكل
# XXX splitlines
x = '''programming
with
python
is funny
'''
print(x.splitlines())


CODE: تحديد الكل
# XXX zfill
x = bin(3)[2:]
x =  x.zfill(8)
print(3, ' = ', x)
أنا بتنفس حرية .. ما تقطع عني الهوى
صورة العضو الشخصية
Karam
مشرف منتدى البرمجيات المفتوحة المصدر
مشرف منتدى البرمجيات المفتوحة المصدر
 
مشاركات: 2039
اشترك في: الخميس أكتوبر 01, 2009 2:50 pm
مكان: Stadt Ilmenau, Thuringen, Germa
الجتس: ذكر
الشهادة الثانوية: Syria
الجامعة: Damascus
الكلية: ITE
المرحلة الدراسية: السنة الرابعة
الاختصاص: شبكات و نظم

Re: نكشات ;) Python

مشاركة غير مقروءةبواسطة Karam » الخميس أغسطس 05, 2010 2:56 am

CODE: تحديد الكل
factorial = lambda n: reduce(lambda x, y: x*y, range(2, n+1))
print factorial(3)



الخرج :
CODE: تحديد الكل
6
أنا بتنفس حرية .. ما تقطع عني الهوى
صورة العضو الشخصية
Karam
مشرف منتدى البرمجيات المفتوحة المصدر
مشرف منتدى البرمجيات المفتوحة المصدر
 
مشاركات: 2039
اشترك في: الخميس أكتوبر 01, 2009 2:50 pm
مكان: Stadt Ilmenau, Thuringen, Germa
الجتس: ذكر
الشهادة الثانوية: Syria
الجامعة: Damascus
الكلية: ITE
المرحلة الدراسية: السنة الرابعة
الاختصاص: شبكات و نظم

Re: نكشات ;) Python

مشاركة غير مقروءةبواسطة baha'a » الخميس أغسطس 05, 2010 9:47 pm

يعطيك العافية :wink2:
ليس المهم ما أنت الآن
المهم ما ستكون يوم تقف بين يديه سبحانه

ستقف قريباً، صدقني
صورة العضو الشخصية
baha'a
عضو فعال
عضو فعال
 
مشاركات: 580
اشترك في: السبت ديسمبر 12, 2009 11:40 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الخامسة
الاختصاص: شبكات و نظم

Re: نكشات ;) Python

مشاركة غير مقروءةبواسطة Leen Rihawi » الخميس أغسطس 05, 2010 11:43 pm

برافو كرم..معلم :cool: :ism:
الله يعطيك العافية.....

هي ساويت مشاركاتي 101 مشانك :wink2:
Leen Rihawi
متميز لعامنا الثالث
متميز لعامنا الثالث
 
مشاركات: 216
اشترك في: الأحد أكتوبر 04, 2009 11:08 am
الجتس: أنثى
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الثالثة
الاختصاص: ذكاء صنعي

Re: نكشات ;) Python

مشاركة غير مقروءةبواسطة Karam » الجمعة أغسطس 06, 2010 12:57 am

بناء المصفوفات الثنائية
(عن طريق dict )


إذا أردنا بناء المصفوفة التالية نحتاج إلى ( مفاتيح keys ) وإلى ( قيم values ) :

CODE: تحديد الكل
1    2
3    4

(0, 0) <- 1
(0, 1) <- 2
(1, 0) <- 3
(1, 1) <- 4


وهذا الشيء متوافر في البنية dict , وسأقوم بمحاولة تمثيل مصفوفة عبر هذه البنية :

CODE: تحديد الكل
>>> A = {(0, 0) : 1,
...      (0, 1) : 2,
...      (1, 0) : 3,
...      (1, 1) : 4 }
>>> A.keys()
[(0, 1), (1, 0), (0, 0), (1, 1)]
>>> A.values()
[2, 3, 1, 4]


أعتقد بأن هذه البنة جيدة (كفو :wink2: ) لتمثيل المصفوفات الثنائية والثلاثية أيضا .. والرباعيا و ... والتي من المرتبة n

- مثال (1) "مصفوفة ثنائة -- بس مو كفو كتير --" :
CODE: تحديد الكل
row = input('input row count : ')
col = input('input col count : ')
A = {}

for i in range(0, row):
   for j in range(0, col):
      A[i, j] = input()

for i in range(0, row):
   for j in range(0, col):
      print A[i, j], '\t',
   print



- لتكون المصفوفة أقوى وكفو أكتر :wink2: .. رح نعملها Class :

CODE: تحديد الكل
class Array :
   def __init__(self, row = 0, col = 0):
      self.__row, self.__col = row, col
      self.__cell = {}

   def read(self):
      for i in range(0, self.__row):
         for j in range(0, self.__col):
            self.__cell[i, j] = float(input())

   def Print(self):
      for i in range(0, self.__row):
         for j in range(0, self.__col):
            print '{0}\t'.format(self.__cell[i, j]),
         print ""

A = Array(2, 3)
A.read()
A.Print()
أنا بتنفس حرية .. ما تقطع عني الهوى
صورة العضو الشخصية
Karam
مشرف منتدى البرمجيات المفتوحة المصدر
مشرف منتدى البرمجيات المفتوحة المصدر
 
مشاركات: 2039
اشترك في: الخميس أكتوبر 01, 2009 2:50 pm
مكان: Stadt Ilmenau, Thuringen, Germa
الجتس: ذكر
الشهادة الثانوية: Syria
الجامعة: Damascus
الكلية: ITE
المرحلة الدراسية: السنة الرابعة
الاختصاص: شبكات و نظم

Re: نكشات ;) Python

مشاركة غير مقروءةبواسطة Karam » الجمعة أغسطس 06, 2010 3:06 pm

CODE: تحديد الكل
this = '"Hm... Err -- are you sure?" he said, sounding insecure.'
print re.findall(r'[.?\-",]+', this)



الخرج رح يكون قائمة بعلامات التنقسط التالية ( . ? \ - " , ) :wink:

وهو كالتالي

CODE: تحديد الكل
['"', '...', '--', '?"', ',', '.']
أنا بتنفس حرية .. ما تقطع عني الهوى
صورة العضو الشخصية
Karam
مشرف منتدى البرمجيات المفتوحة المصدر
مشرف منتدى البرمجيات المفتوحة المصدر
 
مشاركات: 2039
اشترك في: الخميس أكتوبر 01, 2009 2:50 pm
مكان: Stadt Ilmenau, Thuringen, Germa
الجتس: ذكر
الشهادة الثانوية: Syria
الجامعة: Damascus
الكلية: ITE
المرحلة الدراسية: السنة الرابعة
الاختصاص: شبكات و نظم

Re: نكشات ;) Python

مشاركة غير مقروءةبواسطة Karam » الجمعة أغسطس 06, 2010 3:12 pm

CODE: تحديد الكل
x = 'alpha, beta,,,,gamma. delta'
print re.split('[,. ]+', x)



بهي الحالة نحنا عم نشيل من الـ string كل الفواصل والنقط .. وبعدين عم ناخد الكلمات الموجودة داخل هاد الـ string ونحطها بمصفوفة
.. شايفين ما أسهلها :wink:

الخرج كالتالي :
CODE: تحديد الكل
['alpha', 'beta', 'gamma', 'delta']
أنا بتنفس حرية .. ما تقطع عني الهوى
صورة العضو الشخصية
Karam
مشرف منتدى البرمجيات المفتوحة المصدر
مشرف منتدى البرمجيات المفتوحة المصدر
 
مشاركات: 2039
اشترك في: الخميس أكتوبر 01, 2009 2:50 pm
مكان: Stadt Ilmenau, Thuringen, Germa
الجتس: ذكر
الشهادة الثانوية: Syria
الجامعة: Damascus
الكلية: ITE
المرحلة الدراسية: السنة الرابعة
الاختصاص: شبكات و نظم

التالي

العودة إلى منتدى البرمجيات المفتوحة المصدر

الموجودون الآن

المستخدمون المتصفحون لهذا المنتدى: لا يوجد أعضاء مسجلين متصلين و 1 زائر

cron