top of page
Post: Blog2_Post

(python)لغة البرمجة بيثون

  • Writer: Maan Bayya
    Maan Bayya
  • Dec 28, 2018
  • 4 min read

https://www.python.org/


* ما هي لغة البرمجة (بيثون)

لغة البرمجة المعروفة (بيثون) , هي لغة برمجة محمولة , و تتمتع لغة البرمجة هذه في كونها لغة برمجة حيوية و ديناميكية و مجانية , و هي تسمح في اتباع نهج الوحدات , و نهج البرمجة الشيئية (OOP) ,

و قد تم تطوير لغة البرمجة (بيثون) سنة 1989 , على يد (غيدو فان) , و مشاركة عدد كبير من المطورين المتطوعين و المساهمين .


* ميزات لغة البرمجة (بيثون)

1 - لغة (بيثون) هي لغة برمجة محمولة , ليس فقط على مختلف أنظمة (يونكس) , و لكن حتى على أنظمة التشغيل (ماك) , و NexTStep , BeOS , Ms-DOS , و جميع إصدارات ويندوز , و يوجد هناك مترجم جديد إلى هذه اللغة البرمجية يسمى (JPython) , و قد تم كتابة هذا المترجم في لغة البرمجة (جافا) , و هو يقوم على إنشاء كود بايت في لغة جافا .

2 - لغة برمجة (بيثون) لغة برمجة مجانية , و يمكن استخدام هذه اللغة في المشاريع التجارية دون قيود .

3 - لغة برمجة (بيثون) مناسبة لعمل سكريبت مكون من 10 أسطر , و خاصة في المشاريع المعقدة , و التي تحتوى على عشرات الآلاف من الأسطر .

4 - طريقة تكوين جملة لغة (بيثون) بسيط جدا , و هذه الغة تعمل على تطوير برامج في سرعة تقاس ما بين 5 - 10 مرات , من لغة C++ , Java , و هذه اللغة سهلة جدا في الصيانة .

5 - لغة (بيثون) تدعم البرمجة الشيئية , و هي ايضا تدعم الوراثة المتعددة و مشغلات الحمولة الزائدة , و نماذج الكائنات , و تدعم لغة جافا , C++ .

6 - لغة البرمجة (بيثون) هي لغة موسعة مثل Tcl , Guile , و يمكن التعامل في سهولة مطلقة مع مكتبات لغة C , و يمكن استخدام مثل لغة موسعة إلى أنظمة برامج تمديد معقدة جدا .

7 - مكتبة (بيثون) القياسية و حزم التشارك و المساهمة , توفر لك الوصول إلى مجموعة واسعة من الخدمات , مثل السلاسل النصية , و التعابير العادية , و التعابير المعقدة , و نظام تصحيح التعابير , و معايير خدمات (يونكس) , و الملفات , sockets , و الخيوط , و بروتوكلات الإنترنت , FTP , CGI , HTML ,

و قواعد البيانات , و واجهات المستخدم الرسومية .

8 - لغة (بيثون) ما تزال في تطور مستمر و سريع جدا , و ذلك في فضل مجتمع المستخدمين و المطورين , و معظم هؤلاء المستخدمين و المطورين من أنصار البرمجيات الحرة , و البرمجيات مفتوحة المصدر , و في التوازي مع المفسر الرئيسي في لغة برمجة (بيثون) , و هو مكتوب في لغة C , و التي تم صناع (بيثون) منها , و يوجد هناك مفسر ثاني مكتوب في لغة Java , و هو حاليا في مرحلة التطوير .

9 - لغة (بيثون) هي اللغة المختارة في معالجة XML .



* الاتصال عبر الشبكة و خاصية التعدد - Multithreading

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

و نحن نفترض أنك تتعاون مع أشخاص آخرين , و محطة العمل الخاصة بك متصلة في شبكة محلية , من خلال استخدام بروتوكول TCP/IP , هنا لا يكون نظام التشغيل مهم لدينا , على سبيل المثال , يمكن تثبيت سكريبت (بيثون) على محطة تعمل على نظام تشغيل (لينكس) , و التواصل مع سكريبت آخر على محطة آخرى , و يعمل في نظام تشغيل مثل (ماك) أو (ويندوز) , كما يمكن وضع أكثر من سكريبت على محطة واحدة او جهاز واحد , و لكن في نوافذ منفصلة .

- مثال

ربط جهازين , الجاهز الاول يقوم في دور الخادم , و الجهاز الآخر يقوم في دور العميل .

برنامج الخادم يعمل في شكل مستمر على جهاز معروف الهوية على الشبكة , من خلال عنوان IP , و هو ينتظر وصول الطلبات المرسلة له من قبل العملاء , من خلال خاصية منفذ الاتصال المحدد , من أجل هذه الخطوة يجب على سكريبت ان ينفذ كائن برمجي مرتبط في هذا المنفذ , و الذي يسمى socket .

و من خلال البرنامج الآخر , برنامج العميل و الذي يحاول الاتصال عن طريق طلب مناسب , و هذا الطلب يكون من خلال رسالة ترسل إلى الشبكة , و الذي يجب أن يحتوى الطلب على عنوان IP محدد , و منفذ اتصال إلى المتلقي .

- كود برنامج الخادم

1# import socket, sys

2# HOST = '192.168.1.168'

3# PORT = 50000

4# counter =0

5# mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

6# try:

7# mySocket.bind((HOST, PORT))

8# except socket.error:

9# print("The connection socket to the chosen address failed.")

10# sys.exit

11# while 1:

12# print("Server ready, awaiting requests ...")

13# mySocket.listen(2)

14# connexion, adresse = mySocket.accept()

15# counter +=1

16# print("Client connecté, adresse IP %s, port %s" % (adresse[0], adresse[1]))

17# connexion, adresse = mySocket.accept()

18# counter +=1

19# print("Client connecté, adresse IP %s, port %s" % (adresse[0], adresse[1]))

20# msgServeur ="Vous êtes connecté au serveur Marcel. Envoyez vos messages."

21# connexion.send(msgServeur.encode("Utf8"))

22# msgClient = connexion.recv(1024).decode("Utf8")

23# while 1:

24# print("C>", msgClient)

25# if msgClient.upper() == "FIN" or msgClient =="":

26# break

27# msgServeur = input("S> ")

28# connexion.send(msgServeur.encode("Utf8"))

29# msgClient = connexion.recv(1024).decode("Utf8")

30# connexion.send("fin".encode("Utf8"))

31# print("Connexion interrompue.")

32# connexion.close()

33#

34# ch = input("<R>ecommencer <T>erminer ? ")

35# if ch.upper() =='T':

36# break

*******

- كود برنامج العميل

1# import socket, sys

2# HOST = '192.168.1.168'

3# PORT = 50000

4# mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

5# try:

6# mySocket.connect((HOST, PORT))

7# except socket.error:

8# print("Failed connection.")

9# sys.exit()

10# print("Connection established with the server.")

11# msgServeur = mySocket.recv(1024).decode("Utf8")

12#

13# while 1:

14# if msgServeur.upper() == "FIN" or msgServeur =="":

15# break

16# print("S>", msgServeur)

17# msgClient = input("C> ")

18# mySocket.send(msgClient.encode("Utf8"))

19# msgServeur = mySocket.recv(1024).decode("Utf8")

20# print("Connexion interrompue.")

21# mySocket.close()

___________________________


* تطبيق ويب , هيكل موقع الكتروني فرنسي متعدد الصفحات

1# import cherrypy

2#

3# class HomePage(object):

4# def __init__(self):

5# self.maxime = MaximeDuJour()

6# self.liens = PageDeLiens()

7# def index(self):

8# return '''

9# <h3>Site des adorateurs du Python royal - Page d'accueil.</h3>

10# <p>Veuillez visiter nos rubriques géniales :</p>

11# <ul>

12# <li><a href="/entreNous">Restons entre nous</a></li>

13# <li><a href="/maxime/">Une maxime subtile</a></li>

14# <li><a href="/liens/utiles">Des liens utiles</a></li>

15# </ul>

16# '''

17# index.exposed = True

18#

19# def entreNous(self):

20# return '''

21# Cette page est produite à la racine du site.<br />

22# [<a href="/">Retour</a>]

23# '''

24# entreNous.exposed =True

25#

26# class MaximeDuJour(object):

27# def index(self):

28# return '''

29# <h3>Il existe 10 sortes de gens : ceux qui comprennent

30# le binaire, et les autres !</h3>

31# <p>[<a href="../">Retour</a>]</p>

32# '''

33# index.exposed = True

34#

35# class PageDeLiens(object):

36# def __init__(self):

37# self.extra = LiensSupplementaires()

38# def index(self):

39# return '''

40# <p>Page racine des liens (sans utilité réelle).</p>

41# <p>En fait, les liens <a href="utiles">sont plutôt ici</a></p>

42# '''

43# index.exposed = True

44#

45# def utiles(self):

46# # on peut procéder de manière ABSOLUE ou RELATIVE.

47# return '''

48# <p>Quelques liens utiles :</p>

49# <ul>

50# <li><a href="http://www.cherrypy.org">Site de CherryPy</a></li>

51# <li><a href="http://www.python.org">Site de Python</a></li>

52# </ul>

52# <p>D'autres liens utiles vous sont proposés

53# <a href="./extra/"> ici </a>.</p>

54# <p>[<a href="../">Retour</a>]</p>

55# '''

56# utiles.exposed = True

57#

58# class LiensSupplementaires(object):

59# def index(self):

60# return '''

61# <p>Encore quelques autres liens utiles :</p>

62# <ul>

63# <li><a href="http://pythomium.net">Le site de l'auteur</a></li>

64# <li><a href="http://ubuntu-fr.org">Ubuntu : le must</a></li>

65# </ul>

66# <p>[<a href="../">Retour à la page racine des liens</a>]</p>

67# '''

68# index.exposed = True

69# racine = HomePage()

70# cherrypy.quickstart(racine, config ="tutoriel.conf")


***********************

 

 
 
 

Comments


Subscribe Form

Thanks for submitting!

00962786420324

  • Facebook
  • Twitter
  • LinkedIn

©2018 by Maan Bayya Educational Website. Proudly created with Wix.com

bottom of page