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

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

تعريف عن python وبعض المعلومات

تقليص
X
تقليص

  • تعريف عن python وبعض المعلومات

    سلام عليكم
    تعريف ماهي لغة برمجة python :
    بدون تعقيدات وبشكل مختصر هي لغة برمجة تفسيرية مفتوحة المصدر متعددت المنصات وهناك مفسرين الأن python2.7 وpython3.4...


    1- لغة تفسيرية تعني أن السكربت أو البرنامج المبرمج بلغة python عباره عن ملف نصي يوجد بداخلة كودات مكتوبة بلغة python ولهذا لا يمكن إخفاء الأكواد في python


    مثال برنامج لطباعة كلمت hello نقوم بإنشاء ملف نصي نكتب بداخله الكود في الأسفل ونحفظه مثلا بإسم my_programe.py ملاحظة ال py. في أخر الإسم إختياري لكن مهم حتى نميز أنه برنامج python وليتعرف عليه مدراء الملفات ك nemo thunar على أنه برنامج python
    كود:
    print "hello"
    لتشغيل هذا البرنامج نحتاج أن يكون مفسر python منصب على الجهاز ليفسر هذا الكود إلى لغة الحاسوب التي هي شيء كهذا 010101001... في لينكس يأتي python مدمج مع النظام حيث الكثير من البرامج في لينكس مبرمجة بلغة python أما في windows تحتاج أن تنزل المفسر من الموقع الرسمي ل python أما عن mac الصراحة لا أعلم إذا يأتي مدمج او لا ... وفي لينكس يجب أن نعطيه صلاحية التنفيذ لبرنامج python حتى يعمل عن طريق مثال :
    كود:
    sudo chmod u+ my_programe.py
    الأن لنجعل مفسر بايثون يفسر أي يشغل البرنامج الموجود فيه الكودات الذي نقول عنه الكود المصدري أي الملف النصي الذي بداخلة الأكواد نكتب في الطرفية :
    كود:
    python my_programe.py
    أو نستطيع أن نعرف البرنامج على الموقع الإفتراضي لمفسر python في نظام لينكس ويكفي أن نكتب في أول سطر في الكود المصدري الذي بداخلة الأكواد...
    كود:
    #!/usr/bin/env python
    الأن للتشغيل نكتفي بأن نكتب الكود في الأسفل طبعا بعد إعطائة صلاحيات التنفيذ لمرة واحد لا نحتاج أن نعطي هذا التصريح كل ما نريد أن نشغل البرنامج
    كود:
    ./my_programe.py
    ملاحظة لمفسر python3.4 نكتب python3 بدل python في الحالتين...


    2-متعدد المنصات تعني أن البرنامج يمكن أن يعمل في أكثر من نظام تشغيل ك windows linux mac وسمعت مرة عن مفسر خاص يعمل على android لكن لا أعلم مدى فعاليته ويمكن عمل موقع إنترنت عن طريق python وبعض ال framework ك bottle


    3-كما قلت يوجد إصدارين من python أنا عن نفسي أستعمل python2 لأن أغلب الكتب المترجمة للعربية أو الدروس مشروحة عن python2 ...أسمع أن python3 متطور أكثر لكن الإثنين يفو بالغرض ولا يختلف كتابت الكود كثيرا لكن طبعا البرنامج الذي كتب ل python2 لن يشتغل عن طريق python3 والعكس ...
    شرح بعض المصطلحات التي ستسمع بها أثناء قراءة كتب عن python


    المكتبة :
    المكتبة هي عبارة عن سكربت أو برنامج python (سمها ما شئت ) يحتوى على دوالي أو أدوات أو function بالإنجلزيه أيضا سمها ما شئت المهم هذه الدوالي تقوم بعمل معين أو أكثر من عمل هذه المكتبات تم كتابتها مسبقا لتساعدك في عملك حتى لا تكتب كل شىء من الصفر وهناك مكتبات قياسية تأتي مدمجة مع python ويمكن إضافت مكتبات أخرى كتبها أشخاص أخرون
    مثال مكتبة قياسية تأتي مدمجة مع python :
    أولا إستدعاء المكتبة :
    كود:
    import random
    ثانيا إستدعاء دالة أو أداة من هذا البرنامج أو المكتبة في هذة الحالة معنا قمت بإستدعاء دالة من المكتبة تقوم بتوليد رقم عشوائي بين 0 و1 وحفظ النتيجة بمتغيرmotaghayer:
    كود:
    motaghayer=random.random()
    ثالثا طباعة النتيجة
    كود:
    print motaghayer
    random إسم المكتبة random() إسم الدالة أو الأداة يقال له دالة لكن لأوصل الفكرة أكثر أستعمل مصطلح أداة ملاحظة ليس شرط أن تكون الدالة نفس الإسم المكتبة ...
    يمكن التحديد أكثر بإستدعاء دالة واحدة أو أكثر من المكتبة عن طريق مثلا
    كود:
    from random import random,randrange
    في هذة الحالة يكفي أن نكتب
    كود:
    random()
    وrandrange دالة لتوليد رقم عشواثي بين رقمين نحددهم نحن
    مثال سيولد رقم بين 0 , 10
    كود:
    randrange(0,10)
    ويمكن إستدعاء جميع الدوال من المكتبة عن طريق
    كود:
    from random import *



    أما عن المكتبات الغير قياسية سأخذ مثل عن مكتبة كتبتها أنا لتلوين الأسطر والأحرف والكلمت وعرضها تشبه print وهي تطوير ل print حيث في المصادر المفتوحة لست بحاجة لتكتب كل شيء من الصفر هذا السكربت يقوم بتلوين الكلمات وهناك أشياء متقدمة أكثر كالتلوين العشوائي للكلمات و الأحرف و...
    أولا قوم بتنزيل هذا السكربت رابطtalwin.py

    هناك طريقتين لنستفيد من هذا السكربت أولا نقوم بوضع هذا السكربت إلى جانب برنامجنا يعني في ذات المجلد و نستدعي دالت ال التلوين عن طريق
    كود:
    import talwin
    ثم
    كود:
    talwin.talwin("hello","red")
    أو
    كود:
     from talwin import talwin
    ثم
    كود:
    talwin("hello","red")
    الطريقة الثانية هي وضع سكربت talwin.py في مجلد python الأساسي عن طريق
    كود:
    sudo  cp  $HOME/talwin.py  /lib/python2.7/site-packages
    ملاحظة أفترض أن سكربت talwin.py كان في مجلد ال home
    ل python3
    كود:
    sudo  cp  $HOME/talwin.py   /lib/python3.4/site-packages
    والأن يكفي إستدعاء هذة المكتبة ليس ضروري أن يكون السكربت بجانب البرنامج لكن عند نقل البرنامج إلى جهاز أخر تحتاج أن يكون السكربت إلى جانب البرنامج في ذات المجلد أو أن تقوم بنقله أيضا إلى مجلد python الأساسي
    هذا السكربت يعمل عل الإصدارين لأنه بسيط ولا يوجد بداخله كودات تختلف كتابتها من إصدار لأخر كما قلت سابقا طريقة كتابة الكودات في الإصدارين لا تختلف كثيرا ثانيا ملاحظة السكربت الذي نستدعيه ولا نشغله مباشره لا نحتاج أن نكتب بداخلة كما في الأسفل لكن لا يضر
    كود:
    #!/usr/bin/env python
    لأنه سكربت مساعد وليس البرنامج الأساسي




    هناك ألاف المكتبات الغير قياسية قام ببرمجتها مجتمع لينكس وpython لكل المجالات والأمور يكفي أن تبحث في google عن أي مجال تريد مثلا هناك مكتبة scapy للشبكات والبروتكولات تستعمل هذة المكتبة أيضا لصنع برامج إختراق وهناك مكتبات للرسم 2D 3D وللألعاب ولكل المجالات مكتبات لا تعد وكل يوم يوجد شيء جديد... أنت بعد أن تتمكن من فهم اللغة بشكل عام وبشكل جيد تذهب تتخصص بأشياء معينه لأن لا يمكن أن تتقن كل شيء... أوتقوم بتعلم ما تحتاجه تباعا و هناك مكتبات لصنع برامج رسومية من خلال بعض المكتبات أشهرها pyside pyQT pyGTK wxpython tkinter لكن أولا نتمكن من اللغة جيدا ثم ننتقل إلى الوجهات الرسومية


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

    الموضوع الأساسي كتب هنا http://vb.2linux.org/index.php?threa...81-python.156/

    • OtmanGX
      #1
      OtmanGX تم التعليق
      تعديل التعليق
      شكرا لك أخي الكريم شرح واضح
      لدي ملاحظة بسيطة :
      أمر الطباعة على الشاشه الذي ذكرته print طريقة كتابته تتوافق مع python2 فقط وليس مع python3.4 الذي أصبح إجباريا وضع النص المراد طباعته بين قوسين مباشرة بعد print بدون فراغ

    • yucef
      #2
      yucef تم التعليق
      تعديل التعليق
      كلامك صحيح شكرا لك و يمكن أيضا إستخدام دالة ()print في python2.7 عن طريق from __future__ import print_function على أن يكون أول ما يتم إستدعائه عن طريق import هو هذا السطر طبعا أظن أنك تعلم هذا الأمر لكن الذي يقرا قد لا يعلم تحياتي لك
    لا يمكن إضافة تعليقات.

