Unconfigured Ad Widget

تقليص

إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

(جديد) للمبتدئين في البايثون

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • (جديد) للمبتدئين في البايثون

    بسم الله الرحمن الرحيم

    حبيت اضع هالدرس .. يعتبر قديم .. لاني من زمان عن البرمجة .. لكن قد يفيد احد .. وسوف اكمل بعض الدروس ايضا ً ...

    اصدار البايثون المستخدم 2.4 ... الاصدار القديم .. تستطيع المتابعة بالاصدار الجديد 2.5

    الدرس يعتبر مقدمة بسيطه للغة البايثون ..


    بسم الله ...


    تعتبر لغة البايثون من اللغات الجميلة والسهلة في التعلم ... ومن اللغات المهمة ايضا ً على انها سهله ... حتى انها تقارن

    مع اللغات الاخرى المعروفة مثل : Perl,ٌRuby,Tcl,Java,or Scheme ... وراح اذكر بعض مميزات هذه اللغة ..

    =* البايثون تستخدم بشكل سهل وسياق مبسط يعني الكود قابل للقراءة ومفهوم

    =* البايثون لغة خفيفة الحركة حتى تسهل عليك عملك وهذا ما يجعل البايثون لغة مثاليه

    =* المعلومات الاساسيه متوفرة بالبايثون الأرقام (سواء عشريه أو أعداد كبيره أو غيره من الأعداد ) والخيوط المسماه بــ(Strings) تشمل هذه الخيوط ( ASCII and Unicode ) وكذلك القوائم و المعاجم .

    =* ولا انسى أن اللغة تدعم Object-Oriented Programming مع المصفوفات

    =* ايضا ً الكود أو الشفرة تستطيع ضمّه مع وحدات القياس (Modules) و الرزم (packages)

    =* المترجم في لغة البايثون ممتد بسهوله تستطيع إضافة (Modules) في المترجم الخاص
    بلغات أخرى مثل C or C++

    =* ايضا ً واجهة البايثون مبسطه جدا ً مجرد ما تكتب الكود تحصل على عملك بدون أي تعقيد .

    =* ايضا ً البايثون لغة مفتوحة المصدر open source

    =* البايثون تستطيع التعامل معاها بمختلف الأنظمة سوا ويندوز أو يونيكس او لينوكس أو ماكنتوش او حتى انظمة الجوالات .

    ملاحظه : (هذا مجرد تلخيص بسيط لهذه اللغة ... تستطيع التعرف على اللغة بشكل اكبر عن طريق Google )

    الآن بعد ماتعرفت على اللغة بسم الله نبدأ بتعلمها بشكل مبسط ...

    أولا : كيف يتم تطبيقها ؟ وكيف أبدا بكتابة اكوادها ؟

    في البداية يجب تحميل وتنزيل البايثون على جهازك سواء كنت تحت بيئة الويندوز أو اليونكس أو الماكنتوش وتستطيع تنزيله

    من الموقع الرئيسي لهذه اللغة عنوان الموقع ( http://www.python.org/download )

    تطبيقنا راح يكون على بيئة الويندوز بإذن الله ..



    ثانيا ً : ماذا بعد التنزيل ؟

    بعد ماتقوم بتنزيل البرنامج وتثبيته عندك تلاحظ وجود طريقتين عندك لتبدأ عملك مع هذه اللغة

    الاولى : عن طريق سطر الأوامر ( Command Line )

    طبعا ً سطر الأوامر من الحاجات الممتعة ويحب الكثير وخصوصا المتمرسين واللذين يحبون الغموض والشاشة

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

    الثانية : عن طريقه الواجهة الرسوميه (IDLE) ( graphical)

    أنا أُفضل الواجهة الرسوميه بالتأكيد .... وانصح فيها المبتدئين حتى يسهل عليه التعامل مع هذه الواجهة سوا تعديل أو حذف

    عن طريق استخدام الفارة .

    الآن بعد ما تم تشغيل الواجهة عندك .. ماذا تلاحظ ؟ لنرى !


    كود:
    Python 2.4.1 (#65, Mar 30 2005, 09:13:57) [MSC v.1310 32 bit (Intel)] on win32
    كود:
     
    [RIGHT]Type "copyright", "credits" or "license()" for more information.[/RIGHT]
     
    
    [RIGHT]****************************************************************
    [RIGHT]Personal firewall software may warn about the connection IDLE
    makes to its subprocess using this computer's internal loopback
    interface. This connection is not visible on any external
    interface and no data is sent to or received from the Internet.
    ****************************************************************[/RIGHT]
    [/RIGHT]
    
     
    
    [RIGHT]IDLE 1.1.1 
     
    [RIGHT]>>>[/RIGHT]
    [/RIGHT]
    تجد العلامة "<<<" بحثت عن معناها أو المسمى لها بالعربي وجدت لها معنى يمكن يكون ليس مفهوم عند البعض .. على العموم المسمى هو prompt

    إذا بحثت عن معناها بالعربي تجد المعنى (المحثث) من الحث يحُث

    الـ prompt تجده في كل مكان .. لو تلاحظ الدوس الـ prompt تبعه هو :

    "C:\>"

    واليونيكس :

    "$"

    والـprompt هو برنامج ينتظرك أنت (المستخدم) حتى تعطيه التعليمات ^_^


    ثالثا ً : التعامل مع الواجهة والبدء

    التعامل مع البايثون بسيط وسهل وسلس جدا ... لاحظ :


    كود:
    IDLE 1.1.1
    كود:
    [RIGHT]>>> 1
    [RIGHT]1
    >>> 2
    2
    >>> 99
    99
    >>> 1230440340
    1230440340
    >>> sami = 20
    >>> ahmad = 50
    >>> saleh = 99.99
    >>> sami
    20
    >>> saleh
    99.989999999999995
    >>> ahmad
    50
    >>>[/RIGHT]
    [/RIGHT]

    مثل ما تلاحظ بالأعلى تُدخل الأمر وتلاحظه يعرض النتيجة أمامك بسرعة ! وتلاحظ أن البايثون يُعرف المتغير بحسب

    استخدامك له لا تحتاج لمعلومات معينه أو متغيرات معينه .. لغة البايثون ذكيه جدا ً لتعرف نوع المتغير

    سواء كان أرقام أو حروف أو قوائم ... الخ

    رابعا ً : أنواع المعلومات والقيم في البايثون

    كل شي له قيمه او معلومة سواء كان في البايثون او غيره .. لكن البايثون كما ذكرنا ذكي جدا ً بحيث يتعرف على جميع

    الملعومات والقيم ..

    توضيح :

    تلاحظ في بعض لغات البرمجة الاخرى مثل C or C++ a اذا اراد كتابة متغير يقوم بكتابة نوع هذا المتغير قبل

    استخدامه .. على سبيل المثال :

    كود:
    int my_integer;

    هذا المتغير يقوم بـ إخبار المترجم او المفسر يحجز مكان في الذاكرة لكي يقوم المترجم بالتعامل مع المعالج ! (وجع راس !)

    لاحظ ان لازم تحدد نوع المتغير ..

    اما البايثون .. لغة ديناميكية .. يعني توضح لك نوع المتغير بدون ما أنت توضحه (بدون وجع راس !)

    ولا تحتاج لـ كومبايلر .. لاحظ المثال الآتي :

    كود:
    IDLE 1.1.1
    كود:
    [RIGHT]>>> s = 1
    [RIGHT]>>> s
    1
    >>> type (s)
    <type 'int'>
    >>> s + 5
    6[/RIGHT]
     
    [RIGHT]>>> s = 'sa'
    >>> s
    'sa'
    >>> type (s)
    <type 'str'>
    >>> s + 5[/RIGHT]
     
    [RIGHT]Traceback (most recent call last):
    File "<pyshell#7>", line 1, in -toplevel-
    s + 5
    TypeError: cannot concatenate 'str' and 'int' objects
    >>> s + 'mi'
    'sami'
    >>>[/RIGHT]
    [/RIGHT]

    فهمت المقصود من المثال ؟ على العموم راح اشرحه حتى تتضح الفكره ...

    نبدأ بأول الكود ..
    كود:
    IDLE 1.1.1
    كود:
    [RIGHT]>>> s = 1
    [RIGHT]>>> s
    1[/RIGHT]
    [/RIGHT]


    هنا سوينا حرف s بالواحد (أصبح الحرف الآن متغير يحمل قيمه ) ..

    بحيث إذا طلبت الحرف s يطلع لك قيمته وهي الرقم واحد ..

    الجزء الثاني من القسم الأول من الكود :
    كود:
    >>> type (s)
    كود:
    [RIGHT]<type 'int'>
    [RIGHT]>>> s + 5
    6[/RIGHT]
    [/RIGHT]

    مثل ما أنت شايف كتبت type (s)a طبعا هنا مو مثل اللغات الأخرى (C or C++) ما يحتاج تخزن المتغير ونوعه

    حتى يتم التعرف عليه من المعالج .. مجرد ما تكتب المتغير يطبع لك نوعه .. مثل ما أنت شايف نوع المتغير s هو int

    يعني integer أي عدد صحيح بالعربي .. ولاحظ بالأخير عملية الجمع أضفنا 5 على المتغير طلع لنا الناتج 6 ^_^

    باقي المثال واضح .. لكن أحب أوضح حاجه من المثال ..

    كود:
    >>> s = 'sa'
    كود:
    [RIGHT]>>> s
    [RIGHT]'sa'
    >>> type (s)
    <type 'str'>
    >>> s + 5[/RIGHT]
     
    [RIGHT]Traceback (most recent call last):
    File "<pyshell#7>", line 1, in -toplevel-
    s + 5
    TypeError: cannot concatenate 'str' and 'int' objects
    >>> s + 'mi'
    'sami'
    >>>[/RIGHT]
    [/RIGHT]

    لاحظ عندما جمعنا المتغير s مع العدد 5 طلع لك خطأ (لاحظ أن نوع الخطأ موضح لك) طبعا السبب واضح لا نستطيع

    إضافة حروف مع أعداد .. شوف بعد ما عملنا إضافة أحرف مع أحرف كل شي تمام وبدون أي مشاكل ..

    فيه نقطة لازم أوضحها بالنسبة للمتغيرات وإضافة الأحرف وأعداد مع بعض .. ذكرنا قبل قليل لا نستطيع إضافة حروف مع

    أعداد ! لكن لماذا ؟

    *ما خطر في بالك ليش .. أو مسكت عناد وقلت لازم أضيف عدد مع حرف (كيفي !)

    طبعا تستطيع إضافة أعداد مع حروف لاحظ المثال الآتي ما راح اشرح المثال راح يكون واضح واعرف السبب بنفسك

    ليش تم جمع أعداد مع حروف ؟

    كود:
    >>> s = 'sa'
    كود:
    [RIGHT]>>> s
    [RIGHT]'sa'
    >>> type (s)
    <type 'str'>
    >>> s + 5[/RIGHT]
     
    [RIGHT]Traceback (most recent call last):
    File "<pyshell#7>", line 1, in -toplevel-
    s + 5
    TypeError: cannot concatenate 'str' and 'int' objects
    >>> s + 'mi'
    'sami'
    >>> s + '123'
    'sa123'
    >>>[/RIGHT]
    [/RIGHT]

    أتمنى الفكره وضحت !


    خامسا ً : الفونكشن ( Function )

    الفونكشن بالبايثون مثل أي لغة أخرى يعني نفس الوظيفة والعمل وكل شي ..

    بشكل عام .... عندما يتم تعريف الفونكشن ويقوم المبرمج بتحديد اسم للفونكشن بيكون كل شي تمام ..
    وطبعا دائما ً يعود (return) الفونكشن على قيمه معينه .. وأن أردت أن لا يعود على قيمه تكون القيمة None .

    لو تلاحظ اللغات الأخرى (اللغات التي تحتاج مترجم Compile)
    يكون الفونكشن مُعرف بملف مصدري ( source code ) ثم يتم تحويل الملف (عن طريق المترجم)
    إلى تعليمات المعالج .. أما في بالبايثون يتم تعريف الفونكشن بشكل مباشر عن طريق def

    كود:
    IDLE 1.1.1
    كود:
    [RIGHT]>>> def MyName():
    [RIGHT]            "NH-STYLE"[/RIGHT]
     
    [RIGHT]>>> MyName
    <function MyFirstFunction at 0x00CB2670>[/RIGHT]
     
    [RIGHT]>>> print MyName.__doc__
    NH-STYLE[/RIGHT]
    [/RIGHT]

    شيئين لازم يكونون في بالك إذا كتبت الفونكشن ...

    ## جميع الفونكشنز :] دائما ً تعود (return) على قيمه .. في المثال السابق القيمة تعود على None

    وحتى لو ما ذكرنها بالكود !

    ## بالنسبة للأقواس لازم تكون موجودة بالكود ...

    نأتي الآن إلى حاجه مهمة بالفونكشنز :] ما يسمى بـArguments من الحاجات الجميلة بالفونكشنز والسهلة وأيضا ً تعتبر

    من الطرق التي تساعد بإختصار الوقت ... عن طريق Arguments تقوم بتعريف الفونكشن بإضافة تعليق منك ^

    مثال :

    كود:
    IDLE 1.1.1
    كود:
    [RIGHT]>>> def MyAdd(x, y):
    [RIGHT]            "Add two values and return the sum."
                 return x + y[/RIGHT]
    [/RIGHT]

    لكود واضح ...

    قمنا بتعريف MyAdd اللي يقبل اثنين من Argument (x,y)a ولاحظ ان الفونكشن تعود على Arguments

    بحيث يقوم بعملية الجمع ..

    لاحظ التطبيق الفعلي لهذا المثال لتوضيح الفكره لديك :

    كود:
    IDLE 1.1.1
    كود:
    [RIGHT]>>> def MyAdd(x, y):
    [RIGHT]"Add two values and return the sum."
    return x + y[/RIGHT]
     
    [RIGHT]>>> MyAdd (3,5)
    8
    >>> MyAdd (25,25)
    50
    >>>[/RIGHT]
    [/RIGHT]

    إن شالله وضحت الفكره .

    طيب يخطر على بالك لو عملنا نفس العمل لكن بدال الأعداد أحرف ؟ هل يتم العمل بشكل صحيح ؟

    الجواب : أكيد .. مع أننا وضعنا عندما كتبنا return وضعنا علامة (+) ! ؟ ... يعني البايثون يتم التعامل مع(+)سواء

    أعداد او حروف .. وهذا يسهل عليك العمل بكثير بالمقارنة مع اللغات الآخرى التي تحتاج للأرقام تعريف خاص والأعداد

    كذلك ... لكن لاتنسى كلامنا بالأول .. لاحظ المثال .

    على نفس المثال بالأعلى :

    كود:
    IDLE 1.1.1
    كود:
    [RIGHT]>>> def MyAdd(x, y):
    [RIGHT]"Add two values and return the sum."
    return x + y[/RIGHT]
     
    [RIGHT]>>> MyAdd (3,5)
    8
    >>> MyAdd (25,25)
    50
    >>> MyAdd ("Sa","mi"...
    'Sami'[/RIGHT]
    [/RIGHT]

    نأتي لقسم آخر من الفونكشن وهو القيم الخاصة بالـ return والتعامل معاها ....

    كما عرفنا بالأمثلة السابقة عمل الـreturn وأن الفونكشن لازم تعود على قيمه وجربنا طريقتين وهي الأولى التي لا تعود

    على قيمه معينه وتكون قيمتها None *والمثال الآخر حددنا قيم محدده ليعود إليها ...

    وأيضا ً بالبايثون تستطيع عمل ....

    مثال :

    كود:
    IDLE 1.1.1
    كود:
    [RIGHT]>>> def ReturnStuff():
    [RIGHT]             return 10,20,30,40,50
    >>> ReturnStuff()
    (10, 20, 30, 40, 50)[/RIGHT]
    [/RIGHT]

    الكود واضح وضعنا قيم تعود على الفونكشن اللي كتبناه .. الآن على نفس المثال لكن راح نضيف مجموعة متغيرات على

    الفونكشن بحيث تعود هذه القيم على المتغيرات المحددة ...

    كود:
    >>> ahmad,bader,sami,saleh,faris=ReturnStuff()
    كود:
    [RIGHT]>>> ahmad
    [RIGHT]10
    >>> bader
    20
    >>> sami
    30
    >>> saleh
    40
    >>> faris
    50[/RIGHT]
    [/RIGHT]

    ^_^ كل متغير يعود عليه فونكشن حسب الترتيب ...

    لحد هنا ينتهي الدرس .. واتمنى ان اكون وفقت بطرحه ... وبإذن الله بأقرب فرصه اكمل الباقي وتوضيح بعض الحاجات المهمه ...






    ول نعيد المجد العظيم لأمة * كانت منارا للعلوم قديما

  • #2
    جزاك لله خير

    طيب لغة البايثون تنفع لألعاب البلندر؟
    ¨°o.O (قد يختفي الأمل...لكن لا يموت) O.o°¨


    شَكَوْتُ إلَى وَكِيعٍ سُوءَ حِفْظِي فَأرْشَدَنِي إلَى تَرْكِ المعَاصي وَأخْبَرَنِي بأَنَّ العِلْمَ نُورٌونورُ الله لا يهدى لعاصي

    تعليق


    • #3
      شككككرا جزيييلا
      رغم أنني مالي في البايتون و محرك الألعاب لأني أنا لازلت أتعلم النمدجة و الخامات اكتسبت من هذا الموضوع معلومات جميييييلة جدا
      بلاد الحر طبتي يا بلادي *** ملاذا طاب عيشك في فؤادي

      blender for ever

      تعليق


      • #4
        بالنسبة للأخ ملك الحرية البايثون ضرووري جدا في محرك الألعاب
        بلاد الحر طبتي يا بلادي *** ملاذا طاب عيشك في فؤادي

        blender for ever

        تعليق


        • #5
          المشاركة الأصلية بواسطة jagalinho مشاهدة المشاركة
          بالنسبة للأخ ملك الحرية البايثون ضرووري جدا في محرك الألعاب

          يوووووه

          والله اني ماأفهم في البايثون شي

          ^_____×
          ¨°o.O (قد يختفي الأمل...لكن لا يموت) O.o°¨


          شَكَوْتُ إلَى وَكِيعٍ سُوءَ حِفْظِي فَأرْشَدَنِي إلَى تَرْكِ المعَاصي وَأخْبَرَنِي بأَنَّ العِلْمَ نُورٌونورُ الله لا يهدى لعاصي

          تعليق


          • #6
            موضوع جميل
            الحقيقة هو مقدمة رائعة لمن لا يفقه في بيثون شيء ولا تفزعوا من تعلمها فهي من أسهل اللغات

            تعليق


            • #7
              المشاركة الأصلية بواسطة ملك الحرية مشاهدة المشاركة
              يوووووه

              والله اني ماأفهم في البايثون شي

              ^_____×
              لو ما فمت شئ من هذا المقال جرب مقال آخر
              http://www.islamcg.com/blender/%d9%8...b%d9%88%d9%86/

              أنا كتبت أربعة مقالات فى البايثون و لكنى لم أكملها
              لكن اعتقد أنها بداية فقط لمن يريد البداية ثم عليك بالكتب الإنجليزية
              و لكنى فى يوما ما سأكملها إن شاء الله

              http://www.islamcg.com/blender/category/pythonarschool/

              تعليق


              • #8
                أشكركم جزيل الشكر على تفاعلكم معي وجزاكم الله خيرا

                أخي ملك الحرية لغة البايثون مهمة لمحرك الألعاب لمن يريد أن يجعل لعبته تحاكي الألعاب القوية لكنها غير ضرورية الآن انظر مثلا لأخونا فلاشي استطاع عمل لعبة كاملة من دون أن يستخدم الى بضع كلمات من البايثون ولو لم يستخدمها لم تؤثر الى في أشياء بسيطة أرجوا أن تكون المعلومة وصلت



                ول نعيد المجد العظيم لأمة * كانت منارا للعلوم قديما

                تعليق


                • #9
                  مشكور على هذا الدرس الأكثر من رائع ............................................................ في انتظار الجزء الثاني
                  BLENDER 3D
                  abo_walid

                  تعليق


                  • #10
                    دا كتاب راااائع لتعليم هذا لغة

                    http://www.kutub.info/library/open.php?cat=1&book=575

                    ودا موقع الرسمى

                    http://www.python.org/

                    كاتب لغة هولندى الجنسية

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

                    ذو العلم يشفي في النعيم بعقله ... و اخو الشقاوة في الجهالة ينعم

                    تعليق


                    • #11
                      مشكور اخى شجرة التوت دائما متألق
                      حلمى ان اكون مصمم العاب و3دى ناجح

                      ادعووووووووووووولى

                      عضو في نادي محبي البطاطا

                      تعليق


                      • #12
                        اخيرا قمت بالشرح على العموم شكرا على المجهود الرائع
                        ان واجهتك صعوبة في اتقان التصميم اصمد وحاول وان حاولت وفشلت فلا بأس اعد المحاولة وان لم تفلح
                        فحاول وان فلحت تكون نجحت وسر نجاحك هو اصرارك

                        تعليق


                        • #13
                          السلام عليكم ورحمه الله وبركاته
                          شكرا على الموضوع...انا اعرف لغه البايثون معرفه سطحيه
                          ... ماوصلت للغه البايثون ولكن يكفى انى عرفتها
                          شكراpop_issa على الموقع والكتاب
                          We GoT ReadY ThiS MontH..We Hv ReadY To FunZ
                          JusT NeeD
                          GuiteR FoR DancE ..La MalaguenA Is OnE. LetS ShooT GunZ
                          AnD NoW We RuN ..We ReadY To DonE . We Make U DesperadO It's AnS... It's UR ChancE

                          JusT Press KeY . AnD NoW Go PlaY .

                          ═════
                          ═════

                          تعليق

                          يعمل...
                          X