التصانيف

تقليص

Latest Articles

تقليص

  • تجربة تثبيت توزيعة ديبيان بجانب ويندوز بدون usb او cd
    أحمد غريب
    التجربة تمت على VirtualBox النظام ويندوز اكسبي قرص صلب واحد قسمين c و d

    التجربة قسمين القسم الاول تجهيز ملف iso دبيان لعملية الاقلاع لايف من الهاردسك والقسم الثاني عملية الثتبيت تحتاج الى
    27-11-2016, 03:08 PM
  • عداد الإستغفار
    مبتدى في للينكس
    السلام عليكم ورحمة الله و بركاته

    شرح فكرة السكربت:

    عداد الأستغفار يعمل عند الضغط على أختصار من الكيبورد و عند كل ضغطة يضيف 1 إلى العداد و يظهر إطار صغير في منتصف الشاشة لعرض العدد لمدة ثانية ثم يتم أغلاقه تلقائياً . أذا وصل العداد إلى 100 يرجع إلى الصفر. يتم حفظ العدد في ملف count.txt يتم إنشاءه تلقائياً بواسطة السكربت.


    شرح إعداد السكربت:

    1. قم بفتح مجلد Home وقم بإنشاء مجلد بإسم counter

    2. في داخل المجلد counter قم بإنشاء ملف نصي بإسم Counter.java , ثم قم بنسخ السكربت التالية و ضعه في داخل الملف ثم قم بالحفظ



    :
    package counter; import java.awt.BorderLayout; import java.awt.Event; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import java.io.PrintWriter; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JButton; import javax.swing.SwingConstants; public class Counter extends JFrame { private static String fileName = System.getProperty("user.dir") + "/counter/count.txt"; public Counter() { this.setTitle("Counter"); this.setResizable(false); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.pack(); this.setSize(150, 150); this.setVisible(true); } public static void main(String[] args) { Counter obj = new Counter(); int count = 0; try { try { try { String countString = readFile(fileName, StandardCharsets.UTF_8).trim(); count = (int) Integer.parseInt(countString); } catch (Exception e) { outResult(fileName, String.valueOf(count)); } finally { if (count
    ...
    23-11-2016, 02:11 AM
  • سكربت بايثون لتسهيل تثبيت بعض الأشياء في فيدورا
    yucef
    بسم الله الرحمن الرحيم
    السلام عليكم ورحمة الله وبركاته




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

    https://github.com/yucefsourani/arfedy

    ...
    23-11-2016, 02:09 AM
  • إعادة تسمية الملفات باستخدام rename
    OtmanGX
    لينكس على السّريع : إعادة تسمية الملفات باستخدام rename


    تذكير بالموضوع السابق : إعادة تسمية الملفات باستخدام mv

    كما في المرة السابقة سنتحدث اليوم عن إعادة تسمية مجموعة من الملفات لكن باستخدام أداة أخرى وهي rename ؛ بحيث أنّنا لن نضطر لاستعمال حلقات التكرار والأمر مشابه نوعا ما لما يقوم به الأمرsed ، لكن الأداة rename تستخدم التعابير النظامية perlexpr لكننا سنذكر فقط التعابير النظامية المشتركة بين الاثنين .
    بعض خصائص الأمر :
    n, –no-act- : يوصى باستخدام هذه الخاصية كثيرا ، فمن خلالها يتم إظهار التغييرات التي ستتم بدون إجراء أي تعديل
    f, –force : الكتابة على الملفات بدون أدنى تحذير
    v, –verbose – : تفعيل وضع verbose ليتم إظهار التغييرات الجارية
    ويكون الشكل العام للأمر كالتالي :

    :
    rename [option] 's/old-name/new-name/' file
    باستبدال file بالملفات التي تود تغيير أسمائها
    كمثال أوّلي مثلا نريد استبدال المسافات الفارغة المتواجدة في أسماء الملفات أو المجلدات بالرمز _ :

    المثال 1 :
    :
    rename 's/ /_/g' *
    g ليتم الاستبدال في أكثر من موضع إن وجد
    الآن سنقوم كالعادة بإنشاء مجلد نقوم فيه بأمثلتنا
    ...
    23-11-2016, 02:05 AM
  • المراقبة العالمية ! Global surveillance
    عبدالرحمـن محمد
    السلام عليكم ورحمة الله

    مقدمة :
    في يونيو 2013، سرَّب إدوارد سنودين، وهو عميل متعاقد مع وكالة الأمن القومي، مستندات تّصِف بريسم "ومجموعة برامج أخري" بأنه برنامج يتيح مراقبة معمقة للاتصالات الحية والمعلومات المخزنة. ويمكن من استهداف أي عميل لشركة منخرطة في برنامج بريسم، في حال كان هذا العميل يسكن خارج الولايات المتحدة، أو كان مواطنًا أمريكيًا له اتصالات تتضمن محتويات وِب خاصة بأشخاص خارج الولايات المتحدة. البيانات التي يقال أن بريسم يمكِّن من الحصول عليها تتضمن، رسائل البريد الإلكتروني، ومحادثات الفيديو والصوت، والصور، والاتصالات الصوتية ببرتوكول الإنترنت، وعمليات نقل الملفات، وإخطارات الولوج وتفاصيل الشبكات الاجتماعية.
    كشفت الوثائق المسرّبة أن NSA كانت قادرة على الدخول مباشرة إلى الخوادم الخاصة لكل من
    ...
    23-11-2016, 02:04 AM
  • اضافة مستخدم لينيكس جديد و استعمال نفس اسم الحساب لMySQL و قاعدة بيانات بإسمه ايضًا.
    superlinux
    طبعًا هذه استعملها لفتح حساب جديد لشخص يريد ان يستعمل مجلده المنزل (او home directory بالانجليزي) لحفظ موقع الويب خاصته. يعني هذه طريقة ارجو تكون خفيفة ظريفة لإدارة الخادم عليكم. و هكذا ابدؤوا بيع المواقع عالسريع.

    انا استعمل دبيان 8.0 جسي هنا.

    قبل أي شيء, لتوظيف المجلدات المنزل كلها لتكون محافظ لصفحات ويب لكل مستخدم. نفعّل الوحدة userdir:
    كود:
    a2enmod userdir
    بس على شان تفهم كيف تحفظ الامر السابق: a2 = apache2 web server , enmod =enable module
    هناك الكثير من الاوامر تخص خادم الويب اباتشي تبدأ بــ a2 .

    ثم حرر بأي محرر نصي مثل vi او pico ملف اعدادات الاباتشي:

    كود:
    vi /etc/apache2/apache2.conf
    ضع في آخر سطر في الملف على سطر مستقل لوحده ما يلي:
    كود:
    UserDir public
    UserDir disable root
    الكلمة public_html هو اسم مجلد موجود في المجلد المنزل مباشرة. بمعنى لو كان عندك اسم مستخدم اسمه saleem (سليم) , لازم سليم يضع موقعه على الخادم داخل مسار القرص /home/saleem/public_html/ . و التعل...
    23-11-2016, 02:03 AM
يعمل...
X