SlideShare une entreprise Scribd logo
1  sur  44
Télécharger pour lire hors ligne
‫ﻣﻮﻗﻊ‬ ‫ﻣﻦ‬ ‫اﻟﻤﻠﻒ‬ ‫ﺗﺤﻤﻴﻞ‬ ‫ﺗﻢ‬
‫اﻟﺘﻘﻨﻴﺔ‬ ‫اﻟﺒﻮﺻﻠﺔ‬
www.boosla.com
‫سهولة‬ ‫بكل‬ ‫بايثون‬ ‫تعلم‬
:‫بقلم‬
‫السعيدي‬ ‫عامر‬ ‫بن‬ ‫فهد‬
OMLX
2005
1
‫مقدمة‬
‫التركيب‬ ‫حيث‬ ‫ومن‬ ‫القراءة‬ ‫و‬ ‫الكتابة‬ ‫حيث‬ ‫من‬ ‫بالسهولة‬ ‫تتميز‬ ‫بايثون‬ ‫لغة‬
‫فهي‬ ،‫اﻵن‬ ‫المعروفة‬ ‫المنصات‬ ‫كل‬ ‫في‬ ‫بها‬ ‫تبرمج‬ ‫أن‬ ‫تستطيع‬ ‫و‬ ،‫لها‬ ‫النحوي‬
‫لغة‬ ‫تضارع‬
Java
.‫تقريبا‬ ‫اﻷغراض‬ ‫لكل‬ ‫تصلح‬ ‫و‬ ،‫العريقة‬
‫علي‬ ‫يممن‬ ‫أن‬ ‫ال‬ ‫أسمأل‬ ‫التمي‬ ،‫القليلة‬ ‫الورقات‬ ‫هذه‬ ‫كتابمة‬ ‫على‬ ‫شجعنمي‬ ‫ولقمد‬
‫اللغمة‬ ‫هذه‬ ‫وكأن‬ ،‫اللغمة‬ ‫هذه‬ ‫عمن‬ ‫تتكلم‬ ‫التمي‬ ‫العربيمة‬ ‫المصمادر‬ ‫قلة‬ ‫بإتمامهما‬
.‫الورقات‬ ‫هذه‬ ‫كتابة‬ ‫عناء‬ ‫فتجشمت‬ ،‫التقنية‬ ‫عالم‬ ‫في‬ ‫موجودة‬ ‫ليست‬
:‫الكتاب‬ ‫حول‬ ‫ملحظات‬
‫لرخصة‬ ‫خاضع‬ )‫(حر‬ ‫مفتوح‬ ‫الكتاب‬ ‫هذا‬
GNU FDL
‫(أي‬
GNU Free
Documentation License
ً‫مخالفا‬ ‫يعد‬ ‫ل‬ ‫الكتاب‬ ‫هذا‬ ‫من‬ ‫القتباس‬ ‫أو‬ ‫تصوير‬ ‫أو‬ ‫نسخ‬ )
‫فإنه‬ )... ‫الشبكة‬ ‫من‬ ‫تنزيل‬ ‫أو‬ ‫استعارة‬ ‫أو‬ ‫هدية‬ ‫أو‬ ‫(شراء‬ ‫طريقه‬ ‫بأي‬ ‫عليه‬ ‫حصلت‬ ‫إذا‬ ‫للقانون‬
‫مشتق‬ ‫منتج‬ ‫عمل‬ ‫في‬ ‫استخدمته‬ ‫إذا‬ ‫ولكن‬ .ً‫مجانا‬ ‫تنزيله‬ ‫ويمكنك‬ ، ‫فيه‬ ‫والتعديل‬ ‫نسخه‬ ‫لك‬ ‫يحق‬
‫لرخصة‬ ً‫خاضعا‬ ‫يصبح‬ ‫فإنه‬
FDL
‫وعليك‬ ‫العمل‬ ‫بهذا‬ ‫قام‬ ‫من‬ ‫بأنك‬ ‫الدعاء‬ ‫يمكنك‬ ‫ل‬ ‫كما‬
‫لسنا‬ ‫لمحتوياته‬ ‫ضمان‬ ‫أو‬ ‫كفالة‬ ‫أي‬ ‫دون‬ ‫من‬ ‫هو‬ ‫كما‬ ‫الكتاب‬ ‫هذا‬ ‫يقدم‬ ‫الصلي‬ ‫لمؤلفه‬ ‫الشارة‬
‫على‬ ‫أو‬ ‫جهازك‬ ‫على‬ ‫و‬ ‫عليك‬ ‫يقع‬ )‫ضمني‬ ‫ول‬ ‫مباشر‬ ‫بشكل‬ ‫(ل‬ ‫سلبي‬ ‫أثر‬ ‫أي‬ ‫عن‬ ‫مسؤولين‬
.‫قطتك‬
‫أرابيان‬ ‫منصة‬ ‫على‬ ‫الكتاب‬ ‫هذا‬ ‫كتب‬
0.6
‫برنامج‬ ‫باستخدام‬
OpenOffice.org 2.0
‫لذا‬
‫المنصة‬ ‫في‬ ‫عليه‬ ‫تعدل‬ ‫أن‬ ‫فحاول‬ ،‫التنسيق‬ ‫يذهب‬ ‫فلربما‬ ‫الويندوز‬ ‫منصة‬ ‫على‬ ‫فتحه‬ ‫حاولت‬ ‫إذا‬
.‫جديد‬ ‫من‬ ‫الجهد‬ ‫إعادة‬ ‫لتجنب‬ ‫فيها‬ ‫إنشأ‬ ‫التي‬
‫العمل‬ ‫يتم‬ ‫حتى‬ ،‫لكماله‬ ‫الحماس‬ ‫عندهم‬ ‫أناس‬ ‫يجد‬ ‫أن‬ ‫المؤلف‬ ‫ويسعد‬ ،‫ناقص‬ ‫الكتاب‬ ‫هذا‬
،‫جيدة‬ ‫بصورة‬
‫الكتاب‬ ‫عن‬ ‫معلومات‬
:
‫السعيدي‬ ‫عامر‬ ‫بن‬ ‫فهد‬ :‫تأليف‬
‫الكتروني‬ ‫بريد‬
fahad.alsaidi@gmail.com
‫ب‬.‫ص‬
370
‫عمان‬ ‫سلطنة‬ -‫الخابورة‬
‫البريدي‬ ‫الرمز‬
326
‫رخصة‬ ‫وفق‬ ‫محفوظة‬ ‫الطبع‬ ‫حقوق‬
FDL
Copyright (c) 2005 under terms of FDL license
2
‫اﻷولى‬ ‫الوحدة‬
:
‫أساسيات‬
Python
‫اﻷول‬ ‫الفصل‬
:
‫البداية‬
‫الثاني‬ ‫الفصل‬
:
‫العمليات‬ ‫و‬ ‫اﻷنواع‬
‫الثالث‬ ‫الفصل‬
:
‫اﻷساسية‬ ‫التعابير‬
‫الثالث‬ ‫الفصل‬
:
‫الوظائف‬
‫الرابع‬ ‫الفصل‬
:
‫الوحدات‬
‫الخامس‬ ‫الفصل‬
:
‫الصفوف‬
‫السادس‬ ‫الفصل‬
:
‫الستثناءات‬
3
‫اﻷول‬ ‫الفصل‬
:
‫البداية‬
:‫المهمة‬ ‫النقاط‬
‫لغة‬ ‫لماذا‬
Python
‫؟‬
‫برنامج‬ ‫تشغل‬ ‫كيف‬
‫بلغة‬ ‫مكتوب‬
Python
‫؟‬
‫بـ‬ ‫الخاصة‬ ‫التطوير‬ ‫بيئات‬ ‫معرفة‬
Python
‫نتعلم‬ ‫لماذا‬ ‫و‬ ‫بايثون؟‬ ‫لغة‬ ‫نشأة‬ ‫كيف‬ ‫لنعرف‬ ،‫بايثون‬ ‫لغة‬ ‫رحاب‬ ‫في‬ ‫سويا‬ ‫سنمضي‬ ‫الفصل‬ ‫هذا‬ ‫في‬
‫في‬ ‫يبدأ‬ ‫أن‬ ‫يريد‬ ‫لمن‬ ‫ضرورية‬ ‫اﻷسئلة‬ ‫هذه‬ ‫كل‬ ‫بايثون؟‬ ‫لغة‬ ‫لها‬ ‫تصلح‬ ‫التي‬ ‫مجالت‬ ‫ما‬ ‫و‬ ‫بايثون؟‬ ‫لغة‬
... ‫سريعا‬ ‫فلننتقل‬ ، ! ‫لغة‬ ‫أي‬ ‫تعلم‬
‫لغة‬ ‫لماذا‬
Python
‫؟‬
‫عام‬ ‫في‬
١٩٩٠
‫قام‬ ‫م‬
Guido van Rossum
‫اللغة‬ ‫هذه‬ ‫استقى‬ ‫وقد‬ ،‫بايثون‬ ‫لغة‬ ‫باختراع‬
:‫أمثال‬ ‫من‬ ‫سابقة‬ ‫لغات‬ ‫عدة‬ ‫من‬
C
++ ‫و‬
C
‫و‬
Modula-3
‫و‬
ABC
‫و‬
Icon
.
‫ممن‬ ‫وهمي‬ ،‫بهما‬ ‫المكتوب‬ ‫البرناممج‬ ‫لتشغيمل‬ ‫بناء‬ ‫إلى‬ ‫تحتاج‬ ‫ل‬ ‫التمي‬ ‫النصمية‬ ‫اللغات‬ ‫ممن‬ ‫بايثون‬ ‫وتعتمبر‬
‫اللغات‬ ‫منف‬‫م‬‫ص‬ ‫مي‬‫م‬‫ف‬ ‫اﻷول‬ ‫الخيار‬ ‫تكون‬ ‫أن‬ ‫ما‬‫م‬‫أهله‬ ‫ما‬‫م‬‫مم‬ ‫مارم‬‫م‬‫ص‬ ‫مل‬‫م‬‫بشك‬ ‫مة‬‫م‬‫المنظم‬ ‫و‬ ‫مهلة‬‫م‬‫الس‬ ‫اللغات‬
‫كمل‬ ‫فائدة‬ ‫نمبين‬ ‫و‬ ‫جدول‬ ‫فمي‬ ‫بايثون‬ ‫لغمة‬ ‫مميزات‬ ‫وسمنلخص‬ ،‫الجامعات‬ ‫فمي‬ ‫تعتممد‬ ‫التمي‬ ‫اﻷكاديميمة‬
.. ‫مميزة‬
‫المميزات‬
‫الفوائد‬
‫السي‬ ‫لغة‬ ‫مثل‬ ‫ربط‬ ‫أو‬ ‫بناء‬ ‫إلى‬ ‫تحتاج‬ ‫ل‬
‫ملحوظ‬ ‫بشكل‬ ‫فيها‬ ‫التطوير‬ ‫دورة‬ ‫تسريع‬
‫المتغيرات‬ ‫أنواع‬ ‫على‬ ‫تحتوي‬ ‫ل‬
‫مرونة‬ ‫أكثر‬ ‫و‬ ‫أبسط‬ ‫و‬ ‫أسهل‬ ‫تصبح‬ ‫البرامج‬
‫للذاكرة‬ ‫آلية‬ ‫إدارة‬
‫الكود‬ ‫تنقيح‬ ‫في‬ ‫الجهد‬ ‫يجنبك‬ ‫النفايات‬ ‫مجمع‬
‫التوجه‬ ‫غرضية‬ ‫برمجة‬
++ ‫مع‬ ‫التكامل‬ ‫يمنحك‬
C
‫و‬
Java
‫و‬
COM
‫السي‬ ‫لغة‬ ‫مع‬ ‫التمدد‬ ‫و‬ ‫التضمين‬ ‫إمكانية‬
‫النظام‬ ‫مع‬ ‫التحاور‬ ‫إمكانية‬ ‫و‬ ‫اﻷداء‬ ‫تحسين‬
‫التصميم‬ ‫و‬ ‫الكتابة‬ ‫قواعد‬ ‫في‬ ‫الوضوح‬ ‫و‬ ‫البساطة‬
‫و‬ ‫الصيانة‬ ‫إمكانية‬ ‫و‬ ‫المقروئية‬ ‫من‬ ‫عالية‬ ‫درجة‬
‫التعليم‬ ‫سهولة‬
‫عالية‬ ‫محمولية‬
‫و‬ ‫اللينكس‬ ‫و‬ ‫الويندوز‬ :‫منصات‬ ‫عدة‬ ‫على‬ ‫تعمل‬
‫الكود‬ ‫تغيير‬ ‫بدون‬ ‫اليونكس‬ ‫و‬ ‫الماكنتوش‬
‫المصدر‬ ‫مفتوحة‬
‫ضامن‬ ‫و‬ ‫فيها‬ ‫التعديل‬ ‫و‬ ‫توزيعها‬ ‫في‬ ‫الحرية‬ ‫تعطيك‬
‫لبقائها‬
4
‫المميزات‬
‫الفوائد‬
‫المستوى‬ ‫عالية‬ ‫العمليات‬ ‫و‬ ‫البيانات‬ ‫أنواع‬ ‫دعم‬
‫المدمجة‬ ‫الكائنات‬ ‫أنواع‬ ‫باستخدام‬ ‫سريع‬ ‫تطوير‬
‫السي‬ ‫لوحدات‬ ‫ألي‬ ‫تحميل‬
‫التنفيذية‬ ‫الملفات‬ ‫تصغير‬ ‫و‬ ‫مبسطة‬ ‫امتدادات‬
‫القياسية‬ ‫اﻹنترنت‬ ‫بروتوكولت‬ ‫دعم‬
‫و‬ ‫اللكتروني‬ ‫البريد‬ ‫إلى‬ ‫الوصول‬ ‫تسهيل‬
HTTP
..
‫ثالثة‬ ‫أطراف‬ ‫من‬ ‫و‬ ‫المضمنة‬ ‫المكتبات‬ ‫كثرة‬
‫البرامج‬ ‫تطوير‬ ‫تسهيل‬ ‫و‬ ‫تسريع‬
‫مما‬ ‫واحد‬ ‫آن‬ ‫في‬ ‫قوتها‬ ‫مع‬ ‫لها‬ ‫تعلمك‬ ‫أثناء‬ ‫ستلحظه‬ ‫ما‬ ‫وهذا‬ ، ‫التعلم‬ ‫سهلة‬ ‫أنها‬ ‫مميزاتها‬ ‫أهم‬ ‫و‬
:‫منها‬ ‫مجموعة‬ ‫وسنذكر‬ ،‫الشركات‬ ‫من‬ ‫لكثير‬ ‫اﻷمثل‬ ‫الخيار‬ ‫جعلها‬
–
Yahoo Maps
–
Yahoo Groups
–
Google
–
Ultraseek
–
Jasc Software, Paint Shop Pro
–
National Weather Service
–
NASA
–
Red Hat
–
SGI, Inc
–
IBM
–
Real Networks
‫؟‬ ‫بايثون‬ ‫لغة‬ ‫مجالت‬ ‫ما‬
‫في‬ ‫السهولة‬ ‫و‬ ‫التطوير‬ ‫سرعة‬ ‫تتطلب‬ ‫التي‬ ‫المجالت‬ ‫جميع‬ ‫خاضت‬ ‫بايثون‬ ،‫شديد‬ ‫باختصار‬
‫المجالت‬ ‫فمن‬ ،‫التطبيق‬ ‫سرعة‬ ‫إلى‬ ‫تحتاج‬ ‫التي‬ ‫المجالت‬ ‫في‬ ‫قليل‬ ‫تأخرت‬ ‫و‬ ،‫اﻷول‬ ‫المجال‬
:‫بايثون‬ ‫لغة‬ ‫فيها‬ ‫تتميز‬ ‫التي‬
–
‫مباشرة‬ ‫النظام‬ ‫مع‬ ‫تتعامل‬ ‫التي‬ ‫اﻷدوات‬ ‫مجال‬
–
‫اﻹنترنت‬ ‫برمجة‬ ‫مجال‬
–
‫الرسومية‬ ‫المستخدم‬ ‫واجهات‬ ‫برمجة‬ ‫مجال‬
–
‫البيانات‬ ‫قواعد‬ ‫برمجة‬ ‫مجال‬
–
‫الموزعة‬ ‫البرمجة‬ ‫مجال‬
5
‫بشكل‬ ‫المبرمج‬ ‫عمل‬ ‫تسهل‬ ‫كثيرة‬ ‫أدوات‬ ‫وجود‬ ‫لها‬ ‫سهّل‬ ‫مما‬ ،‫المجالت‬ ‫من‬ ‫الكثير‬ ‫وغيرها‬
:‫اﻷدوات‬ ‫هذه‬ ‫أشهر‬ ‫فمن‬ ،‫ملحظ‬
‫المجال‬
‫اﻷدوات‬
‫النظام‬ ‫برمجة‬
Sockets
‫و‬
threads
‫و‬
signals
‫و‬
pipes
‫و‬
RPC
calls
‫و‬
POSIX bindings
‫الرسومية‬ ‫المستخدم‬ ‫واجهات‬
Tk
‫و‬
PMW
‫و‬
MFC
‫و‬
X11
‫و‬
wxPython
‫و‬
KDE
‫و‬
Gnome
‫البيانات‬ ‫قواعد‬ ‫واجهات‬
Oracle
‫و‬
sybase
‫و‬
PostGres
‫و‬
mSQL
‫و‬
persistence
‫و‬
dbm
‫أدوات‬
Microsoft Windows
MFC
‫و‬
COM
‫و‬
ActiveX
‫و‬
ASP
‫و‬
ODBC
. ‫و‬
NET
‫النترنت‬ ‫أدوات‬
Jpython
‫و‬
CGI tools
‫و‬
HTML/XML parsers
‫و‬
email tools
‫و‬
Zope
‫الموزعة‬ ‫الكائنات‬
DCOM
‫و‬
CORBA
‫و‬
ILU
‫و‬
Fnorb
‫مشهورة‬ ‫أخرى‬ ‫أدوات‬
SWIG
‫و‬
PIL
‫و‬
regular expressions
‫و‬
numPy
‫و‬
cryptography
‫بلغة‬ ‫مكتوب‬ ‫برنامج‬ ‫تشغل‬ ‫كيف‬
Python
‫؟‬
‫و‬ ،‫البرنامج‬ ‫لتشغيل‬ ‫فقط‬ ‫اللغة‬ ‫مفسر‬ ‫لديك‬ ‫يكون‬ ‫أن‬ ‫عليك‬ ‫يتوجب‬ ‫فإنه‬ ، ‫نصية‬ ‫بايثون‬ ‫لغة‬ ‫أن‬ ‫بما‬
‫تعمل‬ ‫الذي‬ ‫النظام‬ ‫حسب‬ ‫المفسر‬ ‫نزل‬ ‫و‬ ، ‫بايثون‬ ‫لغة‬ ‫موقع‬ ‫إلى‬ ‫اذهب‬ ‫المفسر‬ ‫على‬ ‫للحصول‬
: ‫عليه‬
http://www.python.org
‫بلحقة‬ ‫الملف‬ ‫حفظ‬ ‫ثم‬ ‫نصوص‬ ‫محرر‬ ‫إلى‬ ‫ستحتاج‬ ‫بايثون‬ ‫برنامج‬ ‫لكتابة‬ ‫الحال‬ ‫بطبيعة‬
py
.
:‫اكتب‬ ‫و‬ ‫اﻷوامر‬ ‫سطر‬ ‫على‬ ‫ادخل‬ ‫ذلك‬ ‫بعد‬
6
‫النظام‬ ‫على‬ ‫مثبة‬ ‫افتراضيا‬ ‫فهي‬ ،‫اﻷساسية‬ ‫للغات‬ ‫من‬ ‫اللينكس‬ ‫نظام‬ ‫في‬ ‫بايثون‬ ‫لغة‬
‫أرابيان‬ ‫توزيعة‬ ‫على‬ ‫مبنية‬ ‫ستكون‬ ‫الدروس‬ ‫هذه‬ ‫أن‬ ‫وخاصة‬ ، ‫النظام‬ ‫هذا‬ ‫استخدام‬ ‫يفضل‬ ‫لذلك‬
‫الويندوز‬ ‫منصة‬ ‫على‬ ‫العمل‬ ‫من‬ ‫هذا‬ ‫يمنع‬ ‫ل‬ ‫لكن‬ ‫و‬
>> python program.py
‫بحيث‬
program
‫سطر‬ ‫في‬ ‫اكتب‬ ، ‫بايثون‬ ‫لغة‬ ‫محث‬ ‫مع‬ ‫مباشرة‬ ‫للتعامل‬ ‫و‬ ،‫الملف‬ ‫اسم‬
: ‫اﻷوامر‬
>> python
: ‫اكتب‬ ، ‫لك‬ ‫برنامج‬ ‫أول‬ ‫لكتابة‬ ‫و‬
>>> print ' My name is Fahad Al- Saidi'
.‫قوتها‬ ‫و‬ ‫بايثون‬ ‫سهولة‬ ‫مدى‬ ‫بنفسك‬ ‫ستعرف‬ ،‫بايثون‬ ‫بواسطة‬ ‫لك‬ ‫برنامج‬ ‫ﻷول‬ ‫كتابتك‬ ‫بعد‬
‫بـ‬ ‫الخاصة‬ ‫التطوير‬ ‫بيئات‬
Python
‫وهناك‬ ،‫الروتنية‬ ‫العمليات‬ ‫من‬ ‫الكثير‬ ‫أداء‬ ‫عليك‬ ‫تسهل‬ ‫تطوير‬ ‫بيئة‬ ‫امتلك‬ ‫في‬ ‫الوقت‬ ‫مع‬ ‫سترغب‬
‫تابع‬ ‫فقط‬ ، ‫رغباتك‬ ‫حسب‬ ‫تختار‬ ‫أن‬ ‫إل‬ ‫عليك‬ ‫ما‬ ، ‫بايثون‬ ‫بلغة‬ ‫الخاصة‬ ‫التطوير‬ ‫بيئات‬ ‫من‬ ‫الكثير‬
: ‫الرابطين‬ ‫هذين‬
http://wiki.python.org/moin/PythonEditors
http://wiki.python.org/moin/IntegratedDevelopmentEnvironments
‫تعلم‬ ‫في‬ ‫معنا‬ ‫مشوارك‬ ‫لتكمل‬ ‫عادي‬ ‫نصوص‬ ‫محرر‬ ‫مع‬ ‫بايثون‬ ‫لغة‬ ‫مفسر‬ ‫تملك‬ ‫أن‬ ‫يكفيك‬ ‫لكن‬ ‫و‬
‫بايثون‬ ‫لغة‬
7
‫الثاني‬ ‫الفصل‬
:
‫العمليات‬ ‫و‬ ‫اﻷنواع‬
:‫المهمة‬ ‫النقاط‬
‫بايثون‬ ‫برنامج‬ ‫بنية‬
‫المدمجة؟‬ ‫النواع‬ ‫نستخدم‬ ‫لماذا‬
‫العداد‬
‫النصية‬ ‫السلسل‬
‫القوائم‬
‫القواميس‬
‫المجموعات‬
‫الملفات‬
‫للكائنات‬ ‫العامة‬ ‫الخصائص‬
‫مهمة‬ ‫تلميحات‬
‫الملخص‬
‫بايثون‬ ‫برنامج‬ ‫بنية‬
‫المكتوب‬ ‫البرنامج‬ ‫بنية‬ ‫على‬ ‫نعرج‬ ‫أن‬ ‫المهم‬ ‫من‬ ،‫بايثون‬ ‫لغة‬ ‫تفاصيل‬ ‫غمار‬ ‫خوض‬ ‫في‬ ‫البدء‬ ‫قبل‬
:‫نقول‬ ‫وباختصار‬ ،‫بايثون‬ ‫بلغة‬ ‫البرمجة‬ ‫حول‬ ‫عام‬ ‫بشكل‬ ‫واضح‬ ‫تصور‬ ‫لديك‬ ‫ليتكون‬ ،‫بايثون‬ ‫بلغة‬
:‫التالي‬ ‫نحو‬ ‫على‬ ،‫وكائنات‬ ،‫عبارات‬ ‫و‬ ،‫وحدات‬ :‫أجزاء‬ ‫ثلثة‬ ‫إلى‬ ‫يحلل‬ ‫أن‬ ‫يمكن‬ ‫بايثون‬ ‫برنامج‬
١
‫وحدات‬ ‫من‬ ‫يتكون‬ ‫البرنامج‬ -
٢
‫عبارات‬ ‫على‬ ‫تحتوي‬ ‫الوحدات‬ ‫و‬ -
٣
.‫تعالجها‬ ‫و‬ ‫الكائنات‬ ‫تنشأ‬ ‫العبارات‬ ‫و‬ -
‫المدمجة؟‬ ‫النواع‬ ‫نستخدم‬ ‫لماذا‬
‫الوقت‬ ‫من‬ ‫كم‬ ‫ستدرك‬ ‫الجافا‬ ‫أو‬ ‫بلس‬ ‫بلس‬ ‫السي‬ ‫أو‬ ‫السي‬ ‫باستخدام‬ ‫سابقا‬ ‫برمجت‬ ‫قد‬ ‫كنت‬ ‫إذا‬
8
‫للعصاب‬ ‫مرهق‬ ‫هو‬ ‫وكم‬،‫المعطيات‬ ‫بنى‬ ‫يسمى‬ ‫بما‬ ‫الذاكرة‬ ‫في‬ ‫تنسيقها‬ ‫و‬ ‫الكائنات‬ ‫ترتيب‬ ‫يستغرق‬
‫البحث‬ ‫و‬ ‫ترتيبها‬ ‫و‬ ‫إليها‬ ‫الوصول‬ ‫كيفية‬ ‫و‬ ‫الذاكرة‬ ‫مع‬ ‫التعامل‬ ‫و‬ ‫الذاكرة‬ ‫في‬ ‫الكائنات‬ ‫تلك‬ ‫ترتيب‬
..‫خللها‬ ‫من‬
‫ممن‬ ‫بكائنات‬ ‫تزودك‬ ‫بايثون‬ ‫ﻷن‬ ، ‫بعيدا‬ ‫عنمك‬ ‫يذهمب‬ ‫الجهمد‬ ‫ذلك‬ ‫معظمم‬، ‫المثاليمة‬ ‫بايثون‬ ‫براممج‬ ‫فمي‬
‫اكتمب‬ ‫ثمم‬ ‫المشكلة‬ ‫حمل‬ ‫فمي‬ ‫فكمر‬ ‫فقمط‬ ،‫السمهولة‬ ‫بمنتهمى‬ ‫اﻷشياء‬ ‫تلك‬ ‫برمجمة‬ ‫تجعمل‬ ‫اللغمة‬ ‫صملب‬
‫تريده‬ ‫ما‬ ‫كل‬ ،‫الحقيقة‬ ‫في‬ .‫الكائنات‬ ‫ترتيب‬ ‫في‬ ‫نفسك‬ ‫ترهق‬ ‫أن‬ ‫فصاعدا‬ ‫اﻵن‬ ‫من‬ ‫داعي‬ ‫ل‬ ،‫الحل‬
.‫خاصة‬ ‫أنواع‬ ‫إلى‬ ‫بحاجة‬ ‫تكن‬ ‫لم‬ ‫ما‬ ‫به‬ ‫تزودك‬ ‫اﻷنواع‬ ‫تلك‬ ‫ستجد‬
:‫منها‬ ‫أسباب‬ ‫لعدة‬، ‫الكائنات‬ ‫تلك‬ ‫تفضل‬ ‫أنك‬ ‫اﻷحيان‬ ‫غالب‬ ‫في‬ ‫ستجد‬
‫الكتابة‬ ‫سهلة‬ ‫البسيطة‬ ‫البرامج‬ ‫تجعل‬ ‫المدمجة‬ ‫كائنات‬
‫مشاكمل‬ ‫عمن‬ ‫بعيدا‬ ‫احتياجاتمك‬ ‫جميمع‬ ‫تلبمي‬ ‫المضمنمة‬ ‫الكائنات‬ ‫أنواع‬ ‫أن‬ ‫سمتجد‬ ‫البسميطة‬ ‫للمهمات‬
‫ممي‬‫م‬‫ف‬ )‫ممس‬‫م‬‫(القوامي‬ ‫الجداول‬ ‫و‬ )‫القوائم‬ ( ‫المجموعات‬ ‫ممل‬‫م‬‫مث‬ ‫اﻷشياء‬ ‫ممتجد‬‫م‬‫س‬ ‫ﻷن‬.‫المعطيات‬ ‫ممى‬‫م‬‫بن‬
.‫المدمجة‬ ‫بايثون‬ ‫كائنات‬ ‫باستخدام‬ ‫فقط‬ ‫أنجز‬ ‫العمل‬ ‫من‬ ‫كثيرا‬ ‫أن‬ ‫وستجد‬ ،‫يدك‬ ‫متناول‬
‫التوسعات‬ ‫تدعم‬ ‫و‬ ‫بالكائنات‬ ‫تزودك‬ ‫بايثون‬
‫مثمل‬ ‫المضمنمة‬ ‫اﻷدوات‬ ‫تدعمم‬ ‫التمي‬ ‫اللغات‬ ‫ممن‬ ‫الطرق‬ ‫بعمض‬ ‫فمي‬ ‫تسمتعير‬ ‫بايثون‬
Lisp
‫اللغات‬ ‫و‬
++ ‫مثل‬ ‫يحتاجه‬ ‫الذي‬ ‫العمل‬ ‫إطار‬ ‫أو‬ ‫المطلوبة‬ ‫باﻷدوات‬ ‫تزويدها‬ ‫في‬ ‫المبرمج‬ ‫على‬ ‫تعتمد‬ ‫التي‬
C
‫تحتاج‬ ‫ل‬ ‫الغالب‬ ‫فمي‬ ‫أنمك‬ ‫إل‬ ‫بايثون‬ ‫فمي‬ ‫فريدة‬ ‫كائنات‬ ‫أنواع‬ ‫تنشيمء‬ ‫أن‬ ‫سمتطيع‬ ‫أنمك‬ ‫ممن‬ ‫بالرغمم‬ ‫و‬
.‫ذلك‬ ‫إلى‬
‫المخصصة‬ ‫المعطيات‬ ‫بنى‬ ‫من‬ ‫كفاءة‬ ‫أكثر‬ ‫المدمجة‬ ‫الكائنات‬
‫لزيادة‬ ‫مي‬‫م‬‫بالس‬ ‫معمولة‬ ‫و‬ ‫محسممنة‬ ‫معطيات‬ ‫بنممى‬ ‫خوارزميات‬ ‫تسممتخدم‬ ‫بايثون‬ ‫فممي‬ ‫المدمجممة‬ ‫اﻷنواع‬
‫ما‬‫م‬‫مضاعف‬ ‫جهدا‬ ‫متبذل‬‫م‬‫س‬ ‫مك‬‫م‬‫أن‬ ‫إل‬ ‫مة‬‫م‬‫مشابه‬ ‫كائنات‬ ‫أنواع‬ ‫مب‬‫م‬‫تكت‬ ‫أن‬ ‫متطيع‬‫م‬‫تس‬ ‫مك‬‫م‬‫أن‬ ‫مم‬‫م‬‫وبالرغ‬ ،‫مرعة‬‫م‬‫الس‬
.‫بايثون‬ ‫في‬ ‫الكائنات‬ ‫أنواع‬ ‫أداء‬ ‫على‬ ‫للحصول‬
‫مد‬‫م‬‫ق‬ ‫مت‬‫م‬‫كن‬ ‫إذا‬ ،‫مل‬‫م‬‫الفص‬ ‫هذا‬ ‫مي‬‫م‬‫ف‬ ‫منأخذها‬‫م‬‫س‬ ‫مي‬‫م‬‫الت‬ ‫مة‬‫م‬‫المدمج‬ ‫الكائنات‬ ‫أنواع‬ ‫مبين‬‫م‬‫ي‬ ‫التالي‬ ‫الجدول‬
‫ملسل‬‫م‬‫الس‬ ‫و‬ ‫اﻷعداد‬ ( ‫مل‬‫م‬‫مث‬ ‫مة‬‫م‬‫متشابه‬ ‫الكائنات‬ ‫هذه‬ ‫مض‬‫م‬‫بع‬ ‫أن‬ ‫متجد‬‫م‬‫س‬ ‫ذلك‬ ‫مل‬‫م‬‫قب‬ ‫مة‬‫م‬‫لغ‬ ‫متعملت‬‫م‬‫اس‬
9
‫بايثون‬ ‫بهما‬ ‫تزودك‬ )‫القواميمس‬ ‫و‬ ‫(القوائم‬ ‫مثمل‬ ‫وعاممة‬ ‫قويمة‬ ‫أنواع‬ ‫أيضما‬ ‫وسمتجد‬ )‫الملفات‬ ‫و‬ ‫النصمية‬
‫مثل‬ ‫اللغات‬ ‫من‬ ‫لكثير‬ ‫خلفا‬ ‫تعب‬ ‫بدون‬
C
++ ‫و‬
C
‫و‬
Java
‫واحدا‬ ‫واحدا‬ ‫بشرحها‬ ‫وسنقوم‬.
‫الكائن‬ ‫نوع‬
‫عليه‬ ‫مثال‬
‫اﻷعداد‬
Numbers
3.1415
,
1234
,
999L, 3+4j
‫نصية‬ ‫سلسل‬
Strings
'
spam', "guido's
"
‫قوائم‬
Lists
[
1
[ ,
2
' ,
three'], 4
]
‫قواميس‬
Dictionaries
'{
food':'spam', 'taste':'yum
}'
‫المجموعات‬
Tuples
(
1
',
spam', 4, 'U
)'
‫الملفات‬
Files
text = open('eggs', 'r').read()
‫العداد‬
‫النقطة‬ ‫ذات‬ ‫اﻷعداد‬ ‫و‬ ‫الصحيحة‬ ‫اﻷعداد‬ : ‫اﻷعداد‬ ‫أنواع‬ ‫من‬ ‫واسعة‬ ‫تشكيلة‬ ‫بايثون‬ ‫لغة‬ ‫تدعم‬
‫مثل‬ ‫اﻷعداد‬ ‫من‬ ‫مركبة‬ ‫أنواع‬ ‫تدعم‬ ‫أيضا‬ ‫و‬ ،‫سابقة‬ ‫لغات‬ ‫مع‬ ‫تعامل‬ ‫لمن‬ ‫مألوف‬ ‫هذا‬ ‫و‬ ،‫العائمة‬
‫اﻷدوات‬ ‫من‬ ‫واسعة‬ ‫تشكلية‬ ‫و‬ ‫محدود‬ ‫غير‬ ‫العائمة‬ ‫الفاصلة‬ ‫دقة‬ ‫ذات‬ ‫اﻷعداد‬ ‫و‬ ‫المركبة‬ ‫اﻷعداد‬
:‫النوعين‬ ‫سنشرح‬ ‫يلي‬ ‫فيما‬ ‫و‬
:‫القياسية‬ ‫العداد‬ ‫أنواع‬
‫تلك‬ ‫يبين‬ ‫جدول‬ ‫يلي‬ ‫ما‬ ‫في‬ ‫و‬ ‫جديدة‬ ‫بأنواع‬ ‫أتت‬ ‫و‬ ‫اللغات‬ ‫بقية‬ ‫في‬ ‫القياسية‬ ‫اﻷنواع‬ ‫تدعم‬ ‫بايثون‬
:‫نوع‬ ‫لكل‬ ‫أمثلة‬ ‫مع‬ ‫اﻷنواع‬
‫النوع‬
‫تفسيره‬
1234, - 24, 0
Normal integers (C longs)
999999999999L
Long integers (unlimited size)
1.23, 3.14e- 10, 4E210, 4.0e+210
Floating- point (C doubles)
0177, 0x9ff
Octal and hex constants
3+4j, 3.0+4.0j, 3J
Complex number constants
–
‫العائمة‬ ‫الفاصلة‬ ‫ذات‬ ‫اﻷعداد‬ ‫و‬ ‫الصحيحة‬ ‫اﻷعداد‬
10
( ‫مثمل‬ ‫العشريمة‬ ‫اﻷعداد‬ ‫ممن‬ ‫مجموعمة‬ ‫همي‬ ‫الصمحيحة‬ ‫اﻷعداد‬
10
‫الفاصملة‬ ‫ذات‬ ‫اﻷعداد‬ ‫و‬ ، )
( ‫مثل‬ ‫فاصلة‬ ‫على‬ ‫تحتوي‬ ‫التي‬ ‫هي‬ ‫العائمة‬
10 ٫10
.)
–
‫الرقمية‬ ‫الدقة‬
‫معاملة‬ ‫تعامل‬ ‫الصحيحة‬ ‫اﻷعداد‬
longs
،‫رقمية‬ ‫بدقة‬ ‫محدود‬ ‫غير‬ ‫أنها‬ ‫يعني‬ ‫مما‬ ‫السي‬ ‫لغة‬ ‫في‬
‫معاملة‬ ‫تعامل‬ ‫العائمة‬ ‫الفاصلة‬ ‫ذات‬ ‫اﻷعداد‬ ‫و‬
doubles
‫يمكنك‬ ‫أنك‬ ‫يعني‬ ‫مما‬ ‫السي‬ ‫لغة‬ ‫في‬
‫حرف‬ ‫ألحقت‬ ‫إذا‬ ‫أنك‬ ‫ملحظة‬ ‫مع‬ ،‫بالك‬ ‫على‬ ‫يخطر‬ ‫رقم‬ ‫أي‬ ‫تكتب‬ ‫أن‬
L
‫أو‬
l
‫مفسر‬ ‫تخبر‬ ‫فإنك‬
.‫باثيون‬ ‫لغة‬ ‫مقايس‬ ‫على‬ ‫طويل‬ ‫صحيح‬ ‫عدد‬ ‫العدد‬ ‫هذا‬ ‫أن‬ ‫بايثون‬ ‫لغة‬
–
‫الستعشرية‬ ‫و‬ ‫الثمانية‬ ‫اﻷعداد‬
‫بالصفر‬ ‫تبدأ‬ ‫التي‬ ‫هي‬ ‫الثمانية‬ ‫اﻷعداد‬
0
‫بم‬ ‫تبدأ‬ ‫التي‬ ‫هي‬ ‫الستعشرية‬ ‫اﻷعداد‬ ‫و‬
0x
‫أو‬
0X
.
‫المركبة‬ ‫اﻷعداد‬-
( )‫التخيلي‬ ‫الجزء‬ + ‫الحقيقي‬ ‫(الجزء‬ ‫كالتالي‬ ‫يكتب‬ ‫هو‬ ‫و‬ ‫النوع‬ ‫بهذا‬ ‫تزودك‬ ‫بايثون‬ ‫لغة‬
real-
part + imaginary- part
‫باللحقة‬ ‫ينتهي‬ ‫و‬ )
j
‫أو‬
J
.
:‫بايثون‬ ‫في‬ ‫المعاملت‬ ‫تعابير‬
‫أو‬ ( ‫اﻷعداد‬ ‫من‬ ‫مجموعة‬ ‫عن‬ ‫عبارة‬ ‫وهي‬ ‫التعابير‬ ‫هي‬ ‫اﻷعداد‬ ‫معالجة‬ ‫في‬ ‫اﻷساسية‬ ‫اﻷداءة‬ ‫ربما‬
‫أن‬ ‫تريمد‬ ‫عندمما‬ ‫ذلك‬ ‫على‬ ‫المثال‬ ‫و‬ ،‫بايثون‬ ‫فمي‬ ‫تنفيذهما‬ ‫عنمد‬ ‫قيممة‬ ‫تنتنمج‬ ‫معاملت‬ ‫و‬ )‫أخرى‬ ‫كائنات‬
‫مثل‬ ‫عددين‬ ‫تجمع‬
x
‫و‬
y
‫تقول‬ ‫فإنك‬
x + y
. + ‫هنا‬ ‫فالمعامل‬
‫أسمبقيتها‬ ‫يمبين‬ ‫و‬ ‫يشرحهما‬ ‫و‬ ‫يبينهما‬ ‫التالي‬ ‫الجدول‬ ‫و‬ ‫المعاملت‬ ‫هذه‬ ‫ممن‬ ‫طويلة‬ ‫بقائممة‬ ‫بايثون‬ ‫تزودنما‬
:‫تنازليا‬ ‫التنفيذ‬ ‫عند‬
‫المعامل‬
‫الوصف‬
x or y
"‫"أو‬ ‫المنطقي‬ ‫معامل‬
x and y
"‫"و‬ ‫المنطقي‬ ‫معامل‬
11
‫المعامل‬
‫الوصف‬
not x
"‫"عكس‬ ‫المنطقي‬ ‫معامل‬
in, not in
‫الكائن‬ ‫العضوية‬ ‫اختبار‬
is, is not
‫الكائن‬ ‫هوية‬ ‫اختبار‬
x | y
‫البت‬ ‫مستوى‬ ‫على‬ "‫"أو‬ ‫معامل‬
x ^ y
‫البت‬ ‫مستوى‬ ‫على‬ "‫"عكس‬ ‫معامل‬
x & y
‫البت‬ ‫مستوى‬ ‫على‬ "‫"و‬ ‫معامل‬
x << y, x >> y
‫إزاحة‬
x
‫بمقدار‬ ‫شمال‬ ‫أو‬ ‫يمينا‬
y
‫البتات‬ ‫من‬
x + y, x – y
‫الجمع‬ ‫و‬ ‫الطرح‬ ‫معامل‬
x * y, x / y, x % y
‫القسمة‬ ‫باقي‬ ‫و‬ ‫القسمة‬ ‫و‬ ‫الضرب‬ ‫معامل‬
‫العداد‬ ‫على‬ ‫العمل‬
‫لنطبع‬ ‫اﻷوامر‬ ‫سطر‬ ‫نشغل‬ ‫فدعنا‬ ،‫واقعيا‬ ‫و‬ ‫عمليا‬ ‫تجربتها‬ ‫هي‬ ‫النظرية‬ ‫اﻷشياء‬ ‫لفهم‬ ‫طريقة‬ ‫أحسن‬
.‫عمليا‬ ‫سابقا‬ ‫قلناه‬ ‫ما‬ ‫ستشرح‬ ‫التي‬ ‫اﻷسطر‬ ‫بعض‬ ‫عليه‬
:‫اﻷسياسية‬ ‫العمليات‬
‫مثمل‬ ‫اﻷعداد‬ ‫فئة‬ ‫ممن‬ ‫كائن‬ ‫إنشاء‬ ‫إلى‬ ‫نحتاج‬ ‫شيمء‬ ‫كمل‬ ‫قبمل‬
x
‫و‬
b
، ‫معاملت‬ ‫عليمه‬ ‫نطبق‬ ‫لكمي‬ ،
،‫معه‬ ‫نتعامل‬ ‫لكي‬ ‫إليه‬ ‫قيمة‬ ‫إسناد‬ ‫ثم‬ ‫تسميته‬ ‫ثم‬ ‫الكائن‬ ‫نوع‬ ‫ذكر‬ ‫إلى‬ ‫ستحتاج‬ ‫اﻷخرى‬ ‫اللغات‬ ‫في‬
، ‫نوعمه‬ ‫على‬ ‫للتعرف‬ ‫بايثون‬ ‫الباقمي‬ ‫تتولى‬ ‫و‬ ‫قيممه‬ ‫إليمه‬ ‫أسمند‬ ‫ثمم‬ ‫الكائن‬ ‫سمم‬ ‫فقمط‬ ‫بايثون‬ ‫فمي‬ ‫ولكمن‬
.‫بنوعه‬ ‫لتعريف‬ ‫الكائن‬ ‫إلى‬ ‫القيمة‬ ‫اسناد‬ ‫فقط‬ ‫يكفي‬ ‫بايثون‬ ‫كائنات‬ ‫في‬ ‫عام‬ ‫بشكل‬ ‫وهذا‬
: ‫اﻷوامر‬ ‫سطر‬ ‫في‬ ‫التالي‬ ‫اكتب‬، ‫عمليا‬ ‫ذلك‬ ‫لتطبيق‬
%python
>>> a = 3 # name created
>>> b = 4
‫إضافة‬ ‫كيفية‬ ‫لحظت‬ ‫ولعلك‬ ، ‫قيمتين‬ ‫إليهما‬ ‫وأسندنا‬ ‫اﻷعداد‬ ‫فئة‬ ‫من‬ ‫كائنين‬ ‫أنشأنا‬ ‫قد‬ ‫نكون‬ ‫وبهذا‬
‫وسهولة‬ ‫الكود‬ ‫توضيح‬ ‫في‬ ‫كبرى‬ ‫أهمية‬ ‫وللتعليق‬ ، ‫تعليق‬ ‫فهو‬ # ‫بعد‬ ‫ما‬ ‫فكل‬ ‫بايثون‬ ‫في‬ ‫التعليقات‬
.‫آخرين‬ ‫مطورين‬ ‫قبل‬ ‫من‬ ‫تطويره‬ ‫وسهولة‬ ‫قراءته‬
12
‫اﻷقواس‬ ‫بين‬ ‫المعاملت‬ ‫كانت‬ ‫وكلما‬ ، ‫المعاملت‬ ‫بعض‬ ‫تطبيق‬ ‫إلى‬ ‫ستحتاج‬ ‫الكائنات‬ ‫إنشاء‬ ‫بعد‬
‫انتبه‬ ‫ولكن‬ ،‫اﻷقواس‬ ‫بدون‬ ‫تعمل‬ ‫ل‬ ‫المعاملت‬ ‫أن‬ ‫يعني‬ ‫ل‬ ‫هذا‬ ‫ولكن‬ ، ‫أوضح‬ ‫اﻷمور‬ ‫كانت‬ ‫كلما‬
: ‫اﻷمثلة‬ ‫بعض‬ ‫إليك‬ ‫و‬ ، ‫سابقا‬ ‫ذكر‬ ‫ما‬ ‫حسب‬ ‫على‬ ‫المعاملت‬ ‫أسبقية‬ ‫إلى‬
>>> b / 2 + a # same as ((4 / 2) + 3)
5
>>> b / (2.0 + a) # same as (4 / (2.0 + 3))
0.8
‫المعامل‬ ‫أن‬ ‫وبما‬ ،‫اﻷقواس‬ ‫في‬ ‫المعاملت‬ ‫ترتيب‬ ‫تولت‬ ‫بايثون‬ ‫أن‬ ‫اﻷول‬ ‫المثال‬ ‫في‬ ‫واضح‬ ‫هو‬ ‫فكما‬
‫فأجبرنما‬ ‫قوسمين‬ ‫التعمبير‬ ‫إلى‬ ‫أضفنما‬ ‫المثال‬ ‫فمي‬ ‫ولكمن‬ ، ‫مقدم‬ ‫فهمو‬ ‫الجممع‬ ‫معاممل‬ ‫ممن‬ ‫أسمفل‬ ‫القسممة‬
‫عند‬ ‫اﻷمور‬ ‫هذه‬ ‫مثل‬ ‫مراعاة‬ ‫يجب‬ ‫النهاية‬ ‫وفي‬ ، ‫أول‬ ‫تقديمها‬ ‫نريد‬ ‫التي‬ ‫المعاملت‬ ‫تنفيذ‬ ‫على‬ ‫بايثون‬
.‫بايثون‬ ‫لغة‬ ‫في‬ ‫برامجك‬ ‫كتابة‬
‫المثال‬ ‫تنفيمذ‬ ‫جرب‬ ‫لك‬ ‫سمأقول‬ ، ‫الثانمي‬ ‫المثال‬ ‫فمي‬ ‫العائممة‬ ‫النقطمة‬ ‫إضافمة‬ ‫فائدة‬ ‫مما‬ ‫تسمأل‬ ‫ولعلك‬
‫هي‬ ‫النتيجة‬ ‫أن‬ ‫وستجد‬ ‫العائمة‬ ‫النقطة‬ ‫إضافة‬ ‫بدون‬
0
‫أنه‬ ‫على‬ ‫بايثون‬ ‫تعاملت‬ ‫لقد‬ ‫حصل؟‬ ‫ماذا‬ ،
‫بدون‬ ‫هي‬ ‫كما‬ ‫النتيجة‬ ‫أريد‬ ‫أني‬ ‫بايثون‬ ‫تخبر‬ ‫فإنك‬ ‫العائمة‬ ‫النقطة‬ ‫تكتب‬ ‫عندما‬ ‫ولكن‬ ،‫صحيح‬ ‫عدد‬
.‫بنفسك‬ ‫النتيجة‬ ‫ستلحظ‬ ‫صفرين‬ ‫أضفت‬ ‫إذا‬ ‫وكذلك‬ ‫تقريب‬
:‫البت‬ ‫مستوى‬ ‫على‬ ‫معاملت‬
‫الثنائي‬ ‫العمد‬ ‫تعرف‬ ‫أن‬ ‫عليمك‬ ‫فيجمب‬ ‫اﻷحيان‬ ‫بعمض‬ ‫فمي‬ ‫البمت‬ ‫المسمتوى‬ ‫على‬ ‫التعاممل‬ ‫إلى‬ ‫سمتحتاج‬
: ‫التالية‬ ‫اﻷمثلة‬ ‫لك‬ ‫وستتضح‬ ‫أول‬
>>> x = 1 # 0001
>>> x << 2 # shift left 2 bits: 0100
4
>>> x | 2 # bitwise OR: 0011
3
>>> x & 1 # bitwise AND: 0001
1
‫ل‬ ‫الجزئية‬ ‫هذه‬ ‫أنه‬ ‫وستجد‬ ، ‫استمر‬ ، ‫عليك‬ ‫فل‬ ، ‫الثنائية‬ ‫اﻷعداد‬ ‫تدرس‬ ‫ولم‬ ‫تفهم‬ ‫لم‬ ‫إذا‬
13
!! ‫يطلبها‬ ‫من‬ ‫إل‬ ‫يحتاجها‬
: ‫المركبة‬ ‫اﻷعداد‬
‫هذه‬ ‫مثمل‬ ‫فمي‬ ‫عندك‬ ‫تخصمص‬ ‫ل‬ ‫كشخمص‬ ، ‫الكهرباء‬ ‫و‬ ‫الهندسمة‬ ‫تخصمصات‬ ‫ممن‬ ‫المركبمة‬ ‫اﻷعداد‬
‫مل‬‫م‬‫فص‬ ‫من‬‫م‬‫م‬ ‫مر‬‫م‬‫أكث‬ ‫إلى‬ ‫متحتاج‬‫م‬‫س‬ ‫ما‬‫م‬‫تفهمه‬ ‫مي‬‫م‬‫لك‬ ‫مك‬‫م‬‫ﻷن‬ ، ‫الكرام‬ ‫مرور‬ ‫مة‬‫م‬‫الجزئي‬ ‫هذه‬ ‫على‬ ‫مر‬‫م‬‫م‬، ‫اﻷمور‬
‫إذا‬ ‫أما‬ ، ‫قياسي‬ ‫وقت‬ ‫في‬ ‫الباثون‬ ‫باستخدام‬ ‫البرمجة‬ ‫فهم‬ ‫إلى‬ ‫نوصلك‬ ‫أن‬ ‫نريد‬ ‫ونحن‬ ، ‫دراسي‬
:‫اﻷمثلة‬ ‫هذه‬ ‫إلى‬ ‫فانظر‬ ، ‫الكثير‬ ‫لك‬ ‫توفر‬ ‫بايثون‬ ‫ستجد‬ ‫فإنك‬ ‫تخصصه‬ ‫لب‬ ‫من‬ ‫اﻷعداد‬ ‫هذه‬ ‫كان‬
>>> 1j * 1J
(- 1+0j)
>>> 2 + 1j * 3
(2+3j)
>>> (2+1j)*3
(6+3j)
.‫التفصيل‬ ‫من‬ ‫للمزيد‬ ‫بايثون‬ ‫وثائق‬ ‫راجع‬ ‫المجال‬ ‫هذا‬ ‫في‬ ‫للستزاده‬
: ‫اﻷدوات‬ ‫من‬ ‫المزيد‬
‫وحدة‬ ‫وتقدم‬ ، ‫الرياضيات‬ ‫مع‬ ‫تتعامل‬ ‫أدوات‬ ‫عدة‬ ‫بايثون‬ ‫لك‬ ‫توفر‬
math
‫جميع‬ ‫مع‬ ‫تتعامل‬ ‫التي‬
:‫المثال‬ ‫إليك‬ ‫و‬ ، ‫الوحدة‬ ‫هذه‬ ‫تستورد‬ ‫أن‬ ‫عليك‬ ‫يجب‬ ‫ولكن‬ ، ‫الرياضيات‬ ‫قوانين‬
>>> import math
>>> math.pi
3.14159265359
>>>
>>> abs(- 42), 2**4, pow(2, 4)
(42, 16, 16)
. ‫تعالى‬ ‫ال‬ ‫بإذن‬ ‫القادمة‬ ‫الفصول‬ ‫في‬ ‫التفصيل‬ ‫من‬ ‫بشيء‬ ‫وحدات‬ ‫عن‬ ‫سنتكلم‬ ‫و‬
14
‫النصية‬ ‫السلسل‬
‫النصمية‬ ‫والسملسل‬،‫النصمية‬ ‫السملسل‬ ‫همو‬ ‫بايثون‬ ‫فمي‬ ‫الرئيسمية‬ ‫المدمجمة‬ ‫الكائنات‬ ‫ممن‬ ‫الثانمي‬ ‫النوع‬
‫استخدام‬ ‫يمكنك‬ ‫آخر‬ ‫وبمعنى‬، ‫واحدة‬ ‫وحدة‬ ‫في‬ ‫بيانات‬ ‫أو‬ ‫اسم‬ ‫لتخزين‬ ‫حروف‬ ‫تجمع‬ ‫عن‬ ‫عبارة‬
‫شابمه‬ ‫ومما‬ ‫الكلمات‬ ‫و‬ ‫اﻷسمماء‬ ‫و‬ ‫الروابمط‬ ‫مثمل‬ ‫كنمص‬ ‫تمثيله‬ ‫يقبمل‬ ‫شيمء‬ ‫كمل‬ ‫فمي‬ ‫النصمية‬ ‫السملسل‬
.‫ذلك‬
‫و‬ ‫النصمية‬ ‫سملسل‬ ‫الكائن‬ ‫على‬ ‫تحتوي‬ ‫أنهما‬ ‫سمتجد‬ ‫بايثون‬ ‫قبمل‬ ‫أخرى‬ ‫لغات‬ ‫اسمتخدمت‬ ‫كنمت‬ ‫إذا‬
‫حرف‬ ‫كائن‬ ‫أيضا‬
char
‫وتسريعا‬ ‫للتعلم‬ ‫تسهيل‬ ‫وذلك‬ ‫نصية‬ ‫كسلسل‬ ‫تعامل‬ ‫الحروف‬ ‫بايثون‬ ‫في‬
.‫للبرمجة‬
‫معرفة‬ ‫و‬ ‫التقطيع‬ ‫و‬ ‫الفهرسة‬ ‫مثل‬ ‫النصية‬ ‫السلسل‬ ‫مع‬ ‫تتعامل‬ ‫التي‬ ‫الدوال‬ ‫من‬ ‫بالكثير‬ ‫تزودنا‬ ‫بايثون‬
‫بايثون‬ ‫في‬ ‫النصية‬ ‫السلسل‬ ‫لمعالجة‬ ‫مستقلة‬ ‫وحدات‬ ‫وهناك‬، ‫السلسل‬ ‫تجميع‬ ‫و‬ ‫السلسلة‬ ‫طول‬
‫مثل‬
string
‫و‬
regex
‫و‬
re
.
: ‫دوالها‬ ‫وبعض‬ ‫النصية‬ ‫السلسل‬ ‫إنشاء‬ ‫كيفية‬ ‫سريع‬ ‫بشكل‬ ‫يعرض‬ ‫التالي‬ ‫الجدول‬ ‫و‬
‫العملية‬
‫شرحها‬
S1 = ' '
‫فارغة‬ ‫سلسلة‬
s2 = "spam's"
‫مزدوجة‬ ‫اقتباس‬ ‫علمات‬
block = """..."""
‫تنصيص‬ ‫علمات‬ ‫ثلث‬
s1 + s2,
s2 * 3
‫الجمع‬
‫التكرار‬
s2[i],
s2[i:j],
len(s2)
‫الفهرسة‬
‫التقطيع‬
‫الطول‬ ‫معرفة‬
"a %s parrot" %'dead'
‫النصية‬ ‫السلسل‬ ‫تهيئة‬
for x in s2,
'm' in s2
‫تكرارية‬ ‫الحلقة‬
‫العضوية‬
‫ولك‬ ،‫نفسه‬ ‫العمل‬ ‫يؤدين‬ ‫فكلهن‬ ، ‫المزدوجة‬ ‫و‬ ‫المفردة‬ ‫القتباس‬ ‫علمة‬ ‫بين‬ ‫فرق‬ ‫ل‬ ‫أنه‬ ‫لحظ‬
.‫اﻷختيار‬ ‫حرية‬
15
‫النصية‬ ‫السلسل‬ ‫على‬ ‫العمل‬
‫نوع‬ ‫من‬ ‫قيمة‬ ‫له‬ ‫وتسند‬ ‫اسمه‬ ‫تذكر‬ ‫أن‬ ‫له‬ ‫يكفي‬ ‫النصية‬ ‫السلسل‬ ‫من‬ ‫كائن‬ ‫إنشاء‬ ‫أن‬ ‫عليك‬ ‫مر‬ ‫كما‬
‫الجوانمب‬ ‫نسمتكشف‬ ‫فدعنما‬ ،‫السمابق‬ ‫الجدول‬ ‫فمي‬ ‫أمثلة‬ ‫ثلثمة‬ ‫عليمك‬ ‫ممر‬ ‫وقمد‬ ، ‫النصمية‬ ‫السملسل‬
..‫اﻷخرى‬
‫الساسية‬ ‫العمليات‬
‫كائنات‬ ‫مي‬‫م‬‫ف‬ ‫ما‬‫م‬‫معه‬ ‫مل‬‫م‬‫التعام‬ ‫مف‬‫م‬‫كي‬ ‫مت‬‫م‬‫وعرف‬ * ‫الضرب‬ ‫مل‬‫م‬‫معام‬ ‫و‬ + ‫مع‬‫م‬‫الجم‬ ‫مل‬‫م‬‫المعام‬ ‫مك‬‫م‬‫علي‬ ‫مر‬‫م‬‫م‬ ‫مد‬‫م‬‫لق‬
، ‫للنمص‬ ‫كتكرار‬ ‫الضرب‬ ‫و‬ ‫كإضافمة‬ ‫الجممع‬ ‫تعاممل‬ ‫فهمي‬ ‫النصمية‬ ‫السملسل‬ ‫كائنات‬ ‫أمما‬ ، ‫اﻷعداد‬
.‫نصية‬ ‫سلسل‬ ‫الطرفين‬ ‫كل‬ ‫يكون‬ ‫أن‬ ،‫الجمع‬ ‫معامل‬ ‫في‬ ‫يشترط‬ ‫ولكن‬
‫الدالة‬ ‫وهي‬ ‫النصية‬ ‫السلسلة‬ ‫طول‬ ‫لنا‬ ‫تحسب‬ ‫بدالة‬ ‫بايثون‬ ‫وتزودنا‬
len
‫ل‬ ‫اللغة‬ ‫مع‬ ‫مدمجة‬ ‫هي‬ ‫و‬
:‫اﻷمثلة‬ ‫بعض‬ ‫وهذه‬ ، ‫استيراد‬ ‫إلى‬ ‫تحتاج‬
%python
>>> len('abc') # length: number items
3
>>> 'abc' + 'def' # concatenation: a new string
'abcdef'
>>> 'Ni!' * 4 # like "Ni!" + "Ni!" + ...
'Ni!Ni!Ni!Ni!'
‫باستخدام‬ ‫وذلك‬ ‫النصية‬ ‫السلسلة‬ ‫في‬ ‫تكرارية‬ ‫حلقة‬ ‫عمل‬ ‫إلى‬ ‫اﻵن‬ ‫سنأتي‬
for
‫العضوية‬ ‫اختبار‬ ‫و‬
‫باستخدام‬
in
:
>>> myjob = "hacker"
>>> for c in myjob: print c, # step though items
...
h a c k e r
>>> "k" in myjob # 1 means true
1
16
‫النصية‬ ‫السلسلة‬ ‫التقطيع‬ ‫و‬ ‫الفهرسة‬
‫يعطينا‬ ‫التركيب‬ ‫هذا‬ ‫فإن‬ ، ‫الحروف‬ ‫من‬ ‫مجموعة‬ ‫كأنها‬ ‫بايثون‬ ‫في‬ ‫تعرف‬ ‫النصية‬ ‫السلسل‬ ‫أن‬ ‫بما‬
‫توفر‬ ‫وكذلك‬ ، ‫المفهرس‬ ‫يسمى‬ ‫بما‬ ‫أعضاءه‬ ‫من‬ ‫أي‬ ‫إلى‬ ‫الوصول‬ ‫إمكانية‬ ‫من‬ ‫المجموعة‬ ‫مميزات‬
‫من‬ ‫العد‬ ‫تبدأ‬ ‫بايثون‬ ‫أن‬ ‫لحظ‬ ‫ولكن‬ ،‫المفهرس‬ ‫باستخدام‬ ‫السلسلة‬ ‫تلك‬ ‫تقطيع‬ ‫إمكانية‬ ‫بايثون‬ ‫لنا‬
: ‫اﻷمثلة‬ ‫هذه‬ ‫إليك‬ ‫واﻵن‬ ،‫السي‬ ‫من‬ ‫مشتقة‬ ‫لغة‬ ‫كل‬ ‫مثل‬ ‫الواحد‬ ‫وليس‬ ‫المفهرس‬ ‫في‬ ‫الصفر‬
>>> S = 'spam'
>>> S[0], S[- 2] # indexing from front or end
('s', 'a')
>>> S[1:3], S[1:], S[:- 1] # slicing: extract section
('pa', 'pam', 'spa')
‫متغير‬ ‫بتعريف‬ ‫أول‬ ‫قمنا‬
s
‫من‬ ‫الفهرسة‬ ‫بعملية‬ ‫قمنا‬ ‫ثم‬ ، ‫معينة‬ ‫قيمة‬ ‫إليه‬ ‫وأسندنا‬ ‫نصية‬ ‫سلسلة‬ ‫بأنه‬
[‫فمم‬ ، ‫النهايمة‬ ‫وممن‬ ‫البدايمة‬
0
]
S
‫فهرسمته‬ ‫الذي‬ ‫الحرف‬ ‫أظهمر‬ ‫تعنمي‬
0
‫كان‬ ‫الناتمج‬ ‫و‬
s
[‫و‬ ،
2
]-
S
‫فهرسته‬ ‫الذي‬ ‫الحرف‬ ‫أظهر‬ ‫تعني‬
2
.‫اﻷخير‬ ‫من‬
[‫فم‬ ‫المفهرس‬ ‫باستخدام‬ ‫التقطيع‬ ‫بعملية‬ ‫قمنتا‬ ‫ذلك‬ ‫بعد‬
1:3
]
S
‫فما‬ ‫اﻷول‬ ‫الحرف‬ ‫من‬ ‫اجلب‬ ‫تعني‬
:[‫أمما‬ ، ‫فوقمه‬ ‫ومما‬ ‫الثالث‬ ‫الحرف‬ ‫تجلب‬ ‫ل‬ ‫ولكمن‬ ‫أعلى‬
1
]
S
‫فمما‬ ‫اﻷول‬ ‫الحرف‬ ‫ممن‬ ‫اجلب‬ ‫فتعنمي‬
[ ‫أما‬ ، ‫النهاية‬ ‫إلى‬ ‫فوقه‬
1
]:-
S
‫اﻷخير‬ ‫الحرف‬ ‫ماعدا‬ ‫السلسلة‬ ‫كل‬ ‫اجلب‬ ‫فتعني‬
‫النصية‬ ‫السلسل‬ ‫تهيئة‬
‫ممن‬‫م‬‫ولك‬ ،‫طرق‬ ‫عدة‬ ‫فهناك‬ ‫متغيرة‬ ‫كائنات‬ ‫مما‬‫م‬‫إليه‬ ‫ممف‬‫م‬‫تضي‬ ‫أن‬ ‫وأردت‬ ‫طويلة‬ ‫مملسلة‬‫م‬‫س‬ ‫عندك‬ ‫كان‬ ‫إذا‬
# ‫ولغة‬، ‫كبير‬ ‫بشكل‬ ‫السي‬ ‫لغة‬ ‫تستعملها‬ ‫طريقة‬ ‫لك‬ ‫توفر‬ ‫بايثون‬
C
:‫التالي‬ ‫المثال‬ ‫انظر‬ ، ‫حديثا‬
17
>>> S = 'spam'
>>> S[0] = "x"
Raises an error!
>>> S = S + 'Spam!' # to change a string, make a new one
>>> S
'spamSpam!'
>>> S = S[:4] + 'Burger' + S[- 1]
>>> S
'spamBurger!'
>>> 'That is %d %s bird!' %(1, 'dead') # like C sprintf
That is 1 dead bird!
‫كباقي‬ ‫اﻷعداد‬ ‫وعند‬ ، ‫النصية‬ ‫السلسل‬ ‫مع‬ ‫ليعمل‬ % ‫المعامل‬ ‫تعريف‬ ‫أعادة‬ ‫بايثون‬ ‫أن‬ ‫لحظ‬
‫الدالة‬ ‫وخاصة‬ ‫النص‬ ‫ترتيب‬ ‫في‬ ‫السي‬ ‫هيئة‬ ‫استخدم‬ ‫اﻷخير‬ ‫السطر‬ ‫أن‬ ‫سابقا‬ ‫قلنا‬ ‫كما‬ ،‫القسمة‬
sprintf
‫على‬ ‫اليمين‬ ‫على‬ ‫ما‬ ‫يساوي‬ ‫اليسار‬ ‫على‬ ‫كل‬ ‫ما‬ ‫تعني‬ ‫بسيطة‬ ‫وهي‬ ،‫قواعدها‬ ‫كل‬ ‫أخذ‬ ‫و‬
:‫التهيئة‬ ‫هذه‬ ‫على‬ ‫أكثر‬ ‫أمثلة‬ ‫وإليك‬ ، ‫الترتيب‬
>>> exclamation = "Ni"
>>> "The knights who say %s!" %exclamation
'The knights who say Ni!'
>>> "%d %s %d you" %(1, 'spam', 4)
'1 spam 4 you'
>>> "%s - - %s - - %s" %(42, 3.14159, [1, 2, 3])
'42 - - 3.14159 - - [1, 2, 3]'
‫أما‬ ، ‫شيء‬ ‫على‬ ‫تدل‬ ‫واحدة‬ ‫كل‬ ‫ولكنها‬ ‫ل‬ ‫نقول‬ ‫؟‬ ‫اعتباطية‬ % ‫بعد‬ ‫الحروف‬ ‫هل‬ ‫ولكن‬
s
‫فهي‬ %
:‫يشرحها‬ ‫التالي‬ ‫فالجدول‬ ‫البقية‬ ‫أما‬ ، ‫غيره‬ ‫أو‬ ‫نصية‬ ‫سلسلة‬ ‫أو‬ ‫عددا‬ ‫أكان‬ ‫سواء‬ ‫كائن‬ ‫لكل‬ ‫عامة‬
‫ستعشري‬ ‫عدد‬
Hex integer
%X
‫نصية‬ ‫سلسلة‬
String
%
‫الهيئة‬ ‫العائمة‬ ‫الفاصلة‬
1
Floating-
point
%e
‫حروف‬
Character
%c
‫الهيئة‬ ‫العائمة‬ ‫الفاصلة‬
2
Floating-
point
%E
‫عشري‬ ‫عدد‬
Decimal
%d
‫الهيئة‬ ‫العائمة‬ ‫الفاصلة‬
3
Floating-
point
%f
‫صحيح‬ ‫عدد‬
Integer
%i
‫الهيئة‬ ‫العائمة‬ ‫الفاصلة‬
4
Floating-
point
%g
Unsigned (int)
%u
‫الهيئة‬ ‫العائمة‬ ‫الفاصلة‬
5
Floating-
point
%G
‫ثماني‬ ‫عدد‬
Octal integer
%o
18
% ‫حرف‬
%%
‫ستعشري‬ ‫عدد‬
Hex integer
%x
‫النصية‬ ‫لسلسل‬ ‫العامة‬ ‫أدوات‬
‫واحدة‬ ‫أشهر‬ ‫ولعل‬ ،‫النصية‬ ‫السلسل‬ ‫مع‬ ‫للتعامل‬ ‫خاصة‬ ‫بوحدات‬ ‫تزودنا‬ ‫بايثون‬ ‫سابقا‬ ‫قلنا‬ ‫كما‬
‫هي‬ ‫وأقواها‬
string
‫من‬ ‫الحروف‬ ‫تحويل‬ ‫على‬ ‫القدرة‬ ‫فمنها‬ ‫الدوال‬ ‫من‬ ‫بالعديد‬ ‫تزودنا‬ ‫فهي‬ .
‫السلسلة‬ ‫تحويل‬ ‫وكذلك‬ ، ‫المعرفة‬ ‫السلسل‬ ‫في‬ ‫البحث‬ ‫وكذلك‬، ‫والعكس‬ ‫الصغيرة‬ ‫إلى‬ ‫الكبيرة‬
‫على‬ ‫مثال‬ ‫وهذا‬ ،‫اﻷدوات‬ ‫جميع‬ ‫للمعرفة‬ ‫بايثون‬ ‫وثائق‬ ‫راجع‬ ، ‫الكثير‬ ‫وغيرها‬ ، ‫عدد‬ ‫إلى‬ ‫النصية‬
‫وحدة‬ ‫قدرة‬
string
:
>>> import string # standard utilities module
>>> S = "spammify"
>>> string.upper(S) # convert to uppercase
'SPAMMIFY'
>>> string.find(S, "mm") # return index of substring
3
>>> string.atoi("42") # convert from/to string
42
>>> string.join(string.split(S, "mm"), "XX")
'spaXXify'
‫الدالة‬ ‫أن‬ ‫القضيمة‬ ‫فمي‬ ‫مما‬ ‫فكمل‬ ‫الفهمم‬ ‫سمهل‬ ‫فهمو‬،‫تعقيدا‬ ‫اﻷكثمر‬ ‫وهمو‬ ‫اﻷخيمر‬ ‫المثال‬ ‫لعمل‬
split
‫الحرف‬ ‫عند‬ ‫قسمين‬ ‫إلى‬ ‫السلسلة‬ ‫بتجزئة‬ ‫قامت‬
mm
‫الدالة‬ ‫قامت‬ ‫ثم‬ ،
join
‫بدمج‬
XX
‫بين‬
.‫عملها‬ ‫كيفية‬ ‫ومعرفة‬ ‫واحدة‬ ‫دالة‬ ‫كل‬ ‫تجربة‬ ‫يمكنك‬ ، ‫السابقين‬ ‫القسمين‬
‫الدالة‬ ‫أن‬ ‫لحمظ‬
atoi
‫أخرى‬ ‫دالة‬ ‫توجمد‬ ‫ولكمن‬ ، ‫فقمط‬ ‫عدد‬ ‫إلى‬ ‫النصمية‬ ‫السملسلة‬ ‫بتحويمل‬ ‫تقوم‬
‫تسممى‬ ‫مدمجمة‬
eval
‫ممن‬ ‫الحال‬ ‫بطبيعمة‬ ‫أبطمأ‬ ‫ولكنهما‬ ‫نوع‬ ‫أي‬ ‫إلى‬ ‫النصمية‬ ‫السملسلة‬ ‫بتحويمل‬ ‫تقوم‬
.‫اﻷولى‬ ‫الدالة‬
‫النصية‬ ‫السلسلة‬ ‫كتابة‬ ‫في‬ ‫الختلفات‬
‫تنسمق‬ ‫أن‬ ‫تسمتطيع‬ ‫بهما‬ ‫التمي‬ ‫الهروب‬ ‫أحرف‬ ‫عمن‬ ‫سمنتكلم‬ ، ‫النصمية‬ ‫السملسل‬ ‫عمن‬ ‫كلمنما‬ ‫نهايمة‬ ‫فمي‬
‫فمي‬ ‫اﻷحرف‬ ‫هذه‬ ‫لك‬ ‫يمبين‬ ‫التالي‬ ‫والجدول‬ ‫وغيرهما‬ ‫السمطر‬ ‫بدايمة‬ ‫حرف‬ ‫مثمل‬ ، ‫جيمد‬ ‫بشكمل‬ ‫النمص‬
19
:‫بايثون‬
newli
ne
‫الستمرار‬
n
‫جديد‬ ‫سطر‬

 ‫إظهار‬
v
Tab
‫عمودية‬
'
‫واحدة‬ ‫اقتباس‬ ‫علمة‬ ‫إظهار‬
t
Tab
‫رأسية‬
"
‫مزدوجة‬ ‫اقتباس‬ ‫علمة‬ ‫إظهار‬
r
‫السطر‬ ‫بداية‬ ‫إلى‬ ‫العودة‬
Carriage return
a
‫جرس‬
f
‫جديدة‬ ‫صفحة‬
Formfeed
b
‫الخلفي‬ ‫الحذف‬ ‫مفتاح‬
Backspace
0XX
Octal value XX
e
‫الهروب‬ ‫زر‬
Escape
xXX
Hex value XX
000
Null
‫السلسلة‬ ‫إنهاء‬ ‫عدم‬
other
‫آخر‬ ‫حرف‬ ‫أي‬
‫القوائم‬
‫أل‬ ‫وترتيب‬ ‫مرونة‬ ‫المدمجة‬ ‫الكائنات‬ ‫أكثر‬ ‫يعتبر‬ ‫كائن‬ ‫إلى‬ ‫ونصل‬ ‫بايثون‬ ‫لغة‬ ‫غمار‬ ‫في‬ ‫مشوارنا‬ ‫نكمل‬
‫القائممة‬ ‫وهمو‬
list
‫عدة‬ ‫ضمنهما‬ ‫فمي‬ ‫تجممع‬ ‫أن‬ ‫تسمتطيع‬ ‫أنهما‬ ‫النصمية‬ ‫السملسل‬ ‫عمن‬ ‫القوائم‬ ‫تمتاز‬ ،
‫كائنات‬ ‫و‬ ‫أعداد‬ ‫و‬ ‫مية‬‫م‬‫نص‬ ‫ملسلة‬‫م‬‫س‬ ‫من‬‫م‬‫م‬ ‫تكون‬ ‫أن‬ ‫من‬‫م‬‫يمك‬ ‫مة‬‫م‬‫فالقائم‬ ، ‫مط‬‫م‬‫فق‬ ‫موص‬‫م‬‫النص‬ ‫مت‬‫م‬‫وليس‬ ‫كائنات‬
‫و‬ ‫السمي‬ ‫لغمة‬ ‫مثمل‬ ‫اﻷخرى‬ ‫اللغات‬ ‫فمي‬ ‫المعطيات‬ ‫بنمى‬ ‫مقام‬ ‫القائممة‬ ‫وتقوم‬ .‫أخرى‬ ‫قوائم‬ ‫حتمى‬ ‫أخرى‬
:‫منها‬ ‫مميزات‬ ‫بعدة‬ ‫بايثون‬ ‫في‬ ‫القوائم‬ ‫وتتميز‬،‫الجافا‬
‫متجانسة‬ ‫غير‬ ‫كائنات‬ ‫من‬ ‫مرتبة‬ ‫مجموعة‬
‫القائمة‬ ‫و‬ ‫كمجموعة‬ ‫تنظمهم‬ ‫أن‬ ‫يمكنك‬ ‫لذا‬ ‫الكائنات‬ ‫للتجميع‬ ‫مكان‬ ‫القائمة‬ ،‫الوظيفية‬ ‫الناحية‬ ‫من‬
. ‫اليمين‬ ‫إلى‬ ‫اليسار‬ ‫من‬ ‫بترتيبهم‬ ‫تقوم‬ ‫أيضا‬
‫المفهرس‬ ‫باستخدام‬ ‫الوصول‬
‫عملية‬ ‫وإجراء‬ ،‫المفهرس‬ ‫باستخدام‬ ‫القائمة‬ ‫أعضاء‬ ‫إلى‬ ‫تصل‬ ‫أن‬ ‫تستطيع‬ ‫النصية‬ ‫السلسل‬ ‫مثل‬
.‫والسلسلة‬ ‫التقطيع‬
‫عالية‬ ‫مرونة‬
‫حسب‬ ‫وتصغر‬ ‫تكبر‬ ‫أن‬ ‫يمكن‬ ‫بحيث‬ ،‫النصية‬ ‫السلسل‬ ‫مرونة‬ ‫من‬ ‫أكبر‬ ‫عالية‬ ‫بمرونة‬ ‫القوائم‬ ‫تتمتع‬
.‫متشابكة‬ ‫تصير‬ ‫بحيث‬ ‫قوائم‬ ‫في‬ ‫قوائم‬ ‫وضع‬ ‫ويمكنك‬ ،‫برنامجك‬ ‫متطلبات‬
20
‫المرجعية‬ ‫الكائنات‬ ‫من‬ ‫مصفوفة‬
‫الناحية‬ ‫هذه‬ ‫من‬ ‫وهي‬،‫السي‬ ‫لغة‬ ‫في‬ ‫المصفوفات‬ ‫من‬ ‫خاص‬ ‫نوع‬ ‫القوائم‬ ‫تعتبر‬ ‫التقنية‬ ‫الناحية‬ ‫من‬
‫ب‬ ‫ما‬‫م‬‫معه‬ ‫مل‬‫م‬‫نتعام‬ ‫ما‬‫م‬‫عندم‬ ‫أي‬ ، ‫مة‬‫م‬‫مرجعي‬ ‫ما‬‫م‬‫بقولن‬ ‫ما‬‫م‬‫هن‬ ‫مد‬‫م‬‫ونقص‬ ،‫مة‬‫م‬‫مرجعي‬ ‫كائنات‬ ‫من‬‫م‬‫ع‬ ‫عبارة‬
can't
read superblock
،‫عنه‬ ‫نسخة‬ ‫وليس‬ ‫الكائن‬ ‫إلى‬ ‫يؤشر‬ ‫مؤشر‬ ‫مع‬ ‫نتعامل‬ ‫فإننا‬ ‫تعريفها‬ ‫عد‬
.‫البرمجة‬ ‫علينا‬ ‫يسهل‬ ‫و‬ ‫أكبر‬ ‫سرعة‬ ‫يعطينا‬ ‫وهذا‬
:‫القوائم‬ ‫عمليات‬ ‫أهم‬ ‫يوضح‬ ‫التالي‬ ‫الجدول‬
‫العملية‬
‫الوصف‬
L1 = []
‫فارغة‬ ‫قائمة‬
L2 = [0, 1, 2, 3]
‫من‬ ‫اﻷدلة‬ ‫و‬ ‫عناصر‬ ‫أربعة‬
0
‫إلى‬
3
L3 = ['abc', ['def', 'ghi']]
‫متداخلة‬ ‫قوائم‬
L2[i], L3[i][j]
L2[i:j],
len(L2)
‫الفهرسة‬
‫التقطيع‬
‫الطول‬
L1 + L2,
L2 * 3
‫سلسلة‬
‫إعادة‬
for x in L2,
3 in L2
‫تكرار‬
‫العضوية‬
L2.append(4),
L2.sort(),
L2.index(1),
L2.reverse()
:‫الدوال‬
‫توسيع‬
‫ترتيب‬
‫البحث‬
‫عكس‬
del L2[k],
L2[i:j] = []
‫النكماش‬
L2[i] = 1,
L2[i:j] = [4,5,6]
‫الفهرس‬ ‫إسناد‬
‫المقطع‬ ‫اسناد‬
range(4), xrange(0, 4)
‫اﻷعداد‬ ‫من‬ ‫مجموعات‬ ‫أو‬ ‫قوائم‬ ‫إنشاء‬
‫مي‬‫م‬‫ف‬ ‫مك‬‫م‬‫علي‬ ‫مرت‬ ‫مد‬‫م‬‫ق‬ ‫مابق‬‫م‬‫الس‬ ‫الجدول‬ ‫مي‬‫م‬‫ف‬ ‫ذكرت‬ ‫مي‬‫م‬‫الت‬ ‫العمليات‬ ‫مم‬‫م‬‫معظ‬ ‫مت‬‫م‬‫رأي‬ ‫مد‬‫م‬‫ق‬ ‫مك‬‫م‬‫أن‬ ‫متلحظ‬‫م‬‫س‬
‫مثمل‬ ‫النصمية‬ ‫السملسل‬ ‫تدعمهما‬ ‫ول‬ ‫القوائم‬ ‫تدعمهما‬ ‫التمي‬ ‫العمليات‬ ‫بعمض‬ ‫إل‬ ، ‫النصمية‬ ‫السملسل‬
.‫والنكماش‬ ‫التوسع‬ ‫و‬ ‫المقاطع‬ ‫إسناد‬ ‫و‬ ‫الفهرس‬ ‫إسناد‬
21
‫القوائم‬ ‫على‬ ‫العمل‬
‫مي‬‫م‬‫ف‬ ‫ذكرت‬ ‫مي‬‫م‬‫الت‬ ‫العمليات‬ ‫منأخذ‬‫م‬‫س‬ ‫أخرى‬ ‫ومرة‬،‫ما‬‫م‬‫عليه‬ ‫مل‬‫م‬‫العم‬ ‫مي‬‫م‬‫ه‬ ‫القوائم‬ ‫مم‬‫م‬‫لفه‬ ‫مة‬‫م‬‫طريق‬ ‫مل‬‫م‬‫أفض‬
.‫العملية‬ ‫اﻷمثلة‬ ‫من‬ ‫بشيء‬ ‫نشرحها‬ ‫أن‬ ‫ونحاول‬ ‫السابق‬ ‫الجدول‬
‫اﻷساسية‬ ‫العمليات‬
: ‫التالي‬ ‫المثال‬ ‫إليك‬ ‫و‬ ‫النصية‬ ‫السلسل‬ ‫تدعمها‬ ‫التي‬ ‫العمليات‬ ‫معظم‬ ‫تدعم‬ ‫القوائم‬
%python
>>> len([1, 2, 3]) # length
3
>>> [1, 2, 3] + [4, 5, 6] # concatenation
[1, 2, 3, 4, 5, 6]
>>> ['Ni!'] * 4 # repetition
['Ni!', 'Ni!', 'Ni!', 'Ni!']
>>> for x in [1, 2, 3]: print x, # iteration
...
1 2 3
‫والتقطيع‬ ‫الفهرسة‬
‫مثمل‬ ‫جيمد‬ ‫بشكمل‬ ‫عليهما‬ ‫تعممل‬ ‫والتقطيمع‬ ‫الفهرسمة‬ ‫عمليتمي‬ ‫فإن‬، ‫سملسل‬ ‫عمن‬ ‫عبارة‬ ‫القوائم‬ ‫أن‬ ‫بمما‬
:‫المثال‬ ‫هذا‬ ‫وإليك‬ ، ‫كائن‬ ‫لكل‬ ‫الحقيقي‬ ‫الموقع‬ ‫ملحظة‬ ‫مع‬ ‫النصية‬ ‫السلسل‬
>>> L = ['spam', 'Spam', 'SPAM!']
>>> L[2] # offsets start at zero
'SPAM!'
>>> L[-2] # negative: count from the right
'Spam'
>>> L[1:] # slicing fetches sections
['Spam', 'SPAM!']
‫القوائم‬ ‫في‬ ‫اﻹسناد‬
‫قيم‬ ‫إسناد‬ ‫على‬ ‫المقدرة‬ ‫هي‬ ‫النصية‬ ‫السلسل‬ ‫عن‬ ‫متميزة‬ ‫وتعتبر‬ ‫القوائم‬ ‫بها‬ ‫أتت‬ ‫التي‬ ‫اﻷشياء‬
‫لفعل‬ ‫تحتاج‬ ‫التي‬ ‫النصية‬ ‫السلسل‬ ‫بخلف‬ ‫ذلك‬ ‫و‬ ‫القوائم‬ ‫في‬ ‫والمقاطع‬ ‫الفهارس‬ ‫إلى‬ ‫جديدة‬
.‫الكائن‬ ‫من‬ ‫جديدة‬ ‫نسخة‬ ‫إنشاء‬ ‫إلى‬ ‫ذلك‬
22
‫ذلك‬ ‫يبين‬ ‫كما‬ ‫المقطع‬ ‫أو‬ ‫الفهرس‬ ‫باستخدام‬ ‫المحتوى‬ ‫تغيير‬ ‫تستطيع‬ ‫القوائم‬ ‫استخدام‬ ‫عند‬
: ‫التالي‬ ‫المثال‬
>>> L = ['spam', 'Spam', 'SPAM!']
>>> L[1] = 'eggs' # index assignment
>>> L
['spam', 'eggs', 'SPAM!']
>>> L[0:2] = ['eat', 'more'] # slice assignment: delete+insert
>>> L # replaces items 0,1
['eat', 'more', 'SPAM!']
‫بحذف‬ ‫تقوم‬ ‫أول‬ ‫فإنها‬ ، ‫المقاطع‬ ‫طريق‬ ‫عن‬ ‫القوائم‬ ‫إلى‬ ‫باﻹسناد‬ ‫تقوم‬ ‫حين‬ ‫بايثون‬ ‫أن‬ ‫ملحظة‬ ‫مع‬
‫سبيل‬ ‫على‬ ،‫واحد‬ ‫كائن‬ ‫من‬ ‫أكثر‬ ‫القيمة‬ ‫كانت‬ ‫ولو‬ ‫مكانه‬ ‫الجديدة‬ ‫القيمة‬ ‫تضع‬ ‫ثم‬ ‫المختار‬ ‫المقطع‬
‫قائمة‬ ‫عندنا‬ ‫المثال‬
L
[ ‫تساوي‬
1
,
2
,
3
‫التالي‬ ‫المقطع‬ ‫باستخدام‬ ‫اﻹسناد‬ ‫عملية‬ ‫تطبيق‬ ‫فعند‬ ]
L[1:2] = [4, 5
[ ‫ستكون‬ ‫النتيجة‬ ‫فإن‬ ]
1
,
4
,
5
,
3
.]
:‫التالي‬ ‫المثال‬ ‫إليك‬ ‫و‬ ‫العكس‬ ‫و‬ ‫البحث‬ ‫و‬ ‫الترتيب‬ ‫و‬ ‫توسيع‬ ‫منها‬ ‫الدوال‬ ‫بعض‬ ‫تدعم‬ ‫القوائم‬
>>> L.append('please')
>>> L
['eat', 'more', 'SPAM!', 'please']
>>> L.sort()
>>> L
['SPAM!', 'eat', 'more', 'please']
>>> L.reverse()
>>> L
['please', 'more', 'eat', 'SPAM!']
>>> L.index('eat')
2
‫أو‬ ‫الفهرس‬ ‫باستخدام‬ ‫الحذف‬ ‫تدعم‬ ‫فإنها‬ ، ‫مرنة‬ ‫سلسلة‬ ‫عن‬ ‫عبارة‬ ‫القوائم‬ ‫أن‬ ‫بما‬ ‫وأخيرا‬
: ‫المقطع‬ ‫أو‬ ‫الفهرس‬ ‫طريق‬ ‫عن‬ ‫الحذف‬ ‫أو‬ ‫فارغة‬ ‫قائمة‬ ‫إلى‬ ‫السناد‬ ‫طريق‬ ‫عن‬ ‫وذلك‬ ،‫المقطع‬
23
>>> L.sort()
>>> L
['SPAM!', 'eat', 'more', 'please']
>>> del L[0] # delete one item
>>> L
['eat', 'more', 'please']
>>> del L[1:] # delete an entire section
>>> L # same as L[1:] = []
['eat']
‫القواميس‬
‫كنا‬ ‫وإذا‬،‫بايثون‬ ‫لغة‬ ‫في‬ ‫المرنة‬ ‫المدمجة‬ ‫الكائنات‬ ‫أهم‬ ‫من‬ ‫القواميس‬ ‫تعتبر‬ ‫القوائم‬ ‫إلى‬ ‫باﻷضافة‬
‫فهي‬ ‫ذلك‬ ‫بعكس‬ ‫القواميس‬ ‫فإن‬ ، ‫المرتبة‬ ‫الكائنات‬ ‫من‬ ‫مجموعة‬ ‫عن‬ ‫عبارة‬ ‫القوائم‬ ‫أن‬ ‫اعتبرنا‬
‫و‬ ‫ترتيب‬ ‫عليه‬ ‫يقوم‬ ‫الذي‬ ‫القوائم‬ ‫في‬ ‫الرئيسي‬ ‫الشيء‬ ‫ويعتبر‬ ،‫المرتبة‬ ‫غير‬ ‫الكائنات‬ ‫من‬ ‫مجموعة‬
.‫العنصر‬ ‫موقع‬ ‫وليس‬ ‫المفتاح‬ ‫هو‬ ‫القاموس‬ ‫عناصر‬ ‫إحضار‬
‫التي‬ ‫المعطيات‬ ‫بنى‬ ‫و‬ ‫خوارزميات‬ ‫من‬ ‫الكثير‬ ‫استبدال‬ ‫استطاعت‬ ‫القواميس‬ ‫فإن‬ ‫تلحظ‬ ‫وكما‬
‫في‬ ‫القواميس‬ ‫تستخدم‬ ‫وأيضا‬ ،‫المستوى‬ ‫منخفضة‬ ‫اللغات‬ ‫بعض‬ ‫في‬ ‫يدويا‬ ‫استخدامها‬ ‫إلى‬ ‫ستضطر‬
.‫المستوى‬ ‫منخفضة‬ ‫اللغات‬ ‫بعض‬ ‫في‬ ‫الجداول‬ ‫عمل‬ ‫ﻷداء‬ ‫اﻷحيان‬ ‫بعض‬
:‫منها‬ ‫خصائص‬ ‫بعدة‬ ‫القواميس‬ ‫وتتميز‬
‫الموقع‬ ‫وليس‬ ‫المفتاح‬ ‫باستخدام‬ ‫الوصول‬
‫باستخدام‬ ‫القيم‬ ‫يضع‬ ‫الترابط‬ ‫هذا‬،‫المترابطة‬ ‫المصفوفات‬ ‫عليها‬ ‫يطلق‬ ‫اﻷحيان‬ ‫بعض‬ ‫في‬ ‫القواميس‬
،‫به‬ ‫خزن‬ ‫الذي‬ ‫المفتاح‬ ‫باستخدام‬ ‫القاموس‬ ‫في‬ ‫عنصر‬ ‫أي‬ ‫إحضار‬ ‫وباستطاعتك‬ ،‫المفاتيح‬
.‫الموقع‬ ‫باستخدام‬ ‫وليس‬ ‫المفتاح‬ ‫باستخدام‬ ‫ولكن‬ ‫الفهرس‬ ‫عمليات‬ ‫نفس‬ ‫ستستخدم‬
‫متجانسة‬ ‫غير‬ ‫كائنات‬ ‫من‬ ‫منظمة‬ ‫غير‬ ‫مجموعة‬
‫ترتيب‬ ‫تقدم‬ ‫بايثون‬ ‫الحقيقة‬ ‫في‬،‫معين‬ ‫ترتيب‬ ‫على‬ ‫تبقى‬ ‫ل‬ ‫القواميس‬ ‫في‬ ‫العناصر‬ ،‫القوائم‬ ‫بخلف‬
‫العناصر‬ ‫أماكن‬ ‫إلى‬ )‫فيزيائية‬ ‫(غير‬ ‫راوبط‬ ‫تقدم‬ ‫المفاتيح‬ ،‫سريعة‬ ‫مشاهدة‬ ‫تقديم‬ ‫يضمن‬ ‫عشوائي‬
.‫القواميس‬ ‫في‬
‫مرنة‬ ‫خصائص‬
24
‫يمكنها‬ ‫وكذلك‬ ،‫جديدة‬ ‫نسخة‬ ‫إنشاء‬ ‫بدون‬ ‫والتقلص‬ ‫التوسيع‬ ‫بميزة‬ ‫تزودك‬ ‫القواميس‬ ‫القوائم‬ ‫مثل‬
‫في‬ ‫قواميس‬ ‫تنشأ‬ ‫أن‬ ‫يمكنك‬ ‫بحيث‬ ‫التداخل‬ ‫ميزة‬ ‫وكذلك‬،‫نوع‬ ‫كل‬ ‫من‬ ‫عناصر‬ ‫على‬ ‫تحتوي‬
‫على‬ ‫بالعتماد‬ ‫جديدة‬ ‫قيم‬ ‫تسند‬ ‫أن‬ ‫يمكنك‬ ‫وأيضا‬،‫قواميس‬ ‫في‬ ‫قوائم‬ ‫يمكنك‬ ‫وكذلك‬ ‫قواميس‬
‫المفاتيح‬
‫المرجعية‬ ‫كائنات‬ ‫من‬ ‫جداول‬
‫عن‬ ‫عبارة‬ ‫القواميس‬ ‫فإن‬ ، ‫المرجعية‬ ‫الكائنات‬ ‫من‬ ‫مصفوفة‬ ‫عن‬ ‫عبارة‬ ‫القوائم‬ ‫أن‬ ‫قلنا‬ ‫كنا‬ ‫إذا‬
‫المعطيات‬ ‫بنى‬ ‫من‬ ‫جداول‬ ‫تستخدم‬ ‫القواميس‬ ‫داخليا‬ .‫المرجعية‬ ‫الكائنات‬ ‫من‬ ‫منظمة‬ ‫غير‬ ‫جداول‬
‫بايثون‬ ‫ذلك‬ ‫على‬ ‫وعلوة‬ ،‫الطلب‬ ‫حسب‬ ‫تكبر‬ ‫و‬ ‫صغيرة‬ ‫تبدأ‬ ‫وهي‬ ‫السريع‬ ‫السترجاع‬ ‫ميزة‬ ‫تدعم‬
‫التعمق‬ ‫وعند‬ .‫كبيرة‬ ‫سرعة‬ ‫السترجاع‬ ‫يعطي‬ ‫مما‬ ‫المفاتيح‬ ‫ﻹيجاد‬ ‫محسنة‬ ‫خوارزميات‬ ‫توظف‬
.‫بالضبط‬ ‫القوائم‬ ‫مثل‬ ‫منها‬ ‫نسخ‬ ‫وليس‬ ‫الكائنات‬ ‫مراجع‬ ‫تخزن‬ ‫القواميس‬ ‫أن‬ ‫نجد‬
‫تكتب‬ .‫القوائم‬ ‫تشابه‬ ‫أنها‬ ‫لحظ‬ ،‫القواميس‬ ‫على‬ ‫الشائعة‬ ‫العمليات‬ ‫أهم‬ ‫يوضح‬ ‫التالي‬ ‫الجدول‬
:‫التالي‬ ‫شكل‬ ‫على‬ ‫القواميس‬
key:value
‫العملية‬
‫الوصف‬
D1 = { }
‫فارغ‬ ‫قاموس‬
d2 = {'spam': 2, 'eggs': 3}
‫القاموس‬ ‫في‬ ‫عنصرين‬
d3 = {'food': {'ham': 1, 'egg': 2}}
‫التداخل‬
d2['eggs'], d3['food']['ham']
‫المفتاح‬ ‫باستخدام‬ ‫الفهرسة‬
d2.has_key('eggs'),
d2.keys(),
d2.values()
‫العضوية‬ ‫دالة‬ : ‫الدوال‬
‫المفاتيح‬ ‫قائمة‬
‫القيم‬ ‫قائمة‬
len(d1)
)‫المخزنة‬ ‫اﻹدخالت‬ ‫(عدد‬ ‫الطول‬
d2[key] = new,
del d2[key]
‫والتعديل‬ ‫اﻹضافة‬
‫الحذف‬
‫القواميس‬ ‫على‬ ‫العمل‬
:‫السابق‬ ‫الجدول‬ ‫في‬ ‫ذكرت‬ ‫التي‬ ‫العمليات‬ ‫بعض‬ ‫تطبيق‬ ‫في‬ ‫حريتنا‬ ‫لنأخذ‬ ‫المفسر‬ ‫إلى‬ ‫نرجع‬ ‫دعنا‬
:‫اﻷساسية‬ ‫العمليات‬
‫المفتاح‬ ‫باسمتخدام‬ ‫عناصمره‬ ‫إلى‬ ‫والوصمول‬ ‫قاموس‬ ‫إنشاء‬ ‫يمكنمك‬ ، ‫عام‬ ‫بشكمل‬
key
‫الدالة‬ ‫و‬ ،
25
len
‫أو‬ ‫القاموس‬ ‫فمي‬ ‫المخزنمة‬ ‫العناصمر‬ ‫عدد‬ ‫ترجمع‬ ‫وهمي‬ ،‫القواميمس‬ ‫ممع‬ ‫أيضما‬ ‫تعممل‬ ‫المدمجمة‬
‫الدالة‬ ‫فإن‬ ‫المفاتيح‬ ‫عن‬ ‫حديثنا‬ ‫وعند‬ .‫المفاتيح‬ ‫قائمة‬ ‫طول‬ ‫ترجع‬ ‫آخر‬ ‫بمعنى‬
keys
‫كل‬ ‫ترجع‬
‫بشكممل‬ ‫القواميممس‬ ‫لمعالجممة‬ ‫قويممة‬ ‫أداة‬ ‫يعتممبر‬ ‫هذا‬ ،‫قائمممة‬ ‫فممي‬ ‫مجموعممة‬ ‫القاموس‬ ‫فممي‬ ‫المفاتيممح‬
.)‫عشوائية‬ ‫القواميس‬ ‫أن‬ ‫(تذكر‬، ‫المفتايح‬ ‫قائمة‬ ‫ترتيب‬ ‫في‬ ‫عليه‬ ‫تعتمد‬ ‫ل‬ ‫ولكن‬ ،‫متسلسل‬
%python
>>> d2 = {'spam': 2, 'ham': 1, 'eggs': 3}
>>> d2['spam'] # fetch value for key
2
>>> len(d2) # number of entries in dictionary
3
>>> d2.has_key('ham') # key membership test (1 means true)
1
>>> d2.keys() # list of my keys
['eggs', 'spam', 'ham']
‫القواميس‬ ‫في‬ ‫التغيير‬
‫بدون‬، ‫أيضا‬ ‫جديدة‬ ‫قيم‬ ‫اسناد‬ ‫و‬ ‫تصغر‬ ‫و‬ ‫تكبر‬ ‫أن‬ ‫تستطيع‬ ‫فلذا‬ ،‫مرتبة‬ ‫غير‬ ‫القواميس‬ ‫أن‬ ‫قلنا‬ ‫كما‬
‫ﻹنشاء‬ ‫تغييرها‬ ‫أو‬ ‫قيمة‬ ‫إسناد‬ ‫عليك‬ ‫فقط‬ ،‫بالضبط‬ ‫القوائم‬ ‫مثل‬ ‫جديدة‬ ‫قواميس‬ ‫إنشاء‬ ‫إلى‬ ‫الحاجة‬
‫والدالة‬ .‫القاموس‬ ‫في‬ ‫جديدة‬ ‫مدخلة‬
del
‫القوائم‬ ‫على‬ ‫تعمل‬ ‫مثلما‬ ‫القواميس‬ ‫على‬ ‫أيضا‬ ‫تعمل‬
:‫التالي‬ ‫المثال‬ ‫إليك‬ ، ‫بالضبط‬
>>> d2['ham'] = ['grill', 'bake', 'fry'] # change entry
>>> d2
{'eggs': 3, 'spam': 2, 'ham': ['grill', 'bake', 'fry']}
>>> del d2['eggs'] # delete entry
>>> d2
{'spam': 2, 'ham': ['grill', 'bake', 'fry']}
>>> d2['brunch'] = 'Bacon' # add new entry
>>> d2
{'brunch': 'Bacon', 'spam': 2, 'ham': ['grill', 'bake', 'fry']}
‫طريقة‬ ‫عن‬ ‫تختلف‬ ‫فهي‬ ، ‫اﻷخير‬ ‫المثال‬ ‫القاموس‬ ‫في‬ ‫جديدة‬ ‫مدخلة‬ ‫إنشاء‬ ‫في‬ ‫الطريقة‬ ‫هنا‬ ‫لحظ‬
26
‫المفتاح‬ ‫على‬ ‫بل‬ ‫موقع‬ ‫على‬ ‫تعتمد‬ ‫ل‬ ‫القواميس‬ ‫أن‬ ‫وذلك‬ ، ‫القوائم‬ ‫في‬ ‫الجديدة‬ ‫مدخلة‬ ‫إضافة‬
‫الدالة‬ ‫إلى‬ ‫تحتاج‬ ‫فهي‬ ‫القواميس‬ ‫بعكس‬ ،‫المكان‬ ‫يهمها‬ ‫ل‬ ‫و‬ ‫عشوائية‬ ‫فهي‬
append
‫ﻹضافة‬
.‫القائمة‬ ‫في‬ ‫جديدة‬ ‫مدخلة‬
‫واقعي‬ ‫مثال‬
‫العمود‬ ‫في‬ -‫هنا‬ ‫ثلث‬- ‫اللغات‬ ‫أسماء‬ ‫يحوي‬ ‫جدول‬ ‫إنشاء‬ ‫وهو‬ ‫واقعية‬ ‫أكثر‬ ‫مثال‬ ‫هنا‬ ‫سنأخذ‬
‫وحاول‬ ‫المثال‬ ‫هذا‬ ‫في‬ ‫ركز‬،-‫القيمة‬ – ‫مؤلفيها‬ ‫أسماء‬ ‫يحوي‬ ‫الثاني‬ ‫والعمود‬ -‫المفتاح‬- ‫اﻷول‬
:‫تطبيقه‬
>>> table = {'Python': 'Guido van Rossum',
... 'Perl': 'Larry Wall',
... 'Tcl': 'John Ousterhout' }
...
>>> language = 'Python'
>>> creator = table[language]
>>> creator
'Guido van Rossum'
>>> for lang in table.keys(): print lang, 't', table[lang]
...
Tcl John Ousterhout
Python Guido van Rossum
Perl Larry Wall
‫باستخدام‬ ‫مباشر‬ ‫بشكل‬ ‫تكررها‬ ‫أن‬ ‫يمكن‬ ‫فل‬ ‫متسلسلة‬ ‫ليست‬ ‫القواميس‬ ‫ﻷن‬،‫اﻷخير‬ ‫اﻷمر‬ ‫لحظ‬
for
،‫القاموس‬ ‫عناصر‬ ‫جميع‬ ‫تعرض‬ ‫أن‬ ‫أردت‬ ‫إذا‬ ‫ولكن‬ .‫القوائم‬ ‫أو‬ ‫النصية‬ ‫السلسل‬ ‫مثل‬
‫الدالة‬ ‫باستخدام‬ ‫أول‬ ‫فقم‬
keys
‫قيمتها‬ ‫واعرض‬ ‫كررها‬ ‫ثم‬ ‫القاموس‬ ‫في‬ ‫المفاتيح‬ ‫قائمة‬ ‫لجلب‬
‫باستخدام‬
for
‫تعرف‬ ‫تكن‬ ‫لم‬ ‫إذا‬ ،
for
‫الدروس‬ ‫في‬ ‫بالتفصيل‬ ‫ندرسها‬ ‫فسوف‬ ‫تتضايق‬ ‫فل‬
.‫القادمة‬
:‫اﻷخرى‬ ‫الكائنات‬ ‫إلى‬ ‫ننتقل‬ ‫أن‬ ‫قبل‬ ‫القواميس‬ ‫حول‬ ‫تتذكرها‬ ‫أن‬ ‫يجب‬ ‫الملحظات‬ ‫بعض‬ ‫وهنا‬
–
‫اﻷخير‬ ‫المثال‬ ‫في‬ ‫رأينا‬ ‫مثلما‬ ‫القواميس‬ ‫مع‬ ‫تعمل‬ ‫ل‬ ‫التسلسل‬ ‫على‬ ‫تعتمد‬ ‫التي‬ ‫العمليات‬
–
‫القاموس‬ ‫في‬ ‫جديدة‬ ‫مدخلة‬ ‫تضيف‬ ‫فإنك‬ ‫جديدة‬ ‫قيمة‬ ‫إسناد‬ ‫عند‬
–
‫القوائم‬ ‫ماعدا‬ ‫الكائنات‬ ‫كل‬ ‫تعمل‬ ‫بل‬ ، ‫نصية‬ ‫سلسلة‬ ‫المفتاح‬ ‫يكون‬ ‫أن‬ ‫شرطا‬ ‫ليس‬
27
‫المجموعات‬
‫ببساطة‬ ‫تتركب‬ ‫المجموعات‬،‫المجموعات‬ ‫هي‬ ‫المجمعات‬ ‫ﻷنواع‬ ‫لبايثون‬ ‫اسكشافنا‬ ‫في‬ ‫نوع‬ ‫آخر‬
‫تتغير‬ ‫أن‬ ‫يمكن‬ ‫ل‬ ‫القوائم‬ ‫أن‬ ‫باستثناء‬ ‫القوائم‬ ‫مثل‬ ‫بالضبط‬ ‫تعمل‬ ‫وهي‬،‫الكائنات‬ ‫من‬ ‫مجموعة‬ ‫من‬
‫قوسين‬ ‫بين‬ ‫وليس‬ ‫قوسين‬ ‫بين‬ ‫محصورة‬ ‫متسلسلة‬ ‫كعناصر‬ ‫عادة‬ ‫وتكتب‬ ‫ثابتة‬ ‫فهي‬ ‫مكانها‬ ‫من‬
:‫وهي‬ ‫القوائم‬ ‫من‬ ‫خصائصها‬ ‫معظم‬ ‫تستمد‬ ‫والمجموعات‬.‫القوائم‬ ‫مثل‬ ‫معكوفين‬
‫الكائنات‬ ‫من‬ ‫منظمة‬ ‫مجموعة‬
‫نسق‬ ‫في‬ ‫المنظمة‬ ‫الكائنات‬ ‫من‬ ‫مجموعة‬ ‫عن‬ ‫عبارة‬ ‫المجموعات‬ ‫والقوائم‬ ‫النصية‬ ‫السلسل‬ ‫مثل‬
‫الكائنات‬ ‫أنواع‬ ‫كل‬ ‫على‬ ‫تحتوي‬ ‫أن‬ ‫يمكن‬ ‫القوائم‬ ‫ومثل‬ ‫معين‬
‫الموقع‬ ‫باستخدام‬ ‫الوصول‬
‫موقعه‬ ‫باستخدام‬ ‫المجموعة‬ ‫في‬ ‫عنصر‬ ‫أي‬ ‫إلى‬ ‫الوصول‬ ‫يمكنك‬ ‫والقوائم‬ ‫النصية‬ ‫السلسل‬ ‫مثل‬
‫أخذناها‬ ‫وأن‬ ‫سبق‬ ‫والتي‬ ‫الموقع‬ ‫تستخدم‬ ‫التي‬ ‫العلميات‬ ‫كل‬ ‫تدعم‬ ‫المجموعات‬ ‫و‬ ،‫مفتاحه‬ ‫وليس‬
.‫والتقطيع‬ ‫الفهرس‬ ‫باستخدام‬ ‫الوصول‬ ‫مثل‬
‫الكائنات‬ ‫من‬ ‫ثابتة‬ ‫سلسلة‬
‫المكان‬ ‫في‬ ‫تغيير‬ ‫عملية‬ ‫أي‬ ‫تدعم‬ ‫ل‬ ‫أنها‬ ‫ذلك‬ ‫ويعني‬ ‫ثابتة‬ ‫المجموعات‬ ‫النصية‬ ‫السلسل‬ ‫مثل‬
‫لفعل‬ ‫يجب‬ ‫بل‬ ‫والتقلص‬ ‫التوسع‬ ‫تدعم‬ ‫ل‬ ‫أيضا‬ ‫وهي‬ ،‫القوائم‬ ‫في‬ ‫رأيتها‬ ‫التي‬ ‫مثل‬ )‫(السناد‬
.‫تصغيرها‬ ‫أو‬ ‫تكبيرها‬ ‫المراد‬ ‫المجموعة‬ ‫من‬ ‫جديدة‬ ‫نسخة‬ ‫إنشاء‬ ‫ذلك‬
‫المرجعية‬ ‫الكائنات‬ ‫من‬ ‫مصفوفة‬
.‫المرجعية‬ ‫الكائنات‬ ‫من‬ ‫مصفوفة‬ ‫عن‬ ‫عبارة‬ ‫المجموعة‬ ،‫بالضبط‬ ‫القوائم‬ ‫مثل‬
‫فارغة‬ ‫مجموعة‬ ‫تنشيء‬ ‫لكي‬ ‫ملحظة‬ ‫مع‬ ،‫المجموعات‬ ‫على‬ ‫العمليات‬ ‫أهم‬ ‫يوضح‬ ‫التالي‬ ‫الجدول‬
.‫فقط‬ ‫قوسين‬ ‫وضع‬ ‫يكفي‬ ‫فقط‬
‫العملية‬
‫الوصف‬
()
‫فارغة‬ ‫مجموعة‬
t1 = (0,)
‫المجموعة‬ ‫في‬ ‫واحد‬ ‫عنصر‬
t2 = (0, 1, 2, 3)
‫عناصر‬ ‫أربعة‬
t2 = 0, 1, 2, 3
‫أيضا‬ ‫عناصر‬ ‫أربعة‬
28
‫العملية‬
‫الوصف‬
t3 = ('abc', ('def', 'ghi'))
t1[i], t3[i][j]
t1[i:j],
len(t1)
‫التداخل‬
‫الفهرسة‬
‫التقطيع‬
‫الطول‬
t1 + t2
t2 * 3
‫الجمع‬
‫اﻹعادة‬
for x in t2,
3 in t2
‫التكرار‬
‫العضوية‬
‫إغلق‬ ‫في‬ ‫تستخدم‬ ‫اﻷقواس‬ ‫أن‬ ‫بسبب‬ ،‫أكثر‬ ‫إيضاحا‬ ‫تستحق‬ ‫الجدول‬ ‫في‬ ‫اﻷولى‬ ‫الصفوف‬ ‫أربعة‬
‫بين‬ ‫واحدا‬ ‫كائنا‬ ‫أن‬ ‫بايثون‬ ‫ﻹخبار‬ ‫مميز‬ ‫شيء‬ ‫إلى‬ ‫تحتاج‬ ‫فإنك‬ )‫اﻷعداد‬ ‫راجع‬ ( ‫المعاملت‬
‫قبل‬ ‫سفلية‬ ‫فاصلة‬ ‫ضع‬ ‫بساطة‬ ‫بكل‬،‫بسيط‬ ‫تعبير‬ ‫عن‬ ‫عبارة‬ ‫وليس‬ ‫المجموعات‬ ‫فئة‬ ‫من‬ ‫هو‬ ‫القوسين‬
.‫مجموعة‬ ‫عن‬ ‫عبارة‬ ‫هو‬ ‫القوسين‬ ‫بين‬ ‫ما‬ ‫أن‬ ‫بايثون‬ ‫تخبر‬ ‫وبذلك‬ ،‫القوسين‬ ‫إقفال‬
‫في‬ ‫كما‬ ‫المجموعات‬ ‫إنشاء‬ ‫في‬ ‫ل‬ ‫أو‬ ‫اﻷقواس‬ ‫وضع‬ ‫في‬ ‫الحرية‬ ‫لك‬ ‫تتيح‬ ‫بايثون‬ ‫فإن‬ ‫خاصة‬ ‫وكحالة‬
‫تضمن‬ ‫ﻷنها‬ ‫اﻷقواس‬ ‫تستخدم‬ ‫بأن‬ ‫الفرص‬ ‫لك‬ ‫سمحت‬ ‫إذا‬ ‫دائما‬ ‫يفضل‬ ‫ولكن‬ ،‫الرابع‬ ‫الصف‬
.‫التشويش‬ ‫عدم‬ ‫لك‬
‫النصية‬ ‫السلسل‬ ‫على‬ ‫لمثيلتها‬ ‫تماما‬ ‫مشابهة‬ ‫فهي‬ ‫السابق‬ ‫الجدول‬ ‫في‬ ‫اﻷخيرة‬ ‫العمليات‬ ‫في‬
‫بايثون‬ ‫مفسر‬ ‫على‬ ‫أنت‬ ‫تتطبقها‬ ‫أن‬ ‫يكفي‬ ‫فقط‬ ، ‫أخرى‬ ‫مرة‬ ‫لشرحها‬ ‫داعي‬ ‫يوجد‬ ‫ل‬ ‫فلذا‬ ‫والقوائم‬
.‫لها‬ ‫فهمك‬ ‫من‬ ‫للتأكد‬
‫المجموعات؟‬ ‫نستخدم‬ ‫لماذا‬
‫هذا‬ ‫يكون‬ ‫قد‬ ‫القوائم؟‬ ‫عندنا‬ ‫كان‬ ‫إذا‬ ‫المجموعات‬ ‫نستخدم‬ ‫لماذا‬ ‫للمبتدئ‬ ‫يتبادر‬ ‫سؤال‬ ‫أول‬
‫باستخدام‬ ‫يمكن‬ ‫مثل‬ ،‫مميزات‬ ‫من‬ ‫العديد‬ ‫يوفر‬ ‫المجموعات‬ ‫ثبات‬ ‫أن‬ ‫إجابة‬ ‫أفضل‬ ‫ولكن‬ ‫تاريخيا‬
.‫البرنامج‬ ‫في‬ ‫آخر‬ ‫مكان‬ ‫في‬ ‫أخرى‬ ‫مراجع‬ ‫باستخدام‬ ‫تتغير‬ ‫ل‬ ‫الكائنات‬ ‫أن‬ ‫التأكد‬ ‫المجموعات‬
‫القوائم‬ ‫استخدم‬ ‫عام‬ ‫وبشكل‬ ،‫القوائم‬ ‫وليس‬ ‫المجموعات‬ ‫إلى‬ ‫تحتاج‬ ‫المدمجة‬ ‫العمليات‬ ‫بعض‬
.‫المجموعات‬ ‫فاستخدم‬ ‫الحالت‬ ‫بقية‬ ‫في‬ ‫أما‬ ‫التغيير‬ ‫عليها‬ ‫يطرأ‬ ‫التي‬ ‫المنظمة‬ ‫المجموعات‬ ‫في‬
29
‫الملفات‬
‫في‬ ‫المعلومات‬ ‫تخزن‬ ‫التي‬ ‫الملفات‬ ‫أسماء‬ ‫فكرة‬ ‫عن‬ ‫خلفية‬ ‫عندهم‬ ‫القراء‬ ‫معظم‬ ‫أن‬ ‫أمل‬ ‫على‬
‫الوصول‬ ‫بطريقة‬ ‫يزودنا‬ ‫بايثون‬ ‫في‬ ‫مدمج‬ ‫كائن‬ ‫آخر‬ ‫يكون‬،‫التشغيل‬ ‫نظام‬ ‫يديرها‬ ‫التي‬ ‫و‬ ‫الكميبوتر‬
‫مدمجة‬ ‫الدالة‬ ‫إن‬.‫بايثون‬ ‫برامج‬ ‫ضمن‬ ‫الملفات‬ ‫تلك‬ ‫إلى‬
open
‫وهي‬ ‫بايثون‬ ‫في‬ ‫الملف‬ ‫كائن‬ ‫تنشأ‬
‫الدالة‬ ‫مناداة‬ ‫بعد‬،‫جهازنا‬ ‫على‬ ‫المستقر‬ ‫الملف‬ ‫إلى‬ ‫الربط‬ ‫خدمة‬ ‫لنا‬ ‫تقدم‬
open
‫القراءة‬ ‫يمكننا‬،
.‫ملف‬ ‫الكائن‬ ‫دوال‬ ‫بمناداة‬،‫المربوط‬ ‫الملف‬ ‫من‬ ‫والكتابة‬
‫كائنات‬ ‫و‬ ‫عددا‬ ‫ليس‬ ‫ﻷنه‬ ،‫قليل‬ ‫غريبا‬ ‫سنجده‬ ‫اﻷخرى‬ ‫بالكائنات‬ ‫الملفات‬ ‫كائن‬ ‫مقارنة‬ ‫عند‬
‫وهذا‬ ،‫الملفات‬ ‫في‬ ‫الشائعة‬ ‫العمليات‬ ‫لمعالجة‬ ‫دوال‬ ‫استخدام‬ ‫هو‬ ‫إنما‬ ،‫خرائطية‬ ‫أو‬ ‫متسلسلة‬
‫وهو‬،‫والدخل‬ ‫الخرج‬ ‫معالجة‬ ‫مجال‬ ‫في‬ ‫يدرس‬ ‫وإنما‬ ، ‫اﻷخرى‬ ‫اللغات‬ ‫في‬ ‫موجودا‬ ‫ليس‬ ‫الكائن‬
.‫الملفات‬ ‫لمعالجة‬ ‫أخرى‬ ‫دوال‬ ‫يستخدم‬ ‫إنما‬ ‫و‬ ‫مستقل‬ ‫ليس‬
‫الدالة‬ ‫مناداة‬ ‫يجب‬ ‫الملف‬ ‫لفتح‬ ،‫الملفات‬ ‫على‬ ‫العلميات‬ ‫ﻷهم‬ ‫ملخص‬ ‫يوضح‬ ‫التالي‬ ‫الجدول‬
open
‫للقراء‬ ‫الملف‬ ‫معاملة‬ ‫طريقة‬ ‫الثاني‬ ‫و‬، ‫مساره‬ ‫مع‬ ‫الملف‬ ‫اسم‬ ‫اﻷول‬ ‫بمعاملين‬ ‫تزويدها‬ ‫و‬
r
‫للكتابة‬
w
‫الملف‬ ‫آخر‬ ‫في‬ ‫للكتابة‬
a
‫سلسل‬ ‫يكونا‬ ‫أن‬ ‫يجب‬ ‫المعاملين‬ ‫كل‬ ‫أن‬ ‫ملحظة‬ ‫مع‬ ،
:‫نصية‬
‫العملية‬
‫الوصف‬
output = open('/tmp/spam', 'w')
‫ملف‬ ‫إنشاء‬
output
‫الكتابة‬ ‫نمط‬ ‫في‬
input = open('data', 'r')
‫ملف‬ ‫إنشاء‬
output
‫القراءة‬ ‫نمط‬ ‫في‬
S = input.read()
‫سلسل‬ ‫إلى‬ ‫بالكامل‬ ‫الملف‬ ‫خرج‬ ‫اسناد‬
‫نصية‬
S = input.read(N)
‫قراءة‬
N
)‫أكثر‬ ‫أو‬ ‫(واحد‬ ‫البايتات‬ ‫من‬
S = input.readline()
‫التالي‬ ‫السطر‬ ‫قراءة‬
L = input.readlines()
‫بحيث‬ ‫قائمة‬ ‫في‬ ‫ووضعه‬ ‫الملف‬ ‫خرج‬ ‫قراءة‬
‫في‬ ‫عنصر‬ ‫يساوي‬ ‫الملف‬ ‫في‬ ‫سطر‬ ‫كل‬
‫القائمة‬
output.write(S)
‫كتابة‬
S
‫الملف‬ ‫داخل‬
output
output.writelines(L)
‫في‬ ‫النصية‬ ‫السلسلة‬ ‫أسطر‬ ‫جميع‬ ‫كتابة‬
‫قائمة‬
L
‫الملف‬ ‫داخل‬
output
output.close()
‫يمكن‬ ‫ل‬ ‫الملف‬ ‫إغلق‬ ‫بعد‬ ،‫الملف‬ ‫إغلق‬
‫خطأ‬ ‫ويعطي‬ ‫عليه‬ ‫الكتابة‬ ‫أو‬ ‫منه‬ ‫القراءة‬
‫ذلك‬ ‫محاولة‬ ‫عند‬
30
‫محتويات‬ ‫مع‬ ‫تتعامل‬ ‫بايثون‬ ‫الحالت‬ ‫كل‬ ‫وفي‬ ،‫منه‬ ‫والقراءة‬ ‫الكتابة‬ ‫يمكنك‬ ‫للملف‬ ‫إنشائك‬ ‫عند‬
‫كسلسل‬ ‫تعاملها‬ ‫فهي‬ ‫الملفات‬ ‫إلى‬ ‫الكتابة‬ ‫عند‬ ‫وكذلك‬ ،‫أعداد‬ ‫كانت‬ ‫ولو‬ ‫نصية‬ ‫كسلسل‬ ‫الملف‬
‫كل‬ ‫على‬ ‫للحصول‬ ‫بايثون‬ ‫وثائق‬ ‫مراجعة‬ ‫يمكنك‬ ‫و‬ ‫العمليات‬ ‫أهم‬ ‫يحوي‬ ‫السابق‬ ‫الجدول‬ ،‫النصية‬
.‫الملفات‬ ‫عمليات‬
‫الملف‬ ‫إغلق‬ ‫عملية‬
close
‫وهي‬ ‫الخارجي‬ ‫والملف‬ ‫البرنامج‬ ‫بين‬ ‫التصال‬ ‫إغلق‬ ‫على‬ ‫تعمل‬ ،
‫بغلق‬ ‫يقوم‬ ‫نفايات‬ ‫مجمع‬ ‫تملك‬ ‫بايثون‬ ‫أن‬ ‫تعلم‬ ‫كما‬ ‫ولكن‬ ،‫الذاكرة‬ ‫من‬ ‫مساحة‬ ‫لتحرير‬ ‫مهم‬
‫الصغيرة‬ ‫البرامج‬ ‫في‬ ‫لتضر‬ ‫الملف‬ ‫إغلق‬ ‫وعملية‬ ،‫تلقائي‬ ‫إليه‬ ‫حاجة‬ ‫في‬ ‫تكون‬ ‫ل‬ ‫عندما‬ ‫التصال‬
‫بنفسك‬ ‫الملفات‬ ‫غلق‬ ‫عن‬ ‫تتهاون‬ ‫أل‬ ‫يجب‬ ‫كبيرة‬ ‫أنظمة‬ ‫على‬ ‫العمل‬ ‫عند‬ ‫ولكن‬ ،‫سكربتات‬ ‫مثل‬
.‫جيدا‬ ‫أداء‬ ‫لتضمن‬ ‫النفايات‬ ‫مجمع‬ ‫على‬ ‫العتماد‬ ‫وعدم‬
‫الملفات‬ ‫على‬ ‫العمل‬
‫ممط‬‫م‬‫نم‬ ‫ممي‬‫م‬‫ف‬ ‫ملف‬ ‫ممح‬‫م‬‫بفت‬ ‫مما‬‫م‬‫قمن‬ ‫ممء‬‫م‬‫شي‬ ‫أول‬ ،‫الملفات‬ ‫على‬ ‫ممل‬‫م‬‫العم‬ ‫ممة‬‫م‬‫كيفي‬ ‫ممح‬‫م‬‫يوض‬ ‫مميط‬‫م‬‫بس‬ ‫مثال‬ ‫مما‬‫م‬‫هن‬
‫يعطيمه‬ ‫و‬ ‫جديمد‬ ‫ملف‬ ‫بإنشاء‬ ‫يقوم‬ ‫يجده‬ ‫لم‬ ‫فإن‬ ‫المعطمى‬ ‫السمم‬ ‫عمن‬ ‫بالبحمث‬ ‫المفسمر‬ ‫فيقوم‬،‫الكتابمة‬
‫إعطاءه‬ ‫ملحظمة‬ ‫ممع‬ ‫واحمد‬ ‫سمطر‬ ‫المنشمئ‬ ‫الملف‬ ‫فمي‬ ‫بالكتابمة‬ ‫قمنما‬ ‫ثمم‬ ،‫إياه‬ ‫أعطيناه‬ ‫الذي‬ ‫السمم‬
‫السمطر‬ ‫بقراءة‬ ‫وقمنما‬ ‫القراءة‬ ‫نممط‬ ‫فمي‬ ‫بفتحمه‬ ‫قمنما‬ ‫ثمم‬ ،‫الملف‬ ‫بإغلق‬ ‫قمنما‬ ‫ثمم‬ ،‫جديمد‬ ‫سمطر‬ ‫علممة‬
:‫فارغ‬ ‫الثاني‬ ‫السطر‬ ‫ﻷنه‬ ‫فراغ‬ ‫الناتج‬ ‫فأعطنا‬ ‫الثاني‬ ‫السطر‬ ‫قراءة‬ ‫حاولنا‬ ‫ثم‬،‫منه‬ ‫اﻷول‬
>>> myfile = open('myfile', 'w') # open for output (creates)
>>> myfile.write('hello text filen') # write a line of text
>>> myfile.close()
>>> myfile = open('myfile', 'r') # open for input
>>> myfile.readline() # read the line back
'hello text file012'
>>> myfile.readline() # empty string: end of file
''
:‫الملفات‬ ‫حول‬ ‫الملحظات‬ ‫بعض‬ ‫وهناك‬
–
‫اﻹصدار‬ ‫من‬
2.2
‫الدالة‬ ‫استبدلت‬ ‫لبايثون‬
open
‫بالدالة‬
file
‫الدالة‬ ‫استخدام‬ ‫فيمكنك‬
31
file
‫للدالة‬ ‫كقناع‬ ‫تعمل‬ ‫ﻷنها‬ ‫السابقة‬ ‫الدالة‬ ‫استخدام‬ ‫يمكنك‬ ‫وكذلك‬ ،‫السابقة‬ ‫الدالة‬ ‫مكان‬
‫الجديدة‬ ‫اﻹصدارات‬ ‫في‬ ‫الجديدة‬
–
‫الدالة‬ ‫باستخدام‬ ‫ثانية‬ ‫مرة‬ ‫عرضه‬ ‫عند‬ ‫الملف‬ ‫و‬ ‫واحدة‬ ‫مرة‬ ‫تتم‬ ‫الملف‬ ‫قراءة‬ ‫أن‬ ‫لحظ‬
read
‫اﻹصدار‬ ‫على‬ ‫لحظته‬ ‫ما‬ ‫ثانية(هذا‬ ‫مرة‬ ‫الملف‬ ‫قراءة‬ ‫إعادة‬ ‫فيجب‬ ،‫فراغ‬ ‫ويعطي‬ ‫عرضه‬ ‫يتم‬ ‫ل‬
2.3
)‫بايثون‬ ‫من‬
‫للكائنات‬ ‫العامة‬ ‫الخصائص‬
‫الخصائص‬ ‫عن‬ ‫سريعة‬ ‫جولة‬ ‫نأخذ‬ ‫دعنا‬ ،‫بايثون‬ ‫في‬ ‫المدمجة‬ ‫الكائنات‬ ‫جميع‬ ‫أنهينا‬ ‫أن‬ ‫وبعد‬ ‫اﻵن‬
.‫فيها‬ ‫تتشارك‬ ‫التي‬ ‫باثيون‬ ‫في‬ ‫المدمجة‬ ‫للكائنات‬ ‫العامة‬
‫الكائنات‬ ‫تصنيف‬
:‫سابقا‬ ‫رأيناها‬ ‫التي‬ ‫اﻷنواع‬ ‫جميع‬ ‫يصنف‬ ‫التالي‬ ‫الجدول‬
‫الكائن‬ ‫نوع‬
‫صنفه‬
‫للتوسع؟‬ ‫قابل‬
‫اﻷعداد‬
Numbers
‫عددي‬
‫ل‬
‫النصية‬ ‫السلسل‬
Strings
‫متسلسل‬
‫ل‬
‫القوائم‬
Lists
‫متسلسل‬
‫نعم‬
‫القواميس‬
Dictionaries
‫تخطيطي‬
‫نعم‬
‫المجموعات‬
Tuples
‫متسلسل‬
‫ل‬
‫الملفات‬
Files
‫امتدادي‬
N/A
‫أن‬ ‫و‬،‫متسلسلة‬ ‫أنها‬ ‫في‬ ‫تشترك‬ ‫والمجموعات‬ ‫القوائم‬ ‫و‬ ‫النصية‬ ‫السلسل‬ ‫فإن‬ ‫الجدول‬ ‫من‬ ‫نرى‬ ‫كما‬
‫تستخدم‬ ‫الملفات‬ .‫فل‬ ‫غيرها‬ ‫أما‬ ‫فقط‬ ‫اﻹنكماش‬ ‫و‬ ‫التوسع‬ ‫قابلية‬ ‫تدعم‬ ‫فقط‬ ‫القواميس‬ ‫و‬ ‫القوائم‬
‫ليس‬ ‫ولكن‬ ،‫الكتابة‬ ‫يتم‬ ‫حين‬ ‫تتوسع‬ ‫صحيح‬ ،‫بالضبط‬ ‫للتوسع‬ ‫قابلة‬ ‫ليست‬ ‫فهي‬،‫للتوسع‬ ‫دوال‬
.‫اﻷنواع‬ ‫على‬ ‫بايثون‬ ‫تفرضها‬ ‫التي‬ ‫بالقيود‬
‫العمومية‬
:‫نقول‬ ‫أن‬ ‫نستطيع‬ ‫عام‬ ‫وبشكل‬ ،‫المركبة‬ ‫الكائنات‬ ‫من‬ ‫العديد‬ ‫رأينا‬ ‫لقد‬
‫الكائنات‬ ‫من‬ ‫نوع‬ ‫أي‬ ‫تخزن‬ ‫أن‬ ‫يمكنها‬ ‫والمجموعات‬ ‫والقواميس‬ ‫القوائم‬-
‫المركب‬ ‫التداخل‬ ‫تدعم‬ ‫والمجموعات‬ ‫والقواميس‬ ‫القوائم‬-
32
‫دينامكيا‬ ‫وتصغر‬ ‫تكبر‬ ‫أن‬ ‫تستطيع‬ ‫والقواميس‬ ‫القوائم‬-
‫في‬ ‫المركبة‬ ‫المعلومات‬ ‫للتمثيل‬ ‫جدا‬ ‫مناسبة‬ ‫فهي‬ ‫المركب‬ ‫التداخل‬ ‫تدعم‬ ‫الكائنات‬ ‫هذه‬ ‫أن‬ ‫بسبب‬
:‫التالي‬ ‫المثال‬ ‫إلى‬ ‫انظر‬،‫التطبيق‬
>>> L = ['abc', [(1, 2), ([3], 4)], 5]
>>> L[1]
[(1, 2), ([3], 4)]
>>> L[1][1]
([3], 4)
>>> L[1][1][0]
[3]
>>> L[1][1][0][0]
3
‫عن‬ ‫اﻷعضاء‬ ‫إلى‬ ‫بالوصول‬ ‫قمنا‬ ‫قم‬ ‫ثم‬ ،‫متداخلة‬ ‫ومجموعات‬ ‫قوائم‬ ‫على‬ ‫تحوي‬ ‫قائمة‬ ‫بإنشاء‬ ‫قمنا‬
‫الكائن‬ ‫موقع‬ ‫إلى‬ ‫الوصول‬ ‫في‬ ‫اليمين‬ ‫إلى‬ ‫اليسار‬ ‫من‬ ‫تبدأ‬ ‫بايثون‬ ‫أن‬ ‫لحظ‬ ،‫المفهرس‬ ‫طريق‬
‫حتى‬ ‫مرة‬ ‫كل‬ ‫في‬ ‫المراد‬ ‫الكائن‬ ‫إلى‬ ‫الوصول‬ ‫في‬ ‫تعمقنا‬ ‫كيف‬ ‫ولحظ‬ ،‫المفهرس‬ ‫باستخدام‬
‫تقدمه‬ ‫وما‬ ‫المعطيات‬ ‫بنى‬ ‫في‬ ‫التداخل‬ ‫أهمية‬ ‫تعلم‬ ‫هنا‬ ‫ومن‬ ،‫بالضبط‬ ‫المراد‬ ‫الكائن‬ ‫إلى‬ ‫وصلنا‬
.‫اﻷغراض‬ ‫لتأدية‬ ‫سهلة‬ ‫أدوات‬ ‫من‬ ‫بايثون‬
‫المشتركة‬ ‫المراجع‬
‫أغلب‬ ‫في‬ ‫تريده‬ ‫ما‬ ‫هذا‬ ‫وعمليا‬،‫عنها‬ ‫نسخة‬ ‫وليس‬ ‫الكائنات‬ ‫إلى‬ ‫مراجع‬ ‫نخزن‬ ‫إننا‬ ‫سابقا‬ ‫قلنا‬ ‫لقد‬
‫مشتركة‬ ‫مراجع‬ ‫هناك‬ ‫كانت‬ ‫إذا‬ ‫وخاصة‬ ‫النقطة‬ ‫هذه‬ ‫في‬ ‫التركيز‬ ‫عليك‬ ‫ينبغى‬ ‫أحيانا‬ ‫ولكن‬،‫اﻷحيان‬
‫قائمة‬ ‫أنشأنا‬ ‫إذا‬ ‫المثال‬ ‫سبيل‬ ‫على‬ ،‫النتائج‬ ‫كل‬ ‫يغيير‬ ‫اﻷصلي‬ ‫المرجع‬ ‫في‬ ‫تغيير‬ ‫أي‬ ‫فإن‬
X
‫ثم‬
‫أخرى‬ ‫قائمة‬ ‫بإنشاء‬ ‫قمنا‬
L
‫القائمة‬ ‫إلى‬ ‫مرجعا‬ ‫وضمناها‬
X
‫قاموس‬ ‫إنشاء‬ ‫قمنا‬ ‫ثم‬
D
‫ضمنا‬ ‫وكذلك‬
‫القائمة‬ ‫إلى‬ ‫مرجع‬ ‫مدخلته‬ ‫قيم‬ ‫أحد‬
X
:‫التالي‬ ‫الشكل‬ ‫على‬ ‫المثال‬ ‫سيكون‬
>>> X = [1, 2, 3]
>>> L = ['a', X, 'b']
>>> D = {'x':X, 'y':2}
‫القائمة‬ ‫إلى‬ ‫مرجعين‬ ‫هناك‬ ‫الحالة‬ ‫هذه‬ ‫في‬
X
،‫إليها‬ ‫جديدة‬ ‫قيم‬ ‫إسناد‬ ‫تقبل‬ ‫القوائم‬ ‫أن‬ ‫وبما‬ ،
:‫جديدة‬ ‫قيمة‬ ‫إسناد‬ ‫عند‬ ‫يحدث‬ ‫ماذا‬ ‫فانظر‬
33
>>> X[1] = 'surprise' # changes all three references!
>>> L
['a', [1, 'surprise', 3], 'b']
>>> D
{'x': [1, 'surprise', 3], 'y': 2}
.‫النقطة‬ ‫لهذه‬ ‫منتبها‬ ‫فكنا‬
، ‫المقارنة‬
‫والمساواة‬
‫التحقق‬ ‫و‬
‫أعداد‬ ‫وكأنها‬ ،‫بينها‬ ‫فيما‬ ‫التحقق‬ ‫وعمليات‬ ‫المقارنة‬ ‫لعمليات‬ ‫تستجيب‬ ‫بايثون‬ ‫في‬ ‫كائنات‬ ‫جميع‬
:‫التالي‬ ‫المثال‬ ‫إلى‬ ‫انظر‬ ،‫المقارنات‬ ‫هذه‬ ‫بمثل‬ ‫تسمح‬ ‫ل‬ ‫التي‬ ‫اللغات‬ ‫من‬ ‫كثير‬ ‫بخلف‬ ‫وهذا‬
>>> L1 = [1, ('a', 3)] # same value, unique objects
>>> L2 = [1, ('a', 3)]
>>> L1 == L2, L1 is L2 # equivalent?, same object?
(True, False)
:‫التالي‬ ‫المثال‬ ‫وانظر‬ ،‫التحقق‬ ‫علقة‬ ‫و‬ ‫المساواة‬ ‫علقة‬ ‫اختبرنا‬ ‫وهنا‬
>>> L1 = [1, ('a', 3)]
>>> L2 = [1, ('a', 2)]
>>> L1 < L2, L1 == L2, L1 > L2 # less, equal, greater: a tuple of results?
(False, False, True)
:‫بايثون‬ ‫في‬ ‫المختلفة‬ ‫الكائنات‬ ‫بين‬ ‫المقارنة‬ ‫في‬ ‫ملحظات‬ ‫عدة‬ ‫وهنا‬
–
‫التقريبية‬ ‫بمقاديرها‬ ‫تقارن‬ ‫اﻷعداد‬
–
"‫أي‬ ‫بحرف‬ ‫حرفا‬ ‫أي‬ ،‫معجميا‬ ‫تقارن‬ ‫النصية‬ ‫السلسل‬
abc" < "ac
‫أن‬ ‫لحظ‬ "
c
‫أكبر‬
‫من‬
b
‫المعجم‬ ‫في‬
–
‫اليمين‬ ‫إلى‬ ‫اليسار‬ ‫من‬ ‫يقابله‬ ‫ما‬ ‫مع‬ ‫عنصر‬ ‫كل‬ ‫تقارن‬ ‫والمجموعات‬ ‫القوائم‬
–
‫والقيمة‬ ‫المفتاح‬ ‫من‬ ‫المخزنة‬ ‫القائمة‬ ‫باستخدام‬ ‫أيضا‬ ‫تقارن‬ ‫القواميس‬
‫مهمة‬ ‫تلميحات‬
‫مع‬ ‫أعمق‬ ‫بشكل‬ ‫بايثون‬ ‫فهم‬ ‫على‬ ‫تساعدك‬ ‫وحيل‬ ‫تلميحات‬ ‫سنأخذ‬ ‫فصل‬ ‫كل‬ ‫من‬ ‫القسم‬ ‫هذا‬ ‫في‬
:‫اللغة‬ ‫في‬ ‫مبتدئ‬ ‫أنت‬ ‫و‬ ‫إجابة‬ ‫لها‬ ‫تعرف‬ ‫ول‬ ‫تواجهك‬ ‫قد‬ ‫مشاكل‬ ‫حل‬
34
‫المشتركة‬ ‫المراجع‬ ‫إسناد‬
‫إلى‬ ‫يؤدي‬ ‫فهمها‬ ‫عدم‬ ‫النقطة؛ﻷن‬ ‫هذه‬ ‫شرح‬ ‫نكرر‬ ‫ونعود‬ ،‫مسبقا‬ ‫النقطة‬ ‫هذا‬ ‫عن‬ ‫تكلمنا‬ ‫قد‬
‫سنقوم‬ ‫المثال‬ ‫سبيل‬ ‫على‬ ،‫برنامجك‬ ‫ضمن‬ ‫المشتركة‬ ‫المراجع‬ ‫في‬ ‫يجري‬ ‫ما‬ ‫فهم‬ ‫في‬ ‫غموض‬
‫قائمة‬ ‫بإنشاء‬
L
‫قائمة‬ ‫بإنشاء‬ ‫نقوم‬ ‫ثم‬
M
‫القائمة‬ ‫نضمنها‬
L
‫القائمة‬ ‫في‬ ‫جديدة‬ ‫قيمة‬ ‫بإسناد‬ ‫نقوم‬ ‫ثم‬
L
:‫يحدث‬ ‫ماذا‬ ‫انظر‬ ،
>>> L = [1, 2, 3]
>>> M = ['X', L, 'Y'] # embed a reference to L
>>> M
['X', [1, 2, 3], 'Y']
>>> L[1] = 0 # changes M too
>>> M
['X', [1, 0, 3], 'Y']
‫تلميح‬
‫بما‬ ‫تقوم‬ ‫المشتركة‬ ‫المراجع‬ ‫وعادة‬ ،‫الضخمة‬ ‫البرامج‬ ‫في‬ ‫فقط‬ ‫مهما‬ ‫يكون‬ ‫الجزئية‬ ‫هذه‬ ‫تأثير‬ ‫إن‬
‫أضف‬ ‫بساطة‬ ‫بكل‬ ‫تفعل؟‬ ‫فماذا‬ ‫مرجع‬ ‫وليس‬ ‫نسخة‬ ‫تسند‬ ‫أن‬ ‫أردت‬ ‫إذا‬ ‫ولكن‬ ،‫بالضبط‬ ‫تريده‬
:‫التالي‬ ‫الشكل‬ ‫على‬ ‫نقطتين‬
>>> L = [1, 2, 3]
>>> M = ['X', L[:], 'Y'] # embed a copy of L
>>> L[1] = 0 # only changes L, not M
>>> L
[1, 0, 3]
>>> M
['X', [1, 2, 3], 'Y']
‫واحد‬ ‫مستوى‬ ‫على‬ ‫التكرار‬
‫هذا‬،‫المرات‬ ‫من‬ ‫عدد‬ ‫السلسلة‬ ‫إعادة‬ ‫عن‬ ‫عبارة‬ ‫أنه‬ ‫قلنا‬ ‫السلسلة‬ ‫تكرار‬ ‫عن‬ ‫سابقا‬ ‫تكلمنا‬ ‫عندما‬
‫انظر‬ ،‫بالضبط‬ ‫تريده‬ ‫عما‬ ‫تختلف‬ ‫النتيجة‬ ‫تكون‬ ‫متداخلة‬ ‫السلسلة‬ ‫تكون‬ ‫عندما‬ ‫ولكن‬ ‫صحيح‬ ‫اﻷمر‬
:‫التالي‬ ‫المثال‬ ‫إلى‬
35
Python.pdf
Python.pdf
Python.pdf
Python.pdf
Python.pdf
Python.pdf
Python.pdf
Python.pdf

Contenu connexe

Similaire à Python.pdf

مكونات البرمجية
مكونات البرمجيةمكونات البرمجية
مكونات البرمجيةguest98ae80
 
خوازميات و مباديء برمجــة (3) مفهوم البرمجـة
خوازميات و مباديء برمجــة  (3) مفهوم البرمجـةخوازميات و مباديء برمجــة  (3) مفهوم البرمجـة
خوازميات و مباديء برمجــة (3) مفهوم البرمجـةMahmoud Alfarra
 
مقدمة في البرمجة..الباب الثاني
مقدمة في البرمجة..الباب الثانيمقدمة في البرمجة..الباب الثاني
مقدمة في البرمجة..الباب الثانيtahanisaad
 
صياغة البرامج ولغات البرمجة
صياغة البرامج ولغات البرمجةصياغة البرامج ولغات البرمجة
صياغة البرامج ولغات البرمجةguest98ae80
 
عرض الوحدة الاولى
عرض الوحدة الاولىعرض الوحدة الاولى
عرض الوحدة الاولىNadoosh Nadoosh
 
برمجه حاسب1
برمجه حاسب1برمجه حاسب1
برمجه حاسب1jadalkinani1
 
برمجه حاسب1
برمجه حاسب1برمجه حاسب1
برمجه حاسب1jadalkinani1
 
أريد تعلم البرمجة لكنني لا أعرف من أين أبدأ.pdf
أريد تعلم البرمجة لكنني لا أعرف من أين أبدأ.pdfأريد تعلم البرمجة لكنني لا أعرف من أين أبدأ.pdf
أريد تعلم البرمجة لكنني لا أعرف من أين أبدأ.pdfNadiaMohamedSherif
 
لغات البرمجه بل تفصيل
لغات البرمجه بل تفصيللغات البرمجه بل تفصيل
لغات البرمجه بل تفصيلIbrheemJasim
 
Nabil al shahrani
Nabil al shahraniNabil al shahrani
Nabil al shahranina55
 
مقدمة في البرمجة..
مقدمة في البرمجة..مقدمة في البرمجة..
مقدمة في البرمجة..tahanisaad
 
C++&amp;python
C++&amp;pythonC++&amp;python
C++&amp;pythonsalem344
 
Programming languages concepts
Programming languages conceptsProgramming languages concepts
Programming languages conceptsFataho Ali
 
One note in education
One note in educationOne note in education
One note in educationDunia Hafez
 
Hanan Alsayegh
Hanan AlsayeghHanan Alsayegh
Hanan AlsayeghHanaSayegh
 
ملف بوروبينت اساسيات برمجة الحاسب والخوارزميات
ملف بوروبينت اساسيات برمجة الحاسب والخوارزمياتملف بوروبينت اساسيات برمجة الحاسب والخوارزميات
ملف بوروبينت اساسيات برمجة الحاسب والخوارزمياتomo6767g
 

Similaire à Python.pdf (20)

مكونات البرمجية
مكونات البرمجيةمكونات البرمجية
مكونات البرمجية
 
خوازميات و مباديء برمجــة (3) مفهوم البرمجـة
خوازميات و مباديء برمجــة  (3) مفهوم البرمجـةخوازميات و مباديء برمجــة  (3) مفهوم البرمجـة
خوازميات و مباديء برمجــة (3) مفهوم البرمجـة
 
مقدمة في البرمجة..الباب الثاني
مقدمة في البرمجة..الباب الثانيمقدمة في البرمجة..الباب الثاني
مقدمة في البرمجة..الباب الثاني
 
Multimedia guid
Multimedia guidMultimedia guid
Multimedia guid
 
صياغة البرامج ولغات البرمجة
صياغة البرامج ولغات البرمجةصياغة البرامج ولغات البرمجة
صياغة البرامج ولغات البرمجة
 
عرض الوحدة الاولى
عرض الوحدة الاولىعرض الوحدة الاولى
عرض الوحدة الاولى
 
عرض مقدمة في البرمجة 01
عرض مقدمة في البرمجة 01عرض مقدمة في البرمجة 01
عرض مقدمة في البرمجة 01
 
المحاضرة الثالثة لغات البرمجة
المحاضرة الثالثة  لغات البرمجةالمحاضرة الثالثة  لغات البرمجة
المحاضرة الثالثة لغات البرمجة
 
برمجه حاسب1
برمجه حاسب1برمجه حاسب1
برمجه حاسب1
 
برمجه حاسب1
برمجه حاسب1برمجه حاسب1
برمجه حاسب1
 
أريد تعلم البرمجة لكنني لا أعرف من أين أبدأ.pdf
أريد تعلم البرمجة لكنني لا أعرف من أين أبدأ.pdfأريد تعلم البرمجة لكنني لا أعرف من أين أبدأ.pdf
أريد تعلم البرمجة لكنني لا أعرف من أين أبدأ.pdf
 
لغات البرمجه بل تفصيل
لغات البرمجه بل تفصيللغات البرمجه بل تفصيل
لغات البرمجه بل تفصيل
 
Nabil al shahrani
Nabil al shahraniNabil al shahrani
Nabil al shahrani
 
مقدمة في البرمجة..
مقدمة في البرمجة..مقدمة في البرمجة..
مقدمة في البرمجة..
 
C++&amp;python
C++&amp;pythonC++&amp;python
C++&amp;python
 
Programming languages concepts
Programming languages conceptsProgramming languages concepts
Programming languages concepts
 
One note in education
One note in educationOne note in education
One note in education
 
Hanan Alsayegh
Hanan AlsayeghHanan Alsayegh
Hanan Alsayegh
 
لغه ال c+
لغه ال c+لغه ال c+
لغه ال c+
 
ملف بوروبينت اساسيات برمجة الحاسب والخوارزميات
ملف بوروبينت اساسيات برمجة الحاسب والخوارزمياتملف بوروبينت اساسيات برمجة الحاسب والخوارزميات
ملف بوروبينت اساسيات برمجة الحاسب والخوارزميات
 

Dernier

التعليم في عصر الذكاء الاصطناعي مواطن التحدي ومناهل الفرص _.pdf
التعليم في عصر الذكاء الاصطناعي مواطن التحدي ومناهل الفرص _.pdfالتعليم في عصر الذكاء الاصطناعي مواطن التحدي ومناهل الفرص _.pdf
التعليم في عصر الذكاء الاصطناعي مواطن التحدي ومناهل الفرص _.pdfNaseej Academy أكاديمية نسيج
 
درس الطباقالمحسنات المعنويّة، بهدف تحسين المعنى .pptx
درس الطباقالمحسنات المعنويّة، بهدف تحسين المعنى .pptxدرس الطباقالمحسنات المعنويّة، بهدف تحسين المعنى .pptx
درس الطباقالمحسنات المعنويّة، بهدف تحسين المعنى .pptxNaceraLAHOUEL1
 
الوعي المعلوماتي للعاملين في المكتبات و مراكز المعلومات.pptx
الوعي المعلوماتي للعاملين في المكتبات و مراكز المعلومات.pptxالوعي المعلوماتي للعاملين في المكتبات و مراكز المعلومات.pptx
الوعي المعلوماتي للعاملين في المكتبات و مراكز المعلومات.pptxMohamadAljaafari
 
الملكية الفكرية فى جمهورية مصر العربية للبحث العلمى
الملكية الفكرية فى جمهورية مصر العربية للبحث العلمىالملكية الفكرية فى جمهورية مصر العربية للبحث العلمى
الملكية الفكرية فى جمهورية مصر العربية للبحث العلمىGamal Mansour
 
نشأة القضية الفلسطينية وتطورها التاريخي .pptx
نشأة القضية الفلسطينية وتطورها التاريخي .pptxنشأة القضية الفلسطينية وتطورها التاريخي .pptx
نشأة القضية الفلسطينية وتطورها التاريخي .pptxNaceraLAHOUEL1
 
التعلم المؤسسي في المؤسسات الأكاديمية. pptx
التعلم المؤسسي في المؤسسات الأكاديمية. pptxالتعلم المؤسسي في المؤسسات الأكاديمية. pptx
التعلم المؤسسي في المؤسسات الأكاديمية. pptxyjana1298
 
وزارة التربية دورة استراتيجيات التعلم النشط -.ppt
وزارة التربية دورة استراتيجيات التعلم النشط -.pptوزارة التربية دورة استراتيجيات التعلم النشط -.ppt
وزارة التربية دورة استراتيجيات التعلم النشط -.pptAdamIdiris
 
الكيمياء 1.pdf.............................................
الكيمياء 1.pdf.............................................الكيمياء 1.pdf.............................................
الكيمياء 1.pdf.............................................zinhabdullah93
 

Dernier (8)

التعليم في عصر الذكاء الاصطناعي مواطن التحدي ومناهل الفرص _.pdf
التعليم في عصر الذكاء الاصطناعي مواطن التحدي ومناهل الفرص _.pdfالتعليم في عصر الذكاء الاصطناعي مواطن التحدي ومناهل الفرص _.pdf
التعليم في عصر الذكاء الاصطناعي مواطن التحدي ومناهل الفرص _.pdf
 
درس الطباقالمحسنات المعنويّة، بهدف تحسين المعنى .pptx
درس الطباقالمحسنات المعنويّة، بهدف تحسين المعنى .pptxدرس الطباقالمحسنات المعنويّة، بهدف تحسين المعنى .pptx
درس الطباقالمحسنات المعنويّة، بهدف تحسين المعنى .pptx
 
الوعي المعلوماتي للعاملين في المكتبات و مراكز المعلومات.pptx
الوعي المعلوماتي للعاملين في المكتبات و مراكز المعلومات.pptxالوعي المعلوماتي للعاملين في المكتبات و مراكز المعلومات.pptx
الوعي المعلوماتي للعاملين في المكتبات و مراكز المعلومات.pptx
 
الملكية الفكرية فى جمهورية مصر العربية للبحث العلمى
الملكية الفكرية فى جمهورية مصر العربية للبحث العلمىالملكية الفكرية فى جمهورية مصر العربية للبحث العلمى
الملكية الفكرية فى جمهورية مصر العربية للبحث العلمى
 
نشأة القضية الفلسطينية وتطورها التاريخي .pptx
نشأة القضية الفلسطينية وتطورها التاريخي .pptxنشأة القضية الفلسطينية وتطورها التاريخي .pptx
نشأة القضية الفلسطينية وتطورها التاريخي .pptx
 
التعلم المؤسسي في المؤسسات الأكاديمية. pptx
التعلم المؤسسي في المؤسسات الأكاديمية. pptxالتعلم المؤسسي في المؤسسات الأكاديمية. pptx
التعلم المؤسسي في المؤسسات الأكاديمية. pptx
 
وزارة التربية دورة استراتيجيات التعلم النشط -.ppt
وزارة التربية دورة استراتيجيات التعلم النشط -.pptوزارة التربية دورة استراتيجيات التعلم النشط -.ppt
وزارة التربية دورة استراتيجيات التعلم النشط -.ppt
 
الكيمياء 1.pdf.............................................
الكيمياء 1.pdf.............................................الكيمياء 1.pdf.............................................
الكيمياء 1.pdf.............................................
 

Python.pdf

  • 1. ‫ﻣﻮﻗﻊ‬ ‫ﻣﻦ‬ ‫اﻟﻤﻠﻒ‬ ‫ﺗﺤﻤﻴﻞ‬ ‫ﺗﻢ‬ ‫اﻟﺘﻘﻨﻴﺔ‬ ‫اﻟﺒﻮﺻﻠﺔ‬ www.boosla.com
  • 2. ‫سهولة‬ ‫بكل‬ ‫بايثون‬ ‫تعلم‬ :‫بقلم‬ ‫السعيدي‬ ‫عامر‬ ‫بن‬ ‫فهد‬ OMLX 2005 1
  • 3. ‫مقدمة‬ ‫التركيب‬ ‫حيث‬ ‫ومن‬ ‫القراءة‬ ‫و‬ ‫الكتابة‬ ‫حيث‬ ‫من‬ ‫بالسهولة‬ ‫تتميز‬ ‫بايثون‬ ‫لغة‬ ‫فهي‬ ،‫اﻵن‬ ‫المعروفة‬ ‫المنصات‬ ‫كل‬ ‫في‬ ‫بها‬ ‫تبرمج‬ ‫أن‬ ‫تستطيع‬ ‫و‬ ،‫لها‬ ‫النحوي‬ ‫لغة‬ ‫تضارع‬ Java .‫تقريبا‬ ‫اﻷغراض‬ ‫لكل‬ ‫تصلح‬ ‫و‬ ،‫العريقة‬ ‫علي‬ ‫يممن‬ ‫أن‬ ‫ال‬ ‫أسمأل‬ ‫التمي‬ ،‫القليلة‬ ‫الورقات‬ ‫هذه‬ ‫كتابمة‬ ‫على‬ ‫شجعنمي‬ ‫ولقمد‬ ‫اللغمة‬ ‫هذه‬ ‫وكأن‬ ،‫اللغمة‬ ‫هذه‬ ‫عمن‬ ‫تتكلم‬ ‫التمي‬ ‫العربيمة‬ ‫المصمادر‬ ‫قلة‬ ‫بإتمامهما‬ .‫الورقات‬ ‫هذه‬ ‫كتابة‬ ‫عناء‬ ‫فتجشمت‬ ،‫التقنية‬ ‫عالم‬ ‫في‬ ‫موجودة‬ ‫ليست‬ :‫الكتاب‬ ‫حول‬ ‫ملحظات‬ ‫لرخصة‬ ‫خاضع‬ )‫(حر‬ ‫مفتوح‬ ‫الكتاب‬ ‫هذا‬ GNU FDL ‫(أي‬ GNU Free Documentation License ً‫مخالفا‬ ‫يعد‬ ‫ل‬ ‫الكتاب‬ ‫هذا‬ ‫من‬ ‫القتباس‬ ‫أو‬ ‫تصوير‬ ‫أو‬ ‫نسخ‬ ) ‫فإنه‬ )... ‫الشبكة‬ ‫من‬ ‫تنزيل‬ ‫أو‬ ‫استعارة‬ ‫أو‬ ‫هدية‬ ‫أو‬ ‫(شراء‬ ‫طريقه‬ ‫بأي‬ ‫عليه‬ ‫حصلت‬ ‫إذا‬ ‫للقانون‬ ‫مشتق‬ ‫منتج‬ ‫عمل‬ ‫في‬ ‫استخدمته‬ ‫إذا‬ ‫ولكن‬ .ً‫مجانا‬ ‫تنزيله‬ ‫ويمكنك‬ ، ‫فيه‬ ‫والتعديل‬ ‫نسخه‬ ‫لك‬ ‫يحق‬ ‫لرخصة‬ ً‫خاضعا‬ ‫يصبح‬ ‫فإنه‬ FDL ‫وعليك‬ ‫العمل‬ ‫بهذا‬ ‫قام‬ ‫من‬ ‫بأنك‬ ‫الدعاء‬ ‫يمكنك‬ ‫ل‬ ‫كما‬ ‫لسنا‬ ‫لمحتوياته‬ ‫ضمان‬ ‫أو‬ ‫كفالة‬ ‫أي‬ ‫دون‬ ‫من‬ ‫هو‬ ‫كما‬ ‫الكتاب‬ ‫هذا‬ ‫يقدم‬ ‫الصلي‬ ‫لمؤلفه‬ ‫الشارة‬ ‫على‬ ‫أو‬ ‫جهازك‬ ‫على‬ ‫و‬ ‫عليك‬ ‫يقع‬ )‫ضمني‬ ‫ول‬ ‫مباشر‬ ‫بشكل‬ ‫(ل‬ ‫سلبي‬ ‫أثر‬ ‫أي‬ ‫عن‬ ‫مسؤولين‬ .‫قطتك‬ ‫أرابيان‬ ‫منصة‬ ‫على‬ ‫الكتاب‬ ‫هذا‬ ‫كتب‬ 0.6 ‫برنامج‬ ‫باستخدام‬ OpenOffice.org 2.0 ‫لذا‬ ‫المنصة‬ ‫في‬ ‫عليه‬ ‫تعدل‬ ‫أن‬ ‫فحاول‬ ،‫التنسيق‬ ‫يذهب‬ ‫فلربما‬ ‫الويندوز‬ ‫منصة‬ ‫على‬ ‫فتحه‬ ‫حاولت‬ ‫إذا‬ .‫جديد‬ ‫من‬ ‫الجهد‬ ‫إعادة‬ ‫لتجنب‬ ‫فيها‬ ‫إنشأ‬ ‫التي‬ ‫العمل‬ ‫يتم‬ ‫حتى‬ ،‫لكماله‬ ‫الحماس‬ ‫عندهم‬ ‫أناس‬ ‫يجد‬ ‫أن‬ ‫المؤلف‬ ‫ويسعد‬ ،‫ناقص‬ ‫الكتاب‬ ‫هذا‬ ،‫جيدة‬ ‫بصورة‬ ‫الكتاب‬ ‫عن‬ ‫معلومات‬ : ‫السعيدي‬ ‫عامر‬ ‫بن‬ ‫فهد‬ :‫تأليف‬ ‫الكتروني‬ ‫بريد‬ fahad.alsaidi@gmail.com ‫ب‬.‫ص‬ 370 ‫عمان‬ ‫سلطنة‬ -‫الخابورة‬ ‫البريدي‬ ‫الرمز‬ 326 ‫رخصة‬ ‫وفق‬ ‫محفوظة‬ ‫الطبع‬ ‫حقوق‬ FDL Copyright (c) 2005 under terms of FDL license 2
  • 4. ‫اﻷولى‬ ‫الوحدة‬ : ‫أساسيات‬ Python ‫اﻷول‬ ‫الفصل‬ : ‫البداية‬ ‫الثاني‬ ‫الفصل‬ : ‫العمليات‬ ‫و‬ ‫اﻷنواع‬ ‫الثالث‬ ‫الفصل‬ : ‫اﻷساسية‬ ‫التعابير‬ ‫الثالث‬ ‫الفصل‬ : ‫الوظائف‬ ‫الرابع‬ ‫الفصل‬ : ‫الوحدات‬ ‫الخامس‬ ‫الفصل‬ : ‫الصفوف‬ ‫السادس‬ ‫الفصل‬ : ‫الستثناءات‬ 3
  • 5. ‫اﻷول‬ ‫الفصل‬ : ‫البداية‬ :‫المهمة‬ ‫النقاط‬ ‫لغة‬ ‫لماذا‬ Python ‫؟‬ ‫برنامج‬ ‫تشغل‬ ‫كيف‬ ‫بلغة‬ ‫مكتوب‬ Python ‫؟‬ ‫بـ‬ ‫الخاصة‬ ‫التطوير‬ ‫بيئات‬ ‫معرفة‬ Python ‫نتعلم‬ ‫لماذا‬ ‫و‬ ‫بايثون؟‬ ‫لغة‬ ‫نشأة‬ ‫كيف‬ ‫لنعرف‬ ،‫بايثون‬ ‫لغة‬ ‫رحاب‬ ‫في‬ ‫سويا‬ ‫سنمضي‬ ‫الفصل‬ ‫هذا‬ ‫في‬ ‫في‬ ‫يبدأ‬ ‫أن‬ ‫يريد‬ ‫لمن‬ ‫ضرورية‬ ‫اﻷسئلة‬ ‫هذه‬ ‫كل‬ ‫بايثون؟‬ ‫لغة‬ ‫لها‬ ‫تصلح‬ ‫التي‬ ‫مجالت‬ ‫ما‬ ‫و‬ ‫بايثون؟‬ ‫لغة‬ ... ‫سريعا‬ ‫فلننتقل‬ ، ! ‫لغة‬ ‫أي‬ ‫تعلم‬ ‫لغة‬ ‫لماذا‬ Python ‫؟‬ ‫عام‬ ‫في‬ ١٩٩٠ ‫قام‬ ‫م‬ Guido van Rossum ‫اللغة‬ ‫هذه‬ ‫استقى‬ ‫وقد‬ ،‫بايثون‬ ‫لغة‬ ‫باختراع‬ :‫أمثال‬ ‫من‬ ‫سابقة‬ ‫لغات‬ ‫عدة‬ ‫من‬ C ++ ‫و‬ C ‫و‬ Modula-3 ‫و‬ ABC ‫و‬ Icon . ‫ممن‬ ‫وهمي‬ ،‫بهما‬ ‫المكتوب‬ ‫البرناممج‬ ‫لتشغيمل‬ ‫بناء‬ ‫إلى‬ ‫تحتاج‬ ‫ل‬ ‫التمي‬ ‫النصمية‬ ‫اللغات‬ ‫ممن‬ ‫بايثون‬ ‫وتعتمبر‬ ‫اللغات‬ ‫منف‬‫م‬‫ص‬ ‫مي‬‫م‬‫ف‬ ‫اﻷول‬ ‫الخيار‬ ‫تكون‬ ‫أن‬ ‫ما‬‫م‬‫أهله‬ ‫ما‬‫م‬‫مم‬ ‫مارم‬‫م‬‫ص‬ ‫مل‬‫م‬‫بشك‬ ‫مة‬‫م‬‫المنظم‬ ‫و‬ ‫مهلة‬‫م‬‫الس‬ ‫اللغات‬ ‫كمل‬ ‫فائدة‬ ‫نمبين‬ ‫و‬ ‫جدول‬ ‫فمي‬ ‫بايثون‬ ‫لغمة‬ ‫مميزات‬ ‫وسمنلخص‬ ،‫الجامعات‬ ‫فمي‬ ‫تعتممد‬ ‫التمي‬ ‫اﻷكاديميمة‬ .. ‫مميزة‬ ‫المميزات‬ ‫الفوائد‬ ‫السي‬ ‫لغة‬ ‫مثل‬ ‫ربط‬ ‫أو‬ ‫بناء‬ ‫إلى‬ ‫تحتاج‬ ‫ل‬ ‫ملحوظ‬ ‫بشكل‬ ‫فيها‬ ‫التطوير‬ ‫دورة‬ ‫تسريع‬ ‫المتغيرات‬ ‫أنواع‬ ‫على‬ ‫تحتوي‬ ‫ل‬ ‫مرونة‬ ‫أكثر‬ ‫و‬ ‫أبسط‬ ‫و‬ ‫أسهل‬ ‫تصبح‬ ‫البرامج‬ ‫للذاكرة‬ ‫آلية‬ ‫إدارة‬ ‫الكود‬ ‫تنقيح‬ ‫في‬ ‫الجهد‬ ‫يجنبك‬ ‫النفايات‬ ‫مجمع‬ ‫التوجه‬ ‫غرضية‬ ‫برمجة‬ ++ ‫مع‬ ‫التكامل‬ ‫يمنحك‬ C ‫و‬ Java ‫و‬ COM ‫السي‬ ‫لغة‬ ‫مع‬ ‫التمدد‬ ‫و‬ ‫التضمين‬ ‫إمكانية‬ ‫النظام‬ ‫مع‬ ‫التحاور‬ ‫إمكانية‬ ‫و‬ ‫اﻷداء‬ ‫تحسين‬ ‫التصميم‬ ‫و‬ ‫الكتابة‬ ‫قواعد‬ ‫في‬ ‫الوضوح‬ ‫و‬ ‫البساطة‬ ‫و‬ ‫الصيانة‬ ‫إمكانية‬ ‫و‬ ‫المقروئية‬ ‫من‬ ‫عالية‬ ‫درجة‬ ‫التعليم‬ ‫سهولة‬ ‫عالية‬ ‫محمولية‬ ‫و‬ ‫اللينكس‬ ‫و‬ ‫الويندوز‬ :‫منصات‬ ‫عدة‬ ‫على‬ ‫تعمل‬ ‫الكود‬ ‫تغيير‬ ‫بدون‬ ‫اليونكس‬ ‫و‬ ‫الماكنتوش‬ ‫المصدر‬ ‫مفتوحة‬ ‫ضامن‬ ‫و‬ ‫فيها‬ ‫التعديل‬ ‫و‬ ‫توزيعها‬ ‫في‬ ‫الحرية‬ ‫تعطيك‬ ‫لبقائها‬ 4
  • 6. ‫المميزات‬ ‫الفوائد‬ ‫المستوى‬ ‫عالية‬ ‫العمليات‬ ‫و‬ ‫البيانات‬ ‫أنواع‬ ‫دعم‬ ‫المدمجة‬ ‫الكائنات‬ ‫أنواع‬ ‫باستخدام‬ ‫سريع‬ ‫تطوير‬ ‫السي‬ ‫لوحدات‬ ‫ألي‬ ‫تحميل‬ ‫التنفيذية‬ ‫الملفات‬ ‫تصغير‬ ‫و‬ ‫مبسطة‬ ‫امتدادات‬ ‫القياسية‬ ‫اﻹنترنت‬ ‫بروتوكولت‬ ‫دعم‬ ‫و‬ ‫اللكتروني‬ ‫البريد‬ ‫إلى‬ ‫الوصول‬ ‫تسهيل‬ HTTP .. ‫ثالثة‬ ‫أطراف‬ ‫من‬ ‫و‬ ‫المضمنة‬ ‫المكتبات‬ ‫كثرة‬ ‫البرامج‬ ‫تطوير‬ ‫تسهيل‬ ‫و‬ ‫تسريع‬ ‫مما‬ ‫واحد‬ ‫آن‬ ‫في‬ ‫قوتها‬ ‫مع‬ ‫لها‬ ‫تعلمك‬ ‫أثناء‬ ‫ستلحظه‬ ‫ما‬ ‫وهذا‬ ، ‫التعلم‬ ‫سهلة‬ ‫أنها‬ ‫مميزاتها‬ ‫أهم‬ ‫و‬ :‫منها‬ ‫مجموعة‬ ‫وسنذكر‬ ،‫الشركات‬ ‫من‬ ‫لكثير‬ ‫اﻷمثل‬ ‫الخيار‬ ‫جعلها‬ – Yahoo Maps – Yahoo Groups – Google – Ultraseek – Jasc Software, Paint Shop Pro – National Weather Service – NASA – Red Hat – SGI, Inc – IBM – Real Networks ‫؟‬ ‫بايثون‬ ‫لغة‬ ‫مجالت‬ ‫ما‬ ‫في‬ ‫السهولة‬ ‫و‬ ‫التطوير‬ ‫سرعة‬ ‫تتطلب‬ ‫التي‬ ‫المجالت‬ ‫جميع‬ ‫خاضت‬ ‫بايثون‬ ،‫شديد‬ ‫باختصار‬ ‫المجالت‬ ‫فمن‬ ،‫التطبيق‬ ‫سرعة‬ ‫إلى‬ ‫تحتاج‬ ‫التي‬ ‫المجالت‬ ‫في‬ ‫قليل‬ ‫تأخرت‬ ‫و‬ ،‫اﻷول‬ ‫المجال‬ :‫بايثون‬ ‫لغة‬ ‫فيها‬ ‫تتميز‬ ‫التي‬ – ‫مباشرة‬ ‫النظام‬ ‫مع‬ ‫تتعامل‬ ‫التي‬ ‫اﻷدوات‬ ‫مجال‬ – ‫اﻹنترنت‬ ‫برمجة‬ ‫مجال‬ – ‫الرسومية‬ ‫المستخدم‬ ‫واجهات‬ ‫برمجة‬ ‫مجال‬ – ‫البيانات‬ ‫قواعد‬ ‫برمجة‬ ‫مجال‬ – ‫الموزعة‬ ‫البرمجة‬ ‫مجال‬ 5
  • 7. ‫بشكل‬ ‫المبرمج‬ ‫عمل‬ ‫تسهل‬ ‫كثيرة‬ ‫أدوات‬ ‫وجود‬ ‫لها‬ ‫سهّل‬ ‫مما‬ ،‫المجالت‬ ‫من‬ ‫الكثير‬ ‫وغيرها‬ :‫اﻷدوات‬ ‫هذه‬ ‫أشهر‬ ‫فمن‬ ،‫ملحظ‬ ‫المجال‬ ‫اﻷدوات‬ ‫النظام‬ ‫برمجة‬ Sockets ‫و‬ threads ‫و‬ signals ‫و‬ pipes ‫و‬ RPC calls ‫و‬ POSIX bindings ‫الرسومية‬ ‫المستخدم‬ ‫واجهات‬ Tk ‫و‬ PMW ‫و‬ MFC ‫و‬ X11 ‫و‬ wxPython ‫و‬ KDE ‫و‬ Gnome ‫البيانات‬ ‫قواعد‬ ‫واجهات‬ Oracle ‫و‬ sybase ‫و‬ PostGres ‫و‬ mSQL ‫و‬ persistence ‫و‬ dbm ‫أدوات‬ Microsoft Windows MFC ‫و‬ COM ‫و‬ ActiveX ‫و‬ ASP ‫و‬ ODBC . ‫و‬ NET ‫النترنت‬ ‫أدوات‬ Jpython ‫و‬ CGI tools ‫و‬ HTML/XML parsers ‫و‬ email tools ‫و‬ Zope ‫الموزعة‬ ‫الكائنات‬ DCOM ‫و‬ CORBA ‫و‬ ILU ‫و‬ Fnorb ‫مشهورة‬ ‫أخرى‬ ‫أدوات‬ SWIG ‫و‬ PIL ‫و‬ regular expressions ‫و‬ numPy ‫و‬ cryptography ‫بلغة‬ ‫مكتوب‬ ‫برنامج‬ ‫تشغل‬ ‫كيف‬ Python ‫؟‬ ‫و‬ ،‫البرنامج‬ ‫لتشغيل‬ ‫فقط‬ ‫اللغة‬ ‫مفسر‬ ‫لديك‬ ‫يكون‬ ‫أن‬ ‫عليك‬ ‫يتوجب‬ ‫فإنه‬ ، ‫نصية‬ ‫بايثون‬ ‫لغة‬ ‫أن‬ ‫بما‬ ‫تعمل‬ ‫الذي‬ ‫النظام‬ ‫حسب‬ ‫المفسر‬ ‫نزل‬ ‫و‬ ، ‫بايثون‬ ‫لغة‬ ‫موقع‬ ‫إلى‬ ‫اذهب‬ ‫المفسر‬ ‫على‬ ‫للحصول‬ : ‫عليه‬ http://www.python.org ‫بلحقة‬ ‫الملف‬ ‫حفظ‬ ‫ثم‬ ‫نصوص‬ ‫محرر‬ ‫إلى‬ ‫ستحتاج‬ ‫بايثون‬ ‫برنامج‬ ‫لكتابة‬ ‫الحال‬ ‫بطبيعة‬ py . :‫اكتب‬ ‫و‬ ‫اﻷوامر‬ ‫سطر‬ ‫على‬ ‫ادخل‬ ‫ذلك‬ ‫بعد‬ 6 ‫النظام‬ ‫على‬ ‫مثبة‬ ‫افتراضيا‬ ‫فهي‬ ،‫اﻷساسية‬ ‫للغات‬ ‫من‬ ‫اللينكس‬ ‫نظام‬ ‫في‬ ‫بايثون‬ ‫لغة‬ ‫أرابيان‬ ‫توزيعة‬ ‫على‬ ‫مبنية‬ ‫ستكون‬ ‫الدروس‬ ‫هذه‬ ‫أن‬ ‫وخاصة‬ ، ‫النظام‬ ‫هذا‬ ‫استخدام‬ ‫يفضل‬ ‫لذلك‬ ‫الويندوز‬ ‫منصة‬ ‫على‬ ‫العمل‬ ‫من‬ ‫هذا‬ ‫يمنع‬ ‫ل‬ ‫لكن‬ ‫و‬
  • 8. >> python program.py ‫بحيث‬ program ‫سطر‬ ‫في‬ ‫اكتب‬ ، ‫بايثون‬ ‫لغة‬ ‫محث‬ ‫مع‬ ‫مباشرة‬ ‫للتعامل‬ ‫و‬ ،‫الملف‬ ‫اسم‬ : ‫اﻷوامر‬ >> python : ‫اكتب‬ ، ‫لك‬ ‫برنامج‬ ‫أول‬ ‫لكتابة‬ ‫و‬ >>> print ' My name is Fahad Al- Saidi' .‫قوتها‬ ‫و‬ ‫بايثون‬ ‫سهولة‬ ‫مدى‬ ‫بنفسك‬ ‫ستعرف‬ ،‫بايثون‬ ‫بواسطة‬ ‫لك‬ ‫برنامج‬ ‫ﻷول‬ ‫كتابتك‬ ‫بعد‬ ‫بـ‬ ‫الخاصة‬ ‫التطوير‬ ‫بيئات‬ Python ‫وهناك‬ ،‫الروتنية‬ ‫العمليات‬ ‫من‬ ‫الكثير‬ ‫أداء‬ ‫عليك‬ ‫تسهل‬ ‫تطوير‬ ‫بيئة‬ ‫امتلك‬ ‫في‬ ‫الوقت‬ ‫مع‬ ‫سترغب‬ ‫تابع‬ ‫فقط‬ ، ‫رغباتك‬ ‫حسب‬ ‫تختار‬ ‫أن‬ ‫إل‬ ‫عليك‬ ‫ما‬ ، ‫بايثون‬ ‫بلغة‬ ‫الخاصة‬ ‫التطوير‬ ‫بيئات‬ ‫من‬ ‫الكثير‬ : ‫الرابطين‬ ‫هذين‬ http://wiki.python.org/moin/PythonEditors http://wiki.python.org/moin/IntegratedDevelopmentEnvironments ‫تعلم‬ ‫في‬ ‫معنا‬ ‫مشوارك‬ ‫لتكمل‬ ‫عادي‬ ‫نصوص‬ ‫محرر‬ ‫مع‬ ‫بايثون‬ ‫لغة‬ ‫مفسر‬ ‫تملك‬ ‫أن‬ ‫يكفيك‬ ‫لكن‬ ‫و‬ ‫بايثون‬ ‫لغة‬ 7
  • 9. ‫الثاني‬ ‫الفصل‬ : ‫العمليات‬ ‫و‬ ‫اﻷنواع‬ :‫المهمة‬ ‫النقاط‬ ‫بايثون‬ ‫برنامج‬ ‫بنية‬ ‫المدمجة؟‬ ‫النواع‬ ‫نستخدم‬ ‫لماذا‬ ‫العداد‬ ‫النصية‬ ‫السلسل‬ ‫القوائم‬ ‫القواميس‬ ‫المجموعات‬ ‫الملفات‬ ‫للكائنات‬ ‫العامة‬ ‫الخصائص‬ ‫مهمة‬ ‫تلميحات‬ ‫الملخص‬ ‫بايثون‬ ‫برنامج‬ ‫بنية‬ ‫المكتوب‬ ‫البرنامج‬ ‫بنية‬ ‫على‬ ‫نعرج‬ ‫أن‬ ‫المهم‬ ‫من‬ ،‫بايثون‬ ‫لغة‬ ‫تفاصيل‬ ‫غمار‬ ‫خوض‬ ‫في‬ ‫البدء‬ ‫قبل‬ :‫نقول‬ ‫وباختصار‬ ،‫بايثون‬ ‫بلغة‬ ‫البرمجة‬ ‫حول‬ ‫عام‬ ‫بشكل‬ ‫واضح‬ ‫تصور‬ ‫لديك‬ ‫ليتكون‬ ،‫بايثون‬ ‫بلغة‬ :‫التالي‬ ‫نحو‬ ‫على‬ ،‫وكائنات‬ ،‫عبارات‬ ‫و‬ ،‫وحدات‬ :‫أجزاء‬ ‫ثلثة‬ ‫إلى‬ ‫يحلل‬ ‫أن‬ ‫يمكن‬ ‫بايثون‬ ‫برنامج‬ ١ ‫وحدات‬ ‫من‬ ‫يتكون‬ ‫البرنامج‬ - ٢ ‫عبارات‬ ‫على‬ ‫تحتوي‬ ‫الوحدات‬ ‫و‬ - ٣ .‫تعالجها‬ ‫و‬ ‫الكائنات‬ ‫تنشأ‬ ‫العبارات‬ ‫و‬ - ‫المدمجة؟‬ ‫النواع‬ ‫نستخدم‬ ‫لماذا‬ ‫الوقت‬ ‫من‬ ‫كم‬ ‫ستدرك‬ ‫الجافا‬ ‫أو‬ ‫بلس‬ ‫بلس‬ ‫السي‬ ‫أو‬ ‫السي‬ ‫باستخدام‬ ‫سابقا‬ ‫برمجت‬ ‫قد‬ ‫كنت‬ ‫إذا‬ 8
  • 10. ‫للعصاب‬ ‫مرهق‬ ‫هو‬ ‫وكم‬،‫المعطيات‬ ‫بنى‬ ‫يسمى‬ ‫بما‬ ‫الذاكرة‬ ‫في‬ ‫تنسيقها‬ ‫و‬ ‫الكائنات‬ ‫ترتيب‬ ‫يستغرق‬ ‫البحث‬ ‫و‬ ‫ترتيبها‬ ‫و‬ ‫إليها‬ ‫الوصول‬ ‫كيفية‬ ‫و‬ ‫الذاكرة‬ ‫مع‬ ‫التعامل‬ ‫و‬ ‫الذاكرة‬ ‫في‬ ‫الكائنات‬ ‫تلك‬ ‫ترتيب‬ ..‫خللها‬ ‫من‬ ‫ممن‬ ‫بكائنات‬ ‫تزودك‬ ‫بايثون‬ ‫ﻷن‬ ، ‫بعيدا‬ ‫عنمك‬ ‫يذهمب‬ ‫الجهمد‬ ‫ذلك‬ ‫معظمم‬، ‫المثاليمة‬ ‫بايثون‬ ‫براممج‬ ‫فمي‬ ‫اكتمب‬ ‫ثمم‬ ‫المشكلة‬ ‫حمل‬ ‫فمي‬ ‫فكمر‬ ‫فقمط‬ ،‫السمهولة‬ ‫بمنتهمى‬ ‫اﻷشياء‬ ‫تلك‬ ‫برمجمة‬ ‫تجعمل‬ ‫اللغمة‬ ‫صملب‬ ‫تريده‬ ‫ما‬ ‫كل‬ ،‫الحقيقة‬ ‫في‬ .‫الكائنات‬ ‫ترتيب‬ ‫في‬ ‫نفسك‬ ‫ترهق‬ ‫أن‬ ‫فصاعدا‬ ‫اﻵن‬ ‫من‬ ‫داعي‬ ‫ل‬ ،‫الحل‬ .‫خاصة‬ ‫أنواع‬ ‫إلى‬ ‫بحاجة‬ ‫تكن‬ ‫لم‬ ‫ما‬ ‫به‬ ‫تزودك‬ ‫اﻷنواع‬ ‫تلك‬ ‫ستجد‬ :‫منها‬ ‫أسباب‬ ‫لعدة‬، ‫الكائنات‬ ‫تلك‬ ‫تفضل‬ ‫أنك‬ ‫اﻷحيان‬ ‫غالب‬ ‫في‬ ‫ستجد‬ ‫الكتابة‬ ‫سهلة‬ ‫البسيطة‬ ‫البرامج‬ ‫تجعل‬ ‫المدمجة‬ ‫كائنات‬ ‫مشاكمل‬ ‫عمن‬ ‫بعيدا‬ ‫احتياجاتمك‬ ‫جميمع‬ ‫تلبمي‬ ‫المضمنمة‬ ‫الكائنات‬ ‫أنواع‬ ‫أن‬ ‫سمتجد‬ ‫البسميطة‬ ‫للمهمات‬ ‫ممي‬‫م‬‫ف‬ )‫ممس‬‫م‬‫(القوامي‬ ‫الجداول‬ ‫و‬ )‫القوائم‬ ( ‫المجموعات‬ ‫ممل‬‫م‬‫مث‬ ‫اﻷشياء‬ ‫ممتجد‬‫م‬‫س‬ ‫ﻷن‬.‫المعطيات‬ ‫ممى‬‫م‬‫بن‬ .‫المدمجة‬ ‫بايثون‬ ‫كائنات‬ ‫باستخدام‬ ‫فقط‬ ‫أنجز‬ ‫العمل‬ ‫من‬ ‫كثيرا‬ ‫أن‬ ‫وستجد‬ ،‫يدك‬ ‫متناول‬ ‫التوسعات‬ ‫تدعم‬ ‫و‬ ‫بالكائنات‬ ‫تزودك‬ ‫بايثون‬ ‫مثمل‬ ‫المضمنمة‬ ‫اﻷدوات‬ ‫تدعمم‬ ‫التمي‬ ‫اللغات‬ ‫ممن‬ ‫الطرق‬ ‫بعمض‬ ‫فمي‬ ‫تسمتعير‬ ‫بايثون‬ Lisp ‫اللغات‬ ‫و‬ ++ ‫مثل‬ ‫يحتاجه‬ ‫الذي‬ ‫العمل‬ ‫إطار‬ ‫أو‬ ‫المطلوبة‬ ‫باﻷدوات‬ ‫تزويدها‬ ‫في‬ ‫المبرمج‬ ‫على‬ ‫تعتمد‬ ‫التي‬ C ‫تحتاج‬ ‫ل‬ ‫الغالب‬ ‫فمي‬ ‫أنمك‬ ‫إل‬ ‫بايثون‬ ‫فمي‬ ‫فريدة‬ ‫كائنات‬ ‫أنواع‬ ‫تنشيمء‬ ‫أن‬ ‫سمتطيع‬ ‫أنمك‬ ‫ممن‬ ‫بالرغمم‬ ‫و‬ .‫ذلك‬ ‫إلى‬ ‫المخصصة‬ ‫المعطيات‬ ‫بنى‬ ‫من‬ ‫كفاءة‬ ‫أكثر‬ ‫المدمجة‬ ‫الكائنات‬ ‫لزيادة‬ ‫مي‬‫م‬‫بالس‬ ‫معمولة‬ ‫و‬ ‫محسممنة‬ ‫معطيات‬ ‫بنممى‬ ‫خوارزميات‬ ‫تسممتخدم‬ ‫بايثون‬ ‫فممي‬ ‫المدمجممة‬ ‫اﻷنواع‬ ‫ما‬‫م‬‫مضاعف‬ ‫جهدا‬ ‫متبذل‬‫م‬‫س‬ ‫مك‬‫م‬‫أن‬ ‫إل‬ ‫مة‬‫م‬‫مشابه‬ ‫كائنات‬ ‫أنواع‬ ‫مب‬‫م‬‫تكت‬ ‫أن‬ ‫متطيع‬‫م‬‫تس‬ ‫مك‬‫م‬‫أن‬ ‫مم‬‫م‬‫وبالرغ‬ ،‫مرعة‬‫م‬‫الس‬ .‫بايثون‬ ‫في‬ ‫الكائنات‬ ‫أنواع‬ ‫أداء‬ ‫على‬ ‫للحصول‬ ‫مد‬‫م‬‫ق‬ ‫مت‬‫م‬‫كن‬ ‫إذا‬ ،‫مل‬‫م‬‫الفص‬ ‫هذا‬ ‫مي‬‫م‬‫ف‬ ‫منأخذها‬‫م‬‫س‬ ‫مي‬‫م‬‫الت‬ ‫مة‬‫م‬‫المدمج‬ ‫الكائنات‬ ‫أنواع‬ ‫مبين‬‫م‬‫ي‬ ‫التالي‬ ‫الجدول‬ ‫ملسل‬‫م‬‫الس‬ ‫و‬ ‫اﻷعداد‬ ( ‫مل‬‫م‬‫مث‬ ‫مة‬‫م‬‫متشابه‬ ‫الكائنات‬ ‫هذه‬ ‫مض‬‫م‬‫بع‬ ‫أن‬ ‫متجد‬‫م‬‫س‬ ‫ذلك‬ ‫مل‬‫م‬‫قب‬ ‫مة‬‫م‬‫لغ‬ ‫متعملت‬‫م‬‫اس‬ 9
  • 11. ‫بايثون‬ ‫بهما‬ ‫تزودك‬ )‫القواميمس‬ ‫و‬ ‫(القوائم‬ ‫مثمل‬ ‫وعاممة‬ ‫قويمة‬ ‫أنواع‬ ‫أيضما‬ ‫وسمتجد‬ )‫الملفات‬ ‫و‬ ‫النصمية‬ ‫مثل‬ ‫اللغات‬ ‫من‬ ‫لكثير‬ ‫خلفا‬ ‫تعب‬ ‫بدون‬ C ++ ‫و‬ C ‫و‬ Java ‫واحدا‬ ‫واحدا‬ ‫بشرحها‬ ‫وسنقوم‬. ‫الكائن‬ ‫نوع‬ ‫عليه‬ ‫مثال‬ ‫اﻷعداد‬ Numbers 3.1415 , 1234 , 999L, 3+4j ‫نصية‬ ‫سلسل‬ Strings ' spam', "guido's " ‫قوائم‬ Lists [ 1 [ , 2 ' , three'], 4 ] ‫قواميس‬ Dictionaries '{ food':'spam', 'taste':'yum }' ‫المجموعات‬ Tuples ( 1 ', spam', 4, 'U )' ‫الملفات‬ Files text = open('eggs', 'r').read() ‫العداد‬ ‫النقطة‬ ‫ذات‬ ‫اﻷعداد‬ ‫و‬ ‫الصحيحة‬ ‫اﻷعداد‬ : ‫اﻷعداد‬ ‫أنواع‬ ‫من‬ ‫واسعة‬ ‫تشكيلة‬ ‫بايثون‬ ‫لغة‬ ‫تدعم‬ ‫مثل‬ ‫اﻷعداد‬ ‫من‬ ‫مركبة‬ ‫أنواع‬ ‫تدعم‬ ‫أيضا‬ ‫و‬ ،‫سابقة‬ ‫لغات‬ ‫مع‬ ‫تعامل‬ ‫لمن‬ ‫مألوف‬ ‫هذا‬ ‫و‬ ،‫العائمة‬ ‫اﻷدوات‬ ‫من‬ ‫واسعة‬ ‫تشكلية‬ ‫و‬ ‫محدود‬ ‫غير‬ ‫العائمة‬ ‫الفاصلة‬ ‫دقة‬ ‫ذات‬ ‫اﻷعداد‬ ‫و‬ ‫المركبة‬ ‫اﻷعداد‬ :‫النوعين‬ ‫سنشرح‬ ‫يلي‬ ‫فيما‬ ‫و‬ :‫القياسية‬ ‫العداد‬ ‫أنواع‬ ‫تلك‬ ‫يبين‬ ‫جدول‬ ‫يلي‬ ‫ما‬ ‫في‬ ‫و‬ ‫جديدة‬ ‫بأنواع‬ ‫أتت‬ ‫و‬ ‫اللغات‬ ‫بقية‬ ‫في‬ ‫القياسية‬ ‫اﻷنواع‬ ‫تدعم‬ ‫بايثون‬ :‫نوع‬ ‫لكل‬ ‫أمثلة‬ ‫مع‬ ‫اﻷنواع‬ ‫النوع‬ ‫تفسيره‬ 1234, - 24, 0 Normal integers (C longs) 999999999999L Long integers (unlimited size) 1.23, 3.14e- 10, 4E210, 4.0e+210 Floating- point (C doubles) 0177, 0x9ff Octal and hex constants 3+4j, 3.0+4.0j, 3J Complex number constants – ‫العائمة‬ ‫الفاصلة‬ ‫ذات‬ ‫اﻷعداد‬ ‫و‬ ‫الصحيحة‬ ‫اﻷعداد‬ 10
  • 12. ( ‫مثمل‬ ‫العشريمة‬ ‫اﻷعداد‬ ‫ممن‬ ‫مجموعمة‬ ‫همي‬ ‫الصمحيحة‬ ‫اﻷعداد‬ 10 ‫الفاصملة‬ ‫ذات‬ ‫اﻷعداد‬ ‫و‬ ، ) ( ‫مثل‬ ‫فاصلة‬ ‫على‬ ‫تحتوي‬ ‫التي‬ ‫هي‬ ‫العائمة‬ 10 ٫10 .) – ‫الرقمية‬ ‫الدقة‬ ‫معاملة‬ ‫تعامل‬ ‫الصحيحة‬ ‫اﻷعداد‬ longs ،‫رقمية‬ ‫بدقة‬ ‫محدود‬ ‫غير‬ ‫أنها‬ ‫يعني‬ ‫مما‬ ‫السي‬ ‫لغة‬ ‫في‬ ‫معاملة‬ ‫تعامل‬ ‫العائمة‬ ‫الفاصلة‬ ‫ذات‬ ‫اﻷعداد‬ ‫و‬ doubles ‫يمكنك‬ ‫أنك‬ ‫يعني‬ ‫مما‬ ‫السي‬ ‫لغة‬ ‫في‬ ‫حرف‬ ‫ألحقت‬ ‫إذا‬ ‫أنك‬ ‫ملحظة‬ ‫مع‬ ،‫بالك‬ ‫على‬ ‫يخطر‬ ‫رقم‬ ‫أي‬ ‫تكتب‬ ‫أن‬ L ‫أو‬ l ‫مفسر‬ ‫تخبر‬ ‫فإنك‬ .‫باثيون‬ ‫لغة‬ ‫مقايس‬ ‫على‬ ‫طويل‬ ‫صحيح‬ ‫عدد‬ ‫العدد‬ ‫هذا‬ ‫أن‬ ‫بايثون‬ ‫لغة‬ – ‫الستعشرية‬ ‫و‬ ‫الثمانية‬ ‫اﻷعداد‬ ‫بالصفر‬ ‫تبدأ‬ ‫التي‬ ‫هي‬ ‫الثمانية‬ ‫اﻷعداد‬ 0 ‫بم‬ ‫تبدأ‬ ‫التي‬ ‫هي‬ ‫الستعشرية‬ ‫اﻷعداد‬ ‫و‬ 0x ‫أو‬ 0X . ‫المركبة‬ ‫اﻷعداد‬- ( )‫التخيلي‬ ‫الجزء‬ + ‫الحقيقي‬ ‫(الجزء‬ ‫كالتالي‬ ‫يكتب‬ ‫هو‬ ‫و‬ ‫النوع‬ ‫بهذا‬ ‫تزودك‬ ‫بايثون‬ ‫لغة‬ real- part + imaginary- part ‫باللحقة‬ ‫ينتهي‬ ‫و‬ ) j ‫أو‬ J . :‫بايثون‬ ‫في‬ ‫المعاملت‬ ‫تعابير‬ ‫أو‬ ( ‫اﻷعداد‬ ‫من‬ ‫مجموعة‬ ‫عن‬ ‫عبارة‬ ‫وهي‬ ‫التعابير‬ ‫هي‬ ‫اﻷعداد‬ ‫معالجة‬ ‫في‬ ‫اﻷساسية‬ ‫اﻷداءة‬ ‫ربما‬ ‫أن‬ ‫تريمد‬ ‫عندمما‬ ‫ذلك‬ ‫على‬ ‫المثال‬ ‫و‬ ،‫بايثون‬ ‫فمي‬ ‫تنفيذهما‬ ‫عنمد‬ ‫قيممة‬ ‫تنتنمج‬ ‫معاملت‬ ‫و‬ )‫أخرى‬ ‫كائنات‬ ‫مثل‬ ‫عددين‬ ‫تجمع‬ x ‫و‬ y ‫تقول‬ ‫فإنك‬ x + y . + ‫هنا‬ ‫فالمعامل‬ ‫أسمبقيتها‬ ‫يمبين‬ ‫و‬ ‫يشرحهما‬ ‫و‬ ‫يبينهما‬ ‫التالي‬ ‫الجدول‬ ‫و‬ ‫المعاملت‬ ‫هذه‬ ‫ممن‬ ‫طويلة‬ ‫بقائممة‬ ‫بايثون‬ ‫تزودنما‬ :‫تنازليا‬ ‫التنفيذ‬ ‫عند‬ ‫المعامل‬ ‫الوصف‬ x or y "‫"أو‬ ‫المنطقي‬ ‫معامل‬ x and y "‫"و‬ ‫المنطقي‬ ‫معامل‬ 11
  • 13. ‫المعامل‬ ‫الوصف‬ not x "‫"عكس‬ ‫المنطقي‬ ‫معامل‬ in, not in ‫الكائن‬ ‫العضوية‬ ‫اختبار‬ is, is not ‫الكائن‬ ‫هوية‬ ‫اختبار‬ x | y ‫البت‬ ‫مستوى‬ ‫على‬ "‫"أو‬ ‫معامل‬ x ^ y ‫البت‬ ‫مستوى‬ ‫على‬ "‫"عكس‬ ‫معامل‬ x & y ‫البت‬ ‫مستوى‬ ‫على‬ "‫"و‬ ‫معامل‬ x << y, x >> y ‫إزاحة‬ x ‫بمقدار‬ ‫شمال‬ ‫أو‬ ‫يمينا‬ y ‫البتات‬ ‫من‬ x + y, x – y ‫الجمع‬ ‫و‬ ‫الطرح‬ ‫معامل‬ x * y, x / y, x % y ‫القسمة‬ ‫باقي‬ ‫و‬ ‫القسمة‬ ‫و‬ ‫الضرب‬ ‫معامل‬ ‫العداد‬ ‫على‬ ‫العمل‬ ‫لنطبع‬ ‫اﻷوامر‬ ‫سطر‬ ‫نشغل‬ ‫فدعنا‬ ،‫واقعيا‬ ‫و‬ ‫عمليا‬ ‫تجربتها‬ ‫هي‬ ‫النظرية‬ ‫اﻷشياء‬ ‫لفهم‬ ‫طريقة‬ ‫أحسن‬ .‫عمليا‬ ‫سابقا‬ ‫قلناه‬ ‫ما‬ ‫ستشرح‬ ‫التي‬ ‫اﻷسطر‬ ‫بعض‬ ‫عليه‬ :‫اﻷسياسية‬ ‫العمليات‬ ‫مثمل‬ ‫اﻷعداد‬ ‫فئة‬ ‫ممن‬ ‫كائن‬ ‫إنشاء‬ ‫إلى‬ ‫نحتاج‬ ‫شيمء‬ ‫كمل‬ ‫قبمل‬ x ‫و‬ b ، ‫معاملت‬ ‫عليمه‬ ‫نطبق‬ ‫لكمي‬ ، ،‫معه‬ ‫نتعامل‬ ‫لكي‬ ‫إليه‬ ‫قيمة‬ ‫إسناد‬ ‫ثم‬ ‫تسميته‬ ‫ثم‬ ‫الكائن‬ ‫نوع‬ ‫ذكر‬ ‫إلى‬ ‫ستحتاج‬ ‫اﻷخرى‬ ‫اللغات‬ ‫في‬ ، ‫نوعمه‬ ‫على‬ ‫للتعرف‬ ‫بايثون‬ ‫الباقمي‬ ‫تتولى‬ ‫و‬ ‫قيممه‬ ‫إليمه‬ ‫أسمند‬ ‫ثمم‬ ‫الكائن‬ ‫سمم‬ ‫فقمط‬ ‫بايثون‬ ‫فمي‬ ‫ولكمن‬ .‫بنوعه‬ ‫لتعريف‬ ‫الكائن‬ ‫إلى‬ ‫القيمة‬ ‫اسناد‬ ‫فقط‬ ‫يكفي‬ ‫بايثون‬ ‫كائنات‬ ‫في‬ ‫عام‬ ‫بشكل‬ ‫وهذا‬ : ‫اﻷوامر‬ ‫سطر‬ ‫في‬ ‫التالي‬ ‫اكتب‬، ‫عمليا‬ ‫ذلك‬ ‫لتطبيق‬ %python >>> a = 3 # name created >>> b = 4 ‫إضافة‬ ‫كيفية‬ ‫لحظت‬ ‫ولعلك‬ ، ‫قيمتين‬ ‫إليهما‬ ‫وأسندنا‬ ‫اﻷعداد‬ ‫فئة‬ ‫من‬ ‫كائنين‬ ‫أنشأنا‬ ‫قد‬ ‫نكون‬ ‫وبهذا‬ ‫وسهولة‬ ‫الكود‬ ‫توضيح‬ ‫في‬ ‫كبرى‬ ‫أهمية‬ ‫وللتعليق‬ ، ‫تعليق‬ ‫فهو‬ # ‫بعد‬ ‫ما‬ ‫فكل‬ ‫بايثون‬ ‫في‬ ‫التعليقات‬ .‫آخرين‬ ‫مطورين‬ ‫قبل‬ ‫من‬ ‫تطويره‬ ‫وسهولة‬ ‫قراءته‬ 12
  • 14. ‫اﻷقواس‬ ‫بين‬ ‫المعاملت‬ ‫كانت‬ ‫وكلما‬ ، ‫المعاملت‬ ‫بعض‬ ‫تطبيق‬ ‫إلى‬ ‫ستحتاج‬ ‫الكائنات‬ ‫إنشاء‬ ‫بعد‬ ‫انتبه‬ ‫ولكن‬ ،‫اﻷقواس‬ ‫بدون‬ ‫تعمل‬ ‫ل‬ ‫المعاملت‬ ‫أن‬ ‫يعني‬ ‫ل‬ ‫هذا‬ ‫ولكن‬ ، ‫أوضح‬ ‫اﻷمور‬ ‫كانت‬ ‫كلما‬ : ‫اﻷمثلة‬ ‫بعض‬ ‫إليك‬ ‫و‬ ، ‫سابقا‬ ‫ذكر‬ ‫ما‬ ‫حسب‬ ‫على‬ ‫المعاملت‬ ‫أسبقية‬ ‫إلى‬ >>> b / 2 + a # same as ((4 / 2) + 3) 5 >>> b / (2.0 + a) # same as (4 / (2.0 + 3)) 0.8 ‫المعامل‬ ‫أن‬ ‫وبما‬ ،‫اﻷقواس‬ ‫في‬ ‫المعاملت‬ ‫ترتيب‬ ‫تولت‬ ‫بايثون‬ ‫أن‬ ‫اﻷول‬ ‫المثال‬ ‫في‬ ‫واضح‬ ‫هو‬ ‫فكما‬ ‫فأجبرنما‬ ‫قوسمين‬ ‫التعمبير‬ ‫إلى‬ ‫أضفنما‬ ‫المثال‬ ‫فمي‬ ‫ولكمن‬ ، ‫مقدم‬ ‫فهمو‬ ‫الجممع‬ ‫معاممل‬ ‫ممن‬ ‫أسمفل‬ ‫القسممة‬ ‫عند‬ ‫اﻷمور‬ ‫هذه‬ ‫مثل‬ ‫مراعاة‬ ‫يجب‬ ‫النهاية‬ ‫وفي‬ ، ‫أول‬ ‫تقديمها‬ ‫نريد‬ ‫التي‬ ‫المعاملت‬ ‫تنفيذ‬ ‫على‬ ‫بايثون‬ .‫بايثون‬ ‫لغة‬ ‫في‬ ‫برامجك‬ ‫كتابة‬ ‫المثال‬ ‫تنفيمذ‬ ‫جرب‬ ‫لك‬ ‫سمأقول‬ ، ‫الثانمي‬ ‫المثال‬ ‫فمي‬ ‫العائممة‬ ‫النقطمة‬ ‫إضافمة‬ ‫فائدة‬ ‫مما‬ ‫تسمأل‬ ‫ولعلك‬ ‫هي‬ ‫النتيجة‬ ‫أن‬ ‫وستجد‬ ‫العائمة‬ ‫النقطة‬ ‫إضافة‬ ‫بدون‬ 0 ‫أنه‬ ‫على‬ ‫بايثون‬ ‫تعاملت‬ ‫لقد‬ ‫حصل؟‬ ‫ماذا‬ ، ‫بدون‬ ‫هي‬ ‫كما‬ ‫النتيجة‬ ‫أريد‬ ‫أني‬ ‫بايثون‬ ‫تخبر‬ ‫فإنك‬ ‫العائمة‬ ‫النقطة‬ ‫تكتب‬ ‫عندما‬ ‫ولكن‬ ،‫صحيح‬ ‫عدد‬ .‫بنفسك‬ ‫النتيجة‬ ‫ستلحظ‬ ‫صفرين‬ ‫أضفت‬ ‫إذا‬ ‫وكذلك‬ ‫تقريب‬ :‫البت‬ ‫مستوى‬ ‫على‬ ‫معاملت‬ ‫الثنائي‬ ‫العمد‬ ‫تعرف‬ ‫أن‬ ‫عليمك‬ ‫فيجمب‬ ‫اﻷحيان‬ ‫بعمض‬ ‫فمي‬ ‫البمت‬ ‫المسمتوى‬ ‫على‬ ‫التعاممل‬ ‫إلى‬ ‫سمتحتاج‬ : ‫التالية‬ ‫اﻷمثلة‬ ‫لك‬ ‫وستتضح‬ ‫أول‬ >>> x = 1 # 0001 >>> x << 2 # shift left 2 bits: 0100 4 >>> x | 2 # bitwise OR: 0011 3 >>> x & 1 # bitwise AND: 0001 1 ‫ل‬ ‫الجزئية‬ ‫هذه‬ ‫أنه‬ ‫وستجد‬ ، ‫استمر‬ ، ‫عليك‬ ‫فل‬ ، ‫الثنائية‬ ‫اﻷعداد‬ ‫تدرس‬ ‫ولم‬ ‫تفهم‬ ‫لم‬ ‫إذا‬ 13
  • 15. !! ‫يطلبها‬ ‫من‬ ‫إل‬ ‫يحتاجها‬ : ‫المركبة‬ ‫اﻷعداد‬ ‫هذه‬ ‫مثمل‬ ‫فمي‬ ‫عندك‬ ‫تخصمص‬ ‫ل‬ ‫كشخمص‬ ، ‫الكهرباء‬ ‫و‬ ‫الهندسمة‬ ‫تخصمصات‬ ‫ممن‬ ‫المركبمة‬ ‫اﻷعداد‬ ‫مل‬‫م‬‫فص‬ ‫من‬‫م‬‫م‬ ‫مر‬‫م‬‫أكث‬ ‫إلى‬ ‫متحتاج‬‫م‬‫س‬ ‫ما‬‫م‬‫تفهمه‬ ‫مي‬‫م‬‫لك‬ ‫مك‬‫م‬‫ﻷن‬ ، ‫الكرام‬ ‫مرور‬ ‫مة‬‫م‬‫الجزئي‬ ‫هذه‬ ‫على‬ ‫مر‬‫م‬‫م‬، ‫اﻷمور‬ ‫إذا‬ ‫أما‬ ، ‫قياسي‬ ‫وقت‬ ‫في‬ ‫الباثون‬ ‫باستخدام‬ ‫البرمجة‬ ‫فهم‬ ‫إلى‬ ‫نوصلك‬ ‫أن‬ ‫نريد‬ ‫ونحن‬ ، ‫دراسي‬ :‫اﻷمثلة‬ ‫هذه‬ ‫إلى‬ ‫فانظر‬ ، ‫الكثير‬ ‫لك‬ ‫توفر‬ ‫بايثون‬ ‫ستجد‬ ‫فإنك‬ ‫تخصصه‬ ‫لب‬ ‫من‬ ‫اﻷعداد‬ ‫هذه‬ ‫كان‬ >>> 1j * 1J (- 1+0j) >>> 2 + 1j * 3 (2+3j) >>> (2+1j)*3 (6+3j) .‫التفصيل‬ ‫من‬ ‫للمزيد‬ ‫بايثون‬ ‫وثائق‬ ‫راجع‬ ‫المجال‬ ‫هذا‬ ‫في‬ ‫للستزاده‬ : ‫اﻷدوات‬ ‫من‬ ‫المزيد‬ ‫وحدة‬ ‫وتقدم‬ ، ‫الرياضيات‬ ‫مع‬ ‫تتعامل‬ ‫أدوات‬ ‫عدة‬ ‫بايثون‬ ‫لك‬ ‫توفر‬ math ‫جميع‬ ‫مع‬ ‫تتعامل‬ ‫التي‬ :‫المثال‬ ‫إليك‬ ‫و‬ ، ‫الوحدة‬ ‫هذه‬ ‫تستورد‬ ‫أن‬ ‫عليك‬ ‫يجب‬ ‫ولكن‬ ، ‫الرياضيات‬ ‫قوانين‬ >>> import math >>> math.pi 3.14159265359 >>> >>> abs(- 42), 2**4, pow(2, 4) (42, 16, 16) . ‫تعالى‬ ‫ال‬ ‫بإذن‬ ‫القادمة‬ ‫الفصول‬ ‫في‬ ‫التفصيل‬ ‫من‬ ‫بشيء‬ ‫وحدات‬ ‫عن‬ ‫سنتكلم‬ ‫و‬ 14
  • 16. ‫النصية‬ ‫السلسل‬ ‫النصمية‬ ‫والسملسل‬،‫النصمية‬ ‫السملسل‬ ‫همو‬ ‫بايثون‬ ‫فمي‬ ‫الرئيسمية‬ ‫المدمجمة‬ ‫الكائنات‬ ‫ممن‬ ‫الثانمي‬ ‫النوع‬ ‫استخدام‬ ‫يمكنك‬ ‫آخر‬ ‫وبمعنى‬، ‫واحدة‬ ‫وحدة‬ ‫في‬ ‫بيانات‬ ‫أو‬ ‫اسم‬ ‫لتخزين‬ ‫حروف‬ ‫تجمع‬ ‫عن‬ ‫عبارة‬ ‫شابمه‬ ‫ومما‬ ‫الكلمات‬ ‫و‬ ‫اﻷسمماء‬ ‫و‬ ‫الروابمط‬ ‫مثمل‬ ‫كنمص‬ ‫تمثيله‬ ‫يقبمل‬ ‫شيمء‬ ‫كمل‬ ‫فمي‬ ‫النصمية‬ ‫السملسل‬ .‫ذلك‬ ‫و‬ ‫النصمية‬ ‫سملسل‬ ‫الكائن‬ ‫على‬ ‫تحتوي‬ ‫أنهما‬ ‫سمتجد‬ ‫بايثون‬ ‫قبمل‬ ‫أخرى‬ ‫لغات‬ ‫اسمتخدمت‬ ‫كنمت‬ ‫إذا‬ ‫حرف‬ ‫كائن‬ ‫أيضا‬ char ‫وتسريعا‬ ‫للتعلم‬ ‫تسهيل‬ ‫وذلك‬ ‫نصية‬ ‫كسلسل‬ ‫تعامل‬ ‫الحروف‬ ‫بايثون‬ ‫في‬ .‫للبرمجة‬ ‫معرفة‬ ‫و‬ ‫التقطيع‬ ‫و‬ ‫الفهرسة‬ ‫مثل‬ ‫النصية‬ ‫السلسل‬ ‫مع‬ ‫تتعامل‬ ‫التي‬ ‫الدوال‬ ‫من‬ ‫بالكثير‬ ‫تزودنا‬ ‫بايثون‬ ‫بايثون‬ ‫في‬ ‫النصية‬ ‫السلسل‬ ‫لمعالجة‬ ‫مستقلة‬ ‫وحدات‬ ‫وهناك‬، ‫السلسل‬ ‫تجميع‬ ‫و‬ ‫السلسلة‬ ‫طول‬ ‫مثل‬ string ‫و‬ regex ‫و‬ re . : ‫دوالها‬ ‫وبعض‬ ‫النصية‬ ‫السلسل‬ ‫إنشاء‬ ‫كيفية‬ ‫سريع‬ ‫بشكل‬ ‫يعرض‬ ‫التالي‬ ‫الجدول‬ ‫و‬ ‫العملية‬ ‫شرحها‬ S1 = ' ' ‫فارغة‬ ‫سلسلة‬ s2 = "spam's" ‫مزدوجة‬ ‫اقتباس‬ ‫علمات‬ block = """...""" ‫تنصيص‬ ‫علمات‬ ‫ثلث‬ s1 + s2, s2 * 3 ‫الجمع‬ ‫التكرار‬ s2[i], s2[i:j], len(s2) ‫الفهرسة‬ ‫التقطيع‬ ‫الطول‬ ‫معرفة‬ "a %s parrot" %'dead' ‫النصية‬ ‫السلسل‬ ‫تهيئة‬ for x in s2, 'm' in s2 ‫تكرارية‬ ‫الحلقة‬ ‫العضوية‬ ‫ولك‬ ،‫نفسه‬ ‫العمل‬ ‫يؤدين‬ ‫فكلهن‬ ، ‫المزدوجة‬ ‫و‬ ‫المفردة‬ ‫القتباس‬ ‫علمة‬ ‫بين‬ ‫فرق‬ ‫ل‬ ‫أنه‬ ‫لحظ‬ .‫اﻷختيار‬ ‫حرية‬ 15
  • 17. ‫النصية‬ ‫السلسل‬ ‫على‬ ‫العمل‬ ‫نوع‬ ‫من‬ ‫قيمة‬ ‫له‬ ‫وتسند‬ ‫اسمه‬ ‫تذكر‬ ‫أن‬ ‫له‬ ‫يكفي‬ ‫النصية‬ ‫السلسل‬ ‫من‬ ‫كائن‬ ‫إنشاء‬ ‫أن‬ ‫عليك‬ ‫مر‬ ‫كما‬ ‫الجوانمب‬ ‫نسمتكشف‬ ‫فدعنما‬ ،‫السمابق‬ ‫الجدول‬ ‫فمي‬ ‫أمثلة‬ ‫ثلثمة‬ ‫عليمك‬ ‫ممر‬ ‫وقمد‬ ، ‫النصمية‬ ‫السملسل‬ ..‫اﻷخرى‬ ‫الساسية‬ ‫العمليات‬ ‫كائنات‬ ‫مي‬‫م‬‫ف‬ ‫ما‬‫م‬‫معه‬ ‫مل‬‫م‬‫التعام‬ ‫مف‬‫م‬‫كي‬ ‫مت‬‫م‬‫وعرف‬ * ‫الضرب‬ ‫مل‬‫م‬‫معام‬ ‫و‬ + ‫مع‬‫م‬‫الجم‬ ‫مل‬‫م‬‫المعام‬ ‫مك‬‫م‬‫علي‬ ‫مر‬‫م‬‫م‬ ‫مد‬‫م‬‫لق‬ ، ‫للنمص‬ ‫كتكرار‬ ‫الضرب‬ ‫و‬ ‫كإضافمة‬ ‫الجممع‬ ‫تعاممل‬ ‫فهمي‬ ‫النصمية‬ ‫السملسل‬ ‫كائنات‬ ‫أمما‬ ، ‫اﻷعداد‬ .‫نصية‬ ‫سلسل‬ ‫الطرفين‬ ‫كل‬ ‫يكون‬ ‫أن‬ ،‫الجمع‬ ‫معامل‬ ‫في‬ ‫يشترط‬ ‫ولكن‬ ‫الدالة‬ ‫وهي‬ ‫النصية‬ ‫السلسلة‬ ‫طول‬ ‫لنا‬ ‫تحسب‬ ‫بدالة‬ ‫بايثون‬ ‫وتزودنا‬ len ‫ل‬ ‫اللغة‬ ‫مع‬ ‫مدمجة‬ ‫هي‬ ‫و‬ :‫اﻷمثلة‬ ‫بعض‬ ‫وهذه‬ ، ‫استيراد‬ ‫إلى‬ ‫تحتاج‬ %python >>> len('abc') # length: number items 3 >>> 'abc' + 'def' # concatenation: a new string 'abcdef' >>> 'Ni!' * 4 # like "Ni!" + "Ni!" + ... 'Ni!Ni!Ni!Ni!' ‫باستخدام‬ ‫وذلك‬ ‫النصية‬ ‫السلسلة‬ ‫في‬ ‫تكرارية‬ ‫حلقة‬ ‫عمل‬ ‫إلى‬ ‫اﻵن‬ ‫سنأتي‬ for ‫العضوية‬ ‫اختبار‬ ‫و‬ ‫باستخدام‬ in : >>> myjob = "hacker" >>> for c in myjob: print c, # step though items ... h a c k e r >>> "k" in myjob # 1 means true 1 16
  • 18. ‫النصية‬ ‫السلسلة‬ ‫التقطيع‬ ‫و‬ ‫الفهرسة‬ ‫يعطينا‬ ‫التركيب‬ ‫هذا‬ ‫فإن‬ ، ‫الحروف‬ ‫من‬ ‫مجموعة‬ ‫كأنها‬ ‫بايثون‬ ‫في‬ ‫تعرف‬ ‫النصية‬ ‫السلسل‬ ‫أن‬ ‫بما‬ ‫توفر‬ ‫وكذلك‬ ، ‫المفهرس‬ ‫يسمى‬ ‫بما‬ ‫أعضاءه‬ ‫من‬ ‫أي‬ ‫إلى‬ ‫الوصول‬ ‫إمكانية‬ ‫من‬ ‫المجموعة‬ ‫مميزات‬ ‫من‬ ‫العد‬ ‫تبدأ‬ ‫بايثون‬ ‫أن‬ ‫لحظ‬ ‫ولكن‬ ،‫المفهرس‬ ‫باستخدام‬ ‫السلسلة‬ ‫تلك‬ ‫تقطيع‬ ‫إمكانية‬ ‫بايثون‬ ‫لنا‬ : ‫اﻷمثلة‬ ‫هذه‬ ‫إليك‬ ‫واﻵن‬ ،‫السي‬ ‫من‬ ‫مشتقة‬ ‫لغة‬ ‫كل‬ ‫مثل‬ ‫الواحد‬ ‫وليس‬ ‫المفهرس‬ ‫في‬ ‫الصفر‬ >>> S = 'spam' >>> S[0], S[- 2] # indexing from front or end ('s', 'a') >>> S[1:3], S[1:], S[:- 1] # slicing: extract section ('pa', 'pam', 'spa') ‫متغير‬ ‫بتعريف‬ ‫أول‬ ‫قمنا‬ s ‫من‬ ‫الفهرسة‬ ‫بعملية‬ ‫قمنا‬ ‫ثم‬ ، ‫معينة‬ ‫قيمة‬ ‫إليه‬ ‫وأسندنا‬ ‫نصية‬ ‫سلسلة‬ ‫بأنه‬ [‫فمم‬ ، ‫النهايمة‬ ‫وممن‬ ‫البدايمة‬ 0 ] S ‫فهرسمته‬ ‫الذي‬ ‫الحرف‬ ‫أظهمر‬ ‫تعنمي‬ 0 ‫كان‬ ‫الناتمج‬ ‫و‬ s [‫و‬ ، 2 ]- S ‫فهرسته‬ ‫الذي‬ ‫الحرف‬ ‫أظهر‬ ‫تعني‬ 2 .‫اﻷخير‬ ‫من‬ [‫فم‬ ‫المفهرس‬ ‫باستخدام‬ ‫التقطيع‬ ‫بعملية‬ ‫قمنتا‬ ‫ذلك‬ ‫بعد‬ 1:3 ] S ‫فما‬ ‫اﻷول‬ ‫الحرف‬ ‫من‬ ‫اجلب‬ ‫تعني‬ :[‫أمما‬ ، ‫فوقمه‬ ‫ومما‬ ‫الثالث‬ ‫الحرف‬ ‫تجلب‬ ‫ل‬ ‫ولكمن‬ ‫أعلى‬ 1 ] S ‫فمما‬ ‫اﻷول‬ ‫الحرف‬ ‫ممن‬ ‫اجلب‬ ‫فتعنمي‬ [ ‫أما‬ ، ‫النهاية‬ ‫إلى‬ ‫فوقه‬ 1 ]:- S ‫اﻷخير‬ ‫الحرف‬ ‫ماعدا‬ ‫السلسلة‬ ‫كل‬ ‫اجلب‬ ‫فتعني‬ ‫النصية‬ ‫السلسل‬ ‫تهيئة‬ ‫ممن‬‫م‬‫ولك‬ ،‫طرق‬ ‫عدة‬ ‫فهناك‬ ‫متغيرة‬ ‫كائنات‬ ‫مما‬‫م‬‫إليه‬ ‫ممف‬‫م‬‫تضي‬ ‫أن‬ ‫وأردت‬ ‫طويلة‬ ‫مملسلة‬‫م‬‫س‬ ‫عندك‬ ‫كان‬ ‫إذا‬ # ‫ولغة‬، ‫كبير‬ ‫بشكل‬ ‫السي‬ ‫لغة‬ ‫تستعملها‬ ‫طريقة‬ ‫لك‬ ‫توفر‬ ‫بايثون‬ C :‫التالي‬ ‫المثال‬ ‫انظر‬ ، ‫حديثا‬ 17
  • 19. >>> S = 'spam' >>> S[0] = "x" Raises an error! >>> S = S + 'Spam!' # to change a string, make a new one >>> S 'spamSpam!' >>> S = S[:4] + 'Burger' + S[- 1] >>> S 'spamBurger!' >>> 'That is %d %s bird!' %(1, 'dead') # like C sprintf That is 1 dead bird! ‫كباقي‬ ‫اﻷعداد‬ ‫وعند‬ ، ‫النصية‬ ‫السلسل‬ ‫مع‬ ‫ليعمل‬ % ‫المعامل‬ ‫تعريف‬ ‫أعادة‬ ‫بايثون‬ ‫أن‬ ‫لحظ‬ ‫الدالة‬ ‫وخاصة‬ ‫النص‬ ‫ترتيب‬ ‫في‬ ‫السي‬ ‫هيئة‬ ‫استخدم‬ ‫اﻷخير‬ ‫السطر‬ ‫أن‬ ‫سابقا‬ ‫قلنا‬ ‫كما‬ ،‫القسمة‬ sprintf ‫على‬ ‫اليمين‬ ‫على‬ ‫ما‬ ‫يساوي‬ ‫اليسار‬ ‫على‬ ‫كل‬ ‫ما‬ ‫تعني‬ ‫بسيطة‬ ‫وهي‬ ،‫قواعدها‬ ‫كل‬ ‫أخذ‬ ‫و‬ :‫التهيئة‬ ‫هذه‬ ‫على‬ ‫أكثر‬ ‫أمثلة‬ ‫وإليك‬ ، ‫الترتيب‬ >>> exclamation = "Ni" >>> "The knights who say %s!" %exclamation 'The knights who say Ni!' >>> "%d %s %d you" %(1, 'spam', 4) '1 spam 4 you' >>> "%s - - %s - - %s" %(42, 3.14159, [1, 2, 3]) '42 - - 3.14159 - - [1, 2, 3]' ‫أما‬ ، ‫شيء‬ ‫على‬ ‫تدل‬ ‫واحدة‬ ‫كل‬ ‫ولكنها‬ ‫ل‬ ‫نقول‬ ‫؟‬ ‫اعتباطية‬ % ‫بعد‬ ‫الحروف‬ ‫هل‬ ‫ولكن‬ s ‫فهي‬ % :‫يشرحها‬ ‫التالي‬ ‫فالجدول‬ ‫البقية‬ ‫أما‬ ، ‫غيره‬ ‫أو‬ ‫نصية‬ ‫سلسلة‬ ‫أو‬ ‫عددا‬ ‫أكان‬ ‫سواء‬ ‫كائن‬ ‫لكل‬ ‫عامة‬ ‫ستعشري‬ ‫عدد‬ Hex integer %X ‫نصية‬ ‫سلسلة‬ String % ‫الهيئة‬ ‫العائمة‬ ‫الفاصلة‬ 1 Floating- point %e ‫حروف‬ Character %c ‫الهيئة‬ ‫العائمة‬ ‫الفاصلة‬ 2 Floating- point %E ‫عشري‬ ‫عدد‬ Decimal %d ‫الهيئة‬ ‫العائمة‬ ‫الفاصلة‬ 3 Floating- point %f ‫صحيح‬ ‫عدد‬ Integer %i ‫الهيئة‬ ‫العائمة‬ ‫الفاصلة‬ 4 Floating- point %g Unsigned (int) %u ‫الهيئة‬ ‫العائمة‬ ‫الفاصلة‬ 5 Floating- point %G ‫ثماني‬ ‫عدد‬ Octal integer %o 18
  • 20. % ‫حرف‬ %% ‫ستعشري‬ ‫عدد‬ Hex integer %x ‫النصية‬ ‫لسلسل‬ ‫العامة‬ ‫أدوات‬ ‫واحدة‬ ‫أشهر‬ ‫ولعل‬ ،‫النصية‬ ‫السلسل‬ ‫مع‬ ‫للتعامل‬ ‫خاصة‬ ‫بوحدات‬ ‫تزودنا‬ ‫بايثون‬ ‫سابقا‬ ‫قلنا‬ ‫كما‬ ‫هي‬ ‫وأقواها‬ string ‫من‬ ‫الحروف‬ ‫تحويل‬ ‫على‬ ‫القدرة‬ ‫فمنها‬ ‫الدوال‬ ‫من‬ ‫بالعديد‬ ‫تزودنا‬ ‫فهي‬ . ‫السلسلة‬ ‫تحويل‬ ‫وكذلك‬ ، ‫المعرفة‬ ‫السلسل‬ ‫في‬ ‫البحث‬ ‫وكذلك‬، ‫والعكس‬ ‫الصغيرة‬ ‫إلى‬ ‫الكبيرة‬ ‫على‬ ‫مثال‬ ‫وهذا‬ ،‫اﻷدوات‬ ‫جميع‬ ‫للمعرفة‬ ‫بايثون‬ ‫وثائق‬ ‫راجع‬ ، ‫الكثير‬ ‫وغيرها‬ ، ‫عدد‬ ‫إلى‬ ‫النصية‬ ‫وحدة‬ ‫قدرة‬ string : >>> import string # standard utilities module >>> S = "spammify" >>> string.upper(S) # convert to uppercase 'SPAMMIFY' >>> string.find(S, "mm") # return index of substring 3 >>> string.atoi("42") # convert from/to string 42 >>> string.join(string.split(S, "mm"), "XX") 'spaXXify' ‫الدالة‬ ‫أن‬ ‫القضيمة‬ ‫فمي‬ ‫مما‬ ‫فكمل‬ ‫الفهمم‬ ‫سمهل‬ ‫فهمو‬،‫تعقيدا‬ ‫اﻷكثمر‬ ‫وهمو‬ ‫اﻷخيمر‬ ‫المثال‬ ‫لعمل‬ split ‫الحرف‬ ‫عند‬ ‫قسمين‬ ‫إلى‬ ‫السلسلة‬ ‫بتجزئة‬ ‫قامت‬ mm ‫الدالة‬ ‫قامت‬ ‫ثم‬ ، join ‫بدمج‬ XX ‫بين‬ .‫عملها‬ ‫كيفية‬ ‫ومعرفة‬ ‫واحدة‬ ‫دالة‬ ‫كل‬ ‫تجربة‬ ‫يمكنك‬ ، ‫السابقين‬ ‫القسمين‬ ‫الدالة‬ ‫أن‬ ‫لحمظ‬ atoi ‫أخرى‬ ‫دالة‬ ‫توجمد‬ ‫ولكمن‬ ، ‫فقمط‬ ‫عدد‬ ‫إلى‬ ‫النصمية‬ ‫السملسلة‬ ‫بتحويمل‬ ‫تقوم‬ ‫تسممى‬ ‫مدمجمة‬ eval ‫ممن‬ ‫الحال‬ ‫بطبيعمة‬ ‫أبطمأ‬ ‫ولكنهما‬ ‫نوع‬ ‫أي‬ ‫إلى‬ ‫النصمية‬ ‫السملسلة‬ ‫بتحويمل‬ ‫تقوم‬ .‫اﻷولى‬ ‫الدالة‬ ‫النصية‬ ‫السلسلة‬ ‫كتابة‬ ‫في‬ ‫الختلفات‬ ‫تنسمق‬ ‫أن‬ ‫تسمتطيع‬ ‫بهما‬ ‫التمي‬ ‫الهروب‬ ‫أحرف‬ ‫عمن‬ ‫سمنتكلم‬ ، ‫النصمية‬ ‫السملسل‬ ‫عمن‬ ‫كلمنما‬ ‫نهايمة‬ ‫فمي‬ ‫فمي‬ ‫اﻷحرف‬ ‫هذه‬ ‫لك‬ ‫يمبين‬ ‫التالي‬ ‫والجدول‬ ‫وغيرهما‬ ‫السمطر‬ ‫بدايمة‬ ‫حرف‬ ‫مثمل‬ ، ‫جيمد‬ ‫بشكمل‬ ‫النمص‬ 19
  • 21. :‫بايثون‬ newli ne ‫الستمرار‬ n ‫جديد‬ ‫سطر‬ ‫إظهار‬ v Tab ‫عمودية‬ ' ‫واحدة‬ ‫اقتباس‬ ‫علمة‬ ‫إظهار‬ t Tab ‫رأسية‬ " ‫مزدوجة‬ ‫اقتباس‬ ‫علمة‬ ‫إظهار‬ r ‫السطر‬ ‫بداية‬ ‫إلى‬ ‫العودة‬ Carriage return a ‫جرس‬ f ‫جديدة‬ ‫صفحة‬ Formfeed b ‫الخلفي‬ ‫الحذف‬ ‫مفتاح‬ Backspace 0XX Octal value XX e ‫الهروب‬ ‫زر‬ Escape xXX Hex value XX 000 Null ‫السلسلة‬ ‫إنهاء‬ ‫عدم‬ other ‫آخر‬ ‫حرف‬ ‫أي‬ ‫القوائم‬ ‫أل‬ ‫وترتيب‬ ‫مرونة‬ ‫المدمجة‬ ‫الكائنات‬ ‫أكثر‬ ‫يعتبر‬ ‫كائن‬ ‫إلى‬ ‫ونصل‬ ‫بايثون‬ ‫لغة‬ ‫غمار‬ ‫في‬ ‫مشوارنا‬ ‫نكمل‬ ‫القائممة‬ ‫وهمو‬ list ‫عدة‬ ‫ضمنهما‬ ‫فمي‬ ‫تجممع‬ ‫أن‬ ‫تسمتطيع‬ ‫أنهما‬ ‫النصمية‬ ‫السملسل‬ ‫عمن‬ ‫القوائم‬ ‫تمتاز‬ ، ‫كائنات‬ ‫و‬ ‫أعداد‬ ‫و‬ ‫مية‬‫م‬‫نص‬ ‫ملسلة‬‫م‬‫س‬ ‫من‬‫م‬‫م‬ ‫تكون‬ ‫أن‬ ‫من‬‫م‬‫يمك‬ ‫مة‬‫م‬‫فالقائم‬ ، ‫مط‬‫م‬‫فق‬ ‫موص‬‫م‬‫النص‬ ‫مت‬‫م‬‫وليس‬ ‫كائنات‬ ‫و‬ ‫السمي‬ ‫لغمة‬ ‫مثمل‬ ‫اﻷخرى‬ ‫اللغات‬ ‫فمي‬ ‫المعطيات‬ ‫بنمى‬ ‫مقام‬ ‫القائممة‬ ‫وتقوم‬ .‫أخرى‬ ‫قوائم‬ ‫حتمى‬ ‫أخرى‬ :‫منها‬ ‫مميزات‬ ‫بعدة‬ ‫بايثون‬ ‫في‬ ‫القوائم‬ ‫وتتميز‬،‫الجافا‬ ‫متجانسة‬ ‫غير‬ ‫كائنات‬ ‫من‬ ‫مرتبة‬ ‫مجموعة‬ ‫القائمة‬ ‫و‬ ‫كمجموعة‬ ‫تنظمهم‬ ‫أن‬ ‫يمكنك‬ ‫لذا‬ ‫الكائنات‬ ‫للتجميع‬ ‫مكان‬ ‫القائمة‬ ،‫الوظيفية‬ ‫الناحية‬ ‫من‬ . ‫اليمين‬ ‫إلى‬ ‫اليسار‬ ‫من‬ ‫بترتيبهم‬ ‫تقوم‬ ‫أيضا‬ ‫المفهرس‬ ‫باستخدام‬ ‫الوصول‬ ‫عملية‬ ‫وإجراء‬ ،‫المفهرس‬ ‫باستخدام‬ ‫القائمة‬ ‫أعضاء‬ ‫إلى‬ ‫تصل‬ ‫أن‬ ‫تستطيع‬ ‫النصية‬ ‫السلسل‬ ‫مثل‬ .‫والسلسلة‬ ‫التقطيع‬ ‫عالية‬ ‫مرونة‬ ‫حسب‬ ‫وتصغر‬ ‫تكبر‬ ‫أن‬ ‫يمكن‬ ‫بحيث‬ ،‫النصية‬ ‫السلسل‬ ‫مرونة‬ ‫من‬ ‫أكبر‬ ‫عالية‬ ‫بمرونة‬ ‫القوائم‬ ‫تتمتع‬ .‫متشابكة‬ ‫تصير‬ ‫بحيث‬ ‫قوائم‬ ‫في‬ ‫قوائم‬ ‫وضع‬ ‫ويمكنك‬ ،‫برنامجك‬ ‫متطلبات‬ 20
  • 22. ‫المرجعية‬ ‫الكائنات‬ ‫من‬ ‫مصفوفة‬ ‫الناحية‬ ‫هذه‬ ‫من‬ ‫وهي‬،‫السي‬ ‫لغة‬ ‫في‬ ‫المصفوفات‬ ‫من‬ ‫خاص‬ ‫نوع‬ ‫القوائم‬ ‫تعتبر‬ ‫التقنية‬ ‫الناحية‬ ‫من‬ ‫ب‬ ‫ما‬‫م‬‫معه‬ ‫مل‬‫م‬‫نتعام‬ ‫ما‬‫م‬‫عندم‬ ‫أي‬ ، ‫مة‬‫م‬‫مرجعي‬ ‫ما‬‫م‬‫بقولن‬ ‫ما‬‫م‬‫هن‬ ‫مد‬‫م‬‫ونقص‬ ،‫مة‬‫م‬‫مرجعي‬ ‫كائنات‬ ‫من‬‫م‬‫ع‬ ‫عبارة‬ can't read superblock ،‫عنه‬ ‫نسخة‬ ‫وليس‬ ‫الكائن‬ ‫إلى‬ ‫يؤشر‬ ‫مؤشر‬ ‫مع‬ ‫نتعامل‬ ‫فإننا‬ ‫تعريفها‬ ‫عد‬ .‫البرمجة‬ ‫علينا‬ ‫يسهل‬ ‫و‬ ‫أكبر‬ ‫سرعة‬ ‫يعطينا‬ ‫وهذا‬ :‫القوائم‬ ‫عمليات‬ ‫أهم‬ ‫يوضح‬ ‫التالي‬ ‫الجدول‬ ‫العملية‬ ‫الوصف‬ L1 = [] ‫فارغة‬ ‫قائمة‬ L2 = [0, 1, 2, 3] ‫من‬ ‫اﻷدلة‬ ‫و‬ ‫عناصر‬ ‫أربعة‬ 0 ‫إلى‬ 3 L3 = ['abc', ['def', 'ghi']] ‫متداخلة‬ ‫قوائم‬ L2[i], L3[i][j] L2[i:j], len(L2) ‫الفهرسة‬ ‫التقطيع‬ ‫الطول‬ L1 + L2, L2 * 3 ‫سلسلة‬ ‫إعادة‬ for x in L2, 3 in L2 ‫تكرار‬ ‫العضوية‬ L2.append(4), L2.sort(), L2.index(1), L2.reverse() :‫الدوال‬ ‫توسيع‬ ‫ترتيب‬ ‫البحث‬ ‫عكس‬ del L2[k], L2[i:j] = [] ‫النكماش‬ L2[i] = 1, L2[i:j] = [4,5,6] ‫الفهرس‬ ‫إسناد‬ ‫المقطع‬ ‫اسناد‬ range(4), xrange(0, 4) ‫اﻷعداد‬ ‫من‬ ‫مجموعات‬ ‫أو‬ ‫قوائم‬ ‫إنشاء‬ ‫مي‬‫م‬‫ف‬ ‫مك‬‫م‬‫علي‬ ‫مرت‬ ‫مد‬‫م‬‫ق‬ ‫مابق‬‫م‬‫الس‬ ‫الجدول‬ ‫مي‬‫م‬‫ف‬ ‫ذكرت‬ ‫مي‬‫م‬‫الت‬ ‫العمليات‬ ‫مم‬‫م‬‫معظ‬ ‫مت‬‫م‬‫رأي‬ ‫مد‬‫م‬‫ق‬ ‫مك‬‫م‬‫أن‬ ‫متلحظ‬‫م‬‫س‬ ‫مثمل‬ ‫النصمية‬ ‫السملسل‬ ‫تدعمهما‬ ‫ول‬ ‫القوائم‬ ‫تدعمهما‬ ‫التمي‬ ‫العمليات‬ ‫بعمض‬ ‫إل‬ ، ‫النصمية‬ ‫السملسل‬ .‫والنكماش‬ ‫التوسع‬ ‫و‬ ‫المقاطع‬ ‫إسناد‬ ‫و‬ ‫الفهرس‬ ‫إسناد‬ 21
  • 23. ‫القوائم‬ ‫على‬ ‫العمل‬ ‫مي‬‫م‬‫ف‬ ‫ذكرت‬ ‫مي‬‫م‬‫الت‬ ‫العمليات‬ ‫منأخذ‬‫م‬‫س‬ ‫أخرى‬ ‫ومرة‬،‫ما‬‫م‬‫عليه‬ ‫مل‬‫م‬‫العم‬ ‫مي‬‫م‬‫ه‬ ‫القوائم‬ ‫مم‬‫م‬‫لفه‬ ‫مة‬‫م‬‫طريق‬ ‫مل‬‫م‬‫أفض‬ .‫العملية‬ ‫اﻷمثلة‬ ‫من‬ ‫بشيء‬ ‫نشرحها‬ ‫أن‬ ‫ونحاول‬ ‫السابق‬ ‫الجدول‬ ‫اﻷساسية‬ ‫العمليات‬ : ‫التالي‬ ‫المثال‬ ‫إليك‬ ‫و‬ ‫النصية‬ ‫السلسل‬ ‫تدعمها‬ ‫التي‬ ‫العمليات‬ ‫معظم‬ ‫تدعم‬ ‫القوائم‬ %python >>> len([1, 2, 3]) # length 3 >>> [1, 2, 3] + [4, 5, 6] # concatenation [1, 2, 3, 4, 5, 6] >>> ['Ni!'] * 4 # repetition ['Ni!', 'Ni!', 'Ni!', 'Ni!'] >>> for x in [1, 2, 3]: print x, # iteration ... 1 2 3 ‫والتقطيع‬ ‫الفهرسة‬ ‫مثمل‬ ‫جيمد‬ ‫بشكمل‬ ‫عليهما‬ ‫تعممل‬ ‫والتقطيمع‬ ‫الفهرسمة‬ ‫عمليتمي‬ ‫فإن‬، ‫سملسل‬ ‫عمن‬ ‫عبارة‬ ‫القوائم‬ ‫أن‬ ‫بمما‬ :‫المثال‬ ‫هذا‬ ‫وإليك‬ ، ‫كائن‬ ‫لكل‬ ‫الحقيقي‬ ‫الموقع‬ ‫ملحظة‬ ‫مع‬ ‫النصية‬ ‫السلسل‬ >>> L = ['spam', 'Spam', 'SPAM!'] >>> L[2] # offsets start at zero 'SPAM!' >>> L[-2] # negative: count from the right 'Spam' >>> L[1:] # slicing fetches sections ['Spam', 'SPAM!'] ‫القوائم‬ ‫في‬ ‫اﻹسناد‬ ‫قيم‬ ‫إسناد‬ ‫على‬ ‫المقدرة‬ ‫هي‬ ‫النصية‬ ‫السلسل‬ ‫عن‬ ‫متميزة‬ ‫وتعتبر‬ ‫القوائم‬ ‫بها‬ ‫أتت‬ ‫التي‬ ‫اﻷشياء‬ ‫لفعل‬ ‫تحتاج‬ ‫التي‬ ‫النصية‬ ‫السلسل‬ ‫بخلف‬ ‫ذلك‬ ‫و‬ ‫القوائم‬ ‫في‬ ‫والمقاطع‬ ‫الفهارس‬ ‫إلى‬ ‫جديدة‬ .‫الكائن‬ ‫من‬ ‫جديدة‬ ‫نسخة‬ ‫إنشاء‬ ‫إلى‬ ‫ذلك‬ 22
  • 24. ‫ذلك‬ ‫يبين‬ ‫كما‬ ‫المقطع‬ ‫أو‬ ‫الفهرس‬ ‫باستخدام‬ ‫المحتوى‬ ‫تغيير‬ ‫تستطيع‬ ‫القوائم‬ ‫استخدام‬ ‫عند‬ : ‫التالي‬ ‫المثال‬ >>> L = ['spam', 'Spam', 'SPAM!'] >>> L[1] = 'eggs' # index assignment >>> L ['spam', 'eggs', 'SPAM!'] >>> L[0:2] = ['eat', 'more'] # slice assignment: delete+insert >>> L # replaces items 0,1 ['eat', 'more', 'SPAM!'] ‫بحذف‬ ‫تقوم‬ ‫أول‬ ‫فإنها‬ ، ‫المقاطع‬ ‫طريق‬ ‫عن‬ ‫القوائم‬ ‫إلى‬ ‫باﻹسناد‬ ‫تقوم‬ ‫حين‬ ‫بايثون‬ ‫أن‬ ‫ملحظة‬ ‫مع‬ ‫سبيل‬ ‫على‬ ،‫واحد‬ ‫كائن‬ ‫من‬ ‫أكثر‬ ‫القيمة‬ ‫كانت‬ ‫ولو‬ ‫مكانه‬ ‫الجديدة‬ ‫القيمة‬ ‫تضع‬ ‫ثم‬ ‫المختار‬ ‫المقطع‬ ‫قائمة‬ ‫عندنا‬ ‫المثال‬ L [ ‫تساوي‬ 1 , 2 , 3 ‫التالي‬ ‫المقطع‬ ‫باستخدام‬ ‫اﻹسناد‬ ‫عملية‬ ‫تطبيق‬ ‫فعند‬ ] L[1:2] = [4, 5 [ ‫ستكون‬ ‫النتيجة‬ ‫فإن‬ ] 1 , 4 , 5 , 3 .] :‫التالي‬ ‫المثال‬ ‫إليك‬ ‫و‬ ‫العكس‬ ‫و‬ ‫البحث‬ ‫و‬ ‫الترتيب‬ ‫و‬ ‫توسيع‬ ‫منها‬ ‫الدوال‬ ‫بعض‬ ‫تدعم‬ ‫القوائم‬ >>> L.append('please') >>> L ['eat', 'more', 'SPAM!', 'please'] >>> L.sort() >>> L ['SPAM!', 'eat', 'more', 'please'] >>> L.reverse() >>> L ['please', 'more', 'eat', 'SPAM!'] >>> L.index('eat') 2 ‫أو‬ ‫الفهرس‬ ‫باستخدام‬ ‫الحذف‬ ‫تدعم‬ ‫فإنها‬ ، ‫مرنة‬ ‫سلسلة‬ ‫عن‬ ‫عبارة‬ ‫القوائم‬ ‫أن‬ ‫بما‬ ‫وأخيرا‬ : ‫المقطع‬ ‫أو‬ ‫الفهرس‬ ‫طريق‬ ‫عن‬ ‫الحذف‬ ‫أو‬ ‫فارغة‬ ‫قائمة‬ ‫إلى‬ ‫السناد‬ ‫طريق‬ ‫عن‬ ‫وذلك‬ ،‫المقطع‬ 23
  • 25. >>> L.sort() >>> L ['SPAM!', 'eat', 'more', 'please'] >>> del L[0] # delete one item >>> L ['eat', 'more', 'please'] >>> del L[1:] # delete an entire section >>> L # same as L[1:] = [] ['eat'] ‫القواميس‬ ‫كنا‬ ‫وإذا‬،‫بايثون‬ ‫لغة‬ ‫في‬ ‫المرنة‬ ‫المدمجة‬ ‫الكائنات‬ ‫أهم‬ ‫من‬ ‫القواميس‬ ‫تعتبر‬ ‫القوائم‬ ‫إلى‬ ‫باﻷضافة‬ ‫فهي‬ ‫ذلك‬ ‫بعكس‬ ‫القواميس‬ ‫فإن‬ ، ‫المرتبة‬ ‫الكائنات‬ ‫من‬ ‫مجموعة‬ ‫عن‬ ‫عبارة‬ ‫القوائم‬ ‫أن‬ ‫اعتبرنا‬ ‫و‬ ‫ترتيب‬ ‫عليه‬ ‫يقوم‬ ‫الذي‬ ‫القوائم‬ ‫في‬ ‫الرئيسي‬ ‫الشيء‬ ‫ويعتبر‬ ،‫المرتبة‬ ‫غير‬ ‫الكائنات‬ ‫من‬ ‫مجموعة‬ .‫العنصر‬ ‫موقع‬ ‫وليس‬ ‫المفتاح‬ ‫هو‬ ‫القاموس‬ ‫عناصر‬ ‫إحضار‬ ‫التي‬ ‫المعطيات‬ ‫بنى‬ ‫و‬ ‫خوارزميات‬ ‫من‬ ‫الكثير‬ ‫استبدال‬ ‫استطاعت‬ ‫القواميس‬ ‫فإن‬ ‫تلحظ‬ ‫وكما‬ ‫في‬ ‫القواميس‬ ‫تستخدم‬ ‫وأيضا‬ ،‫المستوى‬ ‫منخفضة‬ ‫اللغات‬ ‫بعض‬ ‫في‬ ‫يدويا‬ ‫استخدامها‬ ‫إلى‬ ‫ستضطر‬ .‫المستوى‬ ‫منخفضة‬ ‫اللغات‬ ‫بعض‬ ‫في‬ ‫الجداول‬ ‫عمل‬ ‫ﻷداء‬ ‫اﻷحيان‬ ‫بعض‬ :‫منها‬ ‫خصائص‬ ‫بعدة‬ ‫القواميس‬ ‫وتتميز‬ ‫الموقع‬ ‫وليس‬ ‫المفتاح‬ ‫باستخدام‬ ‫الوصول‬ ‫باستخدام‬ ‫القيم‬ ‫يضع‬ ‫الترابط‬ ‫هذا‬،‫المترابطة‬ ‫المصفوفات‬ ‫عليها‬ ‫يطلق‬ ‫اﻷحيان‬ ‫بعض‬ ‫في‬ ‫القواميس‬ ،‫به‬ ‫خزن‬ ‫الذي‬ ‫المفتاح‬ ‫باستخدام‬ ‫القاموس‬ ‫في‬ ‫عنصر‬ ‫أي‬ ‫إحضار‬ ‫وباستطاعتك‬ ،‫المفاتيح‬ .‫الموقع‬ ‫باستخدام‬ ‫وليس‬ ‫المفتاح‬ ‫باستخدام‬ ‫ولكن‬ ‫الفهرس‬ ‫عمليات‬ ‫نفس‬ ‫ستستخدم‬ ‫متجانسة‬ ‫غير‬ ‫كائنات‬ ‫من‬ ‫منظمة‬ ‫غير‬ ‫مجموعة‬ ‫ترتيب‬ ‫تقدم‬ ‫بايثون‬ ‫الحقيقة‬ ‫في‬،‫معين‬ ‫ترتيب‬ ‫على‬ ‫تبقى‬ ‫ل‬ ‫القواميس‬ ‫في‬ ‫العناصر‬ ،‫القوائم‬ ‫بخلف‬ ‫العناصر‬ ‫أماكن‬ ‫إلى‬ )‫فيزيائية‬ ‫(غير‬ ‫راوبط‬ ‫تقدم‬ ‫المفاتيح‬ ،‫سريعة‬ ‫مشاهدة‬ ‫تقديم‬ ‫يضمن‬ ‫عشوائي‬ .‫القواميس‬ ‫في‬ ‫مرنة‬ ‫خصائص‬ 24
  • 26. ‫يمكنها‬ ‫وكذلك‬ ،‫جديدة‬ ‫نسخة‬ ‫إنشاء‬ ‫بدون‬ ‫والتقلص‬ ‫التوسيع‬ ‫بميزة‬ ‫تزودك‬ ‫القواميس‬ ‫القوائم‬ ‫مثل‬ ‫في‬ ‫قواميس‬ ‫تنشأ‬ ‫أن‬ ‫يمكنك‬ ‫بحيث‬ ‫التداخل‬ ‫ميزة‬ ‫وكذلك‬،‫نوع‬ ‫كل‬ ‫من‬ ‫عناصر‬ ‫على‬ ‫تحتوي‬ ‫على‬ ‫بالعتماد‬ ‫جديدة‬ ‫قيم‬ ‫تسند‬ ‫أن‬ ‫يمكنك‬ ‫وأيضا‬،‫قواميس‬ ‫في‬ ‫قوائم‬ ‫يمكنك‬ ‫وكذلك‬ ‫قواميس‬ ‫المفاتيح‬ ‫المرجعية‬ ‫كائنات‬ ‫من‬ ‫جداول‬ ‫عن‬ ‫عبارة‬ ‫القواميس‬ ‫فإن‬ ، ‫المرجعية‬ ‫الكائنات‬ ‫من‬ ‫مصفوفة‬ ‫عن‬ ‫عبارة‬ ‫القوائم‬ ‫أن‬ ‫قلنا‬ ‫كنا‬ ‫إذا‬ ‫المعطيات‬ ‫بنى‬ ‫من‬ ‫جداول‬ ‫تستخدم‬ ‫القواميس‬ ‫داخليا‬ .‫المرجعية‬ ‫الكائنات‬ ‫من‬ ‫منظمة‬ ‫غير‬ ‫جداول‬ ‫بايثون‬ ‫ذلك‬ ‫على‬ ‫وعلوة‬ ،‫الطلب‬ ‫حسب‬ ‫تكبر‬ ‫و‬ ‫صغيرة‬ ‫تبدأ‬ ‫وهي‬ ‫السريع‬ ‫السترجاع‬ ‫ميزة‬ ‫تدعم‬ ‫التعمق‬ ‫وعند‬ .‫كبيرة‬ ‫سرعة‬ ‫السترجاع‬ ‫يعطي‬ ‫مما‬ ‫المفاتيح‬ ‫ﻹيجاد‬ ‫محسنة‬ ‫خوارزميات‬ ‫توظف‬ .‫بالضبط‬ ‫القوائم‬ ‫مثل‬ ‫منها‬ ‫نسخ‬ ‫وليس‬ ‫الكائنات‬ ‫مراجع‬ ‫تخزن‬ ‫القواميس‬ ‫أن‬ ‫نجد‬ ‫تكتب‬ .‫القوائم‬ ‫تشابه‬ ‫أنها‬ ‫لحظ‬ ،‫القواميس‬ ‫على‬ ‫الشائعة‬ ‫العمليات‬ ‫أهم‬ ‫يوضح‬ ‫التالي‬ ‫الجدول‬ :‫التالي‬ ‫شكل‬ ‫على‬ ‫القواميس‬ key:value ‫العملية‬ ‫الوصف‬ D1 = { } ‫فارغ‬ ‫قاموس‬ d2 = {'spam': 2, 'eggs': 3} ‫القاموس‬ ‫في‬ ‫عنصرين‬ d3 = {'food': {'ham': 1, 'egg': 2}} ‫التداخل‬ d2['eggs'], d3['food']['ham'] ‫المفتاح‬ ‫باستخدام‬ ‫الفهرسة‬ d2.has_key('eggs'), d2.keys(), d2.values() ‫العضوية‬ ‫دالة‬ : ‫الدوال‬ ‫المفاتيح‬ ‫قائمة‬ ‫القيم‬ ‫قائمة‬ len(d1) )‫المخزنة‬ ‫اﻹدخالت‬ ‫(عدد‬ ‫الطول‬ d2[key] = new, del d2[key] ‫والتعديل‬ ‫اﻹضافة‬ ‫الحذف‬ ‫القواميس‬ ‫على‬ ‫العمل‬ :‫السابق‬ ‫الجدول‬ ‫في‬ ‫ذكرت‬ ‫التي‬ ‫العمليات‬ ‫بعض‬ ‫تطبيق‬ ‫في‬ ‫حريتنا‬ ‫لنأخذ‬ ‫المفسر‬ ‫إلى‬ ‫نرجع‬ ‫دعنا‬ :‫اﻷساسية‬ ‫العمليات‬ ‫المفتاح‬ ‫باسمتخدام‬ ‫عناصمره‬ ‫إلى‬ ‫والوصمول‬ ‫قاموس‬ ‫إنشاء‬ ‫يمكنمك‬ ، ‫عام‬ ‫بشكمل‬ key ‫الدالة‬ ‫و‬ ، 25
  • 27. len ‫أو‬ ‫القاموس‬ ‫فمي‬ ‫المخزنمة‬ ‫العناصمر‬ ‫عدد‬ ‫ترجمع‬ ‫وهمي‬ ،‫القواميمس‬ ‫ممع‬ ‫أيضما‬ ‫تعممل‬ ‫المدمجمة‬ ‫الدالة‬ ‫فإن‬ ‫المفاتيح‬ ‫عن‬ ‫حديثنا‬ ‫وعند‬ .‫المفاتيح‬ ‫قائمة‬ ‫طول‬ ‫ترجع‬ ‫آخر‬ ‫بمعنى‬ keys ‫كل‬ ‫ترجع‬ ‫بشكممل‬ ‫القواميممس‬ ‫لمعالجممة‬ ‫قويممة‬ ‫أداة‬ ‫يعتممبر‬ ‫هذا‬ ،‫قائمممة‬ ‫فممي‬ ‫مجموعممة‬ ‫القاموس‬ ‫فممي‬ ‫المفاتيممح‬ .)‫عشوائية‬ ‫القواميس‬ ‫أن‬ ‫(تذكر‬، ‫المفتايح‬ ‫قائمة‬ ‫ترتيب‬ ‫في‬ ‫عليه‬ ‫تعتمد‬ ‫ل‬ ‫ولكن‬ ،‫متسلسل‬ %python >>> d2 = {'spam': 2, 'ham': 1, 'eggs': 3} >>> d2['spam'] # fetch value for key 2 >>> len(d2) # number of entries in dictionary 3 >>> d2.has_key('ham') # key membership test (1 means true) 1 >>> d2.keys() # list of my keys ['eggs', 'spam', 'ham'] ‫القواميس‬ ‫في‬ ‫التغيير‬ ‫بدون‬، ‫أيضا‬ ‫جديدة‬ ‫قيم‬ ‫اسناد‬ ‫و‬ ‫تصغر‬ ‫و‬ ‫تكبر‬ ‫أن‬ ‫تستطيع‬ ‫فلذا‬ ،‫مرتبة‬ ‫غير‬ ‫القواميس‬ ‫أن‬ ‫قلنا‬ ‫كما‬ ‫ﻹنشاء‬ ‫تغييرها‬ ‫أو‬ ‫قيمة‬ ‫إسناد‬ ‫عليك‬ ‫فقط‬ ،‫بالضبط‬ ‫القوائم‬ ‫مثل‬ ‫جديدة‬ ‫قواميس‬ ‫إنشاء‬ ‫إلى‬ ‫الحاجة‬ ‫والدالة‬ .‫القاموس‬ ‫في‬ ‫جديدة‬ ‫مدخلة‬ del ‫القوائم‬ ‫على‬ ‫تعمل‬ ‫مثلما‬ ‫القواميس‬ ‫على‬ ‫أيضا‬ ‫تعمل‬ :‫التالي‬ ‫المثال‬ ‫إليك‬ ، ‫بالضبط‬ >>> d2['ham'] = ['grill', 'bake', 'fry'] # change entry >>> d2 {'eggs': 3, 'spam': 2, 'ham': ['grill', 'bake', 'fry']} >>> del d2['eggs'] # delete entry >>> d2 {'spam': 2, 'ham': ['grill', 'bake', 'fry']} >>> d2['brunch'] = 'Bacon' # add new entry >>> d2 {'brunch': 'Bacon', 'spam': 2, 'ham': ['grill', 'bake', 'fry']} ‫طريقة‬ ‫عن‬ ‫تختلف‬ ‫فهي‬ ، ‫اﻷخير‬ ‫المثال‬ ‫القاموس‬ ‫في‬ ‫جديدة‬ ‫مدخلة‬ ‫إنشاء‬ ‫في‬ ‫الطريقة‬ ‫هنا‬ ‫لحظ‬ 26
  • 28. ‫المفتاح‬ ‫على‬ ‫بل‬ ‫موقع‬ ‫على‬ ‫تعتمد‬ ‫ل‬ ‫القواميس‬ ‫أن‬ ‫وذلك‬ ، ‫القوائم‬ ‫في‬ ‫الجديدة‬ ‫مدخلة‬ ‫إضافة‬ ‫الدالة‬ ‫إلى‬ ‫تحتاج‬ ‫فهي‬ ‫القواميس‬ ‫بعكس‬ ،‫المكان‬ ‫يهمها‬ ‫ل‬ ‫و‬ ‫عشوائية‬ ‫فهي‬ append ‫ﻹضافة‬ .‫القائمة‬ ‫في‬ ‫جديدة‬ ‫مدخلة‬ ‫واقعي‬ ‫مثال‬ ‫العمود‬ ‫في‬ -‫هنا‬ ‫ثلث‬- ‫اللغات‬ ‫أسماء‬ ‫يحوي‬ ‫جدول‬ ‫إنشاء‬ ‫وهو‬ ‫واقعية‬ ‫أكثر‬ ‫مثال‬ ‫هنا‬ ‫سنأخذ‬ ‫وحاول‬ ‫المثال‬ ‫هذا‬ ‫في‬ ‫ركز‬،-‫القيمة‬ – ‫مؤلفيها‬ ‫أسماء‬ ‫يحوي‬ ‫الثاني‬ ‫والعمود‬ -‫المفتاح‬- ‫اﻷول‬ :‫تطبيقه‬ >>> table = {'Python': 'Guido van Rossum', ... 'Perl': 'Larry Wall', ... 'Tcl': 'John Ousterhout' } ... >>> language = 'Python' >>> creator = table[language] >>> creator 'Guido van Rossum' >>> for lang in table.keys(): print lang, 't', table[lang] ... Tcl John Ousterhout Python Guido van Rossum Perl Larry Wall ‫باستخدام‬ ‫مباشر‬ ‫بشكل‬ ‫تكررها‬ ‫أن‬ ‫يمكن‬ ‫فل‬ ‫متسلسلة‬ ‫ليست‬ ‫القواميس‬ ‫ﻷن‬،‫اﻷخير‬ ‫اﻷمر‬ ‫لحظ‬ for ،‫القاموس‬ ‫عناصر‬ ‫جميع‬ ‫تعرض‬ ‫أن‬ ‫أردت‬ ‫إذا‬ ‫ولكن‬ .‫القوائم‬ ‫أو‬ ‫النصية‬ ‫السلسل‬ ‫مثل‬ ‫الدالة‬ ‫باستخدام‬ ‫أول‬ ‫فقم‬ keys ‫قيمتها‬ ‫واعرض‬ ‫كررها‬ ‫ثم‬ ‫القاموس‬ ‫في‬ ‫المفاتيح‬ ‫قائمة‬ ‫لجلب‬ ‫باستخدام‬ for ‫تعرف‬ ‫تكن‬ ‫لم‬ ‫إذا‬ ، for ‫الدروس‬ ‫في‬ ‫بالتفصيل‬ ‫ندرسها‬ ‫فسوف‬ ‫تتضايق‬ ‫فل‬ .‫القادمة‬ :‫اﻷخرى‬ ‫الكائنات‬ ‫إلى‬ ‫ننتقل‬ ‫أن‬ ‫قبل‬ ‫القواميس‬ ‫حول‬ ‫تتذكرها‬ ‫أن‬ ‫يجب‬ ‫الملحظات‬ ‫بعض‬ ‫وهنا‬ – ‫اﻷخير‬ ‫المثال‬ ‫في‬ ‫رأينا‬ ‫مثلما‬ ‫القواميس‬ ‫مع‬ ‫تعمل‬ ‫ل‬ ‫التسلسل‬ ‫على‬ ‫تعتمد‬ ‫التي‬ ‫العمليات‬ – ‫القاموس‬ ‫في‬ ‫جديدة‬ ‫مدخلة‬ ‫تضيف‬ ‫فإنك‬ ‫جديدة‬ ‫قيمة‬ ‫إسناد‬ ‫عند‬ – ‫القوائم‬ ‫ماعدا‬ ‫الكائنات‬ ‫كل‬ ‫تعمل‬ ‫بل‬ ، ‫نصية‬ ‫سلسلة‬ ‫المفتاح‬ ‫يكون‬ ‫أن‬ ‫شرطا‬ ‫ليس‬ 27
  • 29. ‫المجموعات‬ ‫ببساطة‬ ‫تتركب‬ ‫المجموعات‬،‫المجموعات‬ ‫هي‬ ‫المجمعات‬ ‫ﻷنواع‬ ‫لبايثون‬ ‫اسكشافنا‬ ‫في‬ ‫نوع‬ ‫آخر‬ ‫تتغير‬ ‫أن‬ ‫يمكن‬ ‫ل‬ ‫القوائم‬ ‫أن‬ ‫باستثناء‬ ‫القوائم‬ ‫مثل‬ ‫بالضبط‬ ‫تعمل‬ ‫وهي‬،‫الكائنات‬ ‫من‬ ‫مجموعة‬ ‫من‬ ‫قوسين‬ ‫بين‬ ‫وليس‬ ‫قوسين‬ ‫بين‬ ‫محصورة‬ ‫متسلسلة‬ ‫كعناصر‬ ‫عادة‬ ‫وتكتب‬ ‫ثابتة‬ ‫فهي‬ ‫مكانها‬ ‫من‬ :‫وهي‬ ‫القوائم‬ ‫من‬ ‫خصائصها‬ ‫معظم‬ ‫تستمد‬ ‫والمجموعات‬.‫القوائم‬ ‫مثل‬ ‫معكوفين‬ ‫الكائنات‬ ‫من‬ ‫منظمة‬ ‫مجموعة‬ ‫نسق‬ ‫في‬ ‫المنظمة‬ ‫الكائنات‬ ‫من‬ ‫مجموعة‬ ‫عن‬ ‫عبارة‬ ‫المجموعات‬ ‫والقوائم‬ ‫النصية‬ ‫السلسل‬ ‫مثل‬ ‫الكائنات‬ ‫أنواع‬ ‫كل‬ ‫على‬ ‫تحتوي‬ ‫أن‬ ‫يمكن‬ ‫القوائم‬ ‫ومثل‬ ‫معين‬ ‫الموقع‬ ‫باستخدام‬ ‫الوصول‬ ‫موقعه‬ ‫باستخدام‬ ‫المجموعة‬ ‫في‬ ‫عنصر‬ ‫أي‬ ‫إلى‬ ‫الوصول‬ ‫يمكنك‬ ‫والقوائم‬ ‫النصية‬ ‫السلسل‬ ‫مثل‬ ‫أخذناها‬ ‫وأن‬ ‫سبق‬ ‫والتي‬ ‫الموقع‬ ‫تستخدم‬ ‫التي‬ ‫العلميات‬ ‫كل‬ ‫تدعم‬ ‫المجموعات‬ ‫و‬ ،‫مفتاحه‬ ‫وليس‬ .‫والتقطيع‬ ‫الفهرس‬ ‫باستخدام‬ ‫الوصول‬ ‫مثل‬ ‫الكائنات‬ ‫من‬ ‫ثابتة‬ ‫سلسلة‬ ‫المكان‬ ‫في‬ ‫تغيير‬ ‫عملية‬ ‫أي‬ ‫تدعم‬ ‫ل‬ ‫أنها‬ ‫ذلك‬ ‫ويعني‬ ‫ثابتة‬ ‫المجموعات‬ ‫النصية‬ ‫السلسل‬ ‫مثل‬ ‫لفعل‬ ‫يجب‬ ‫بل‬ ‫والتقلص‬ ‫التوسع‬ ‫تدعم‬ ‫ل‬ ‫أيضا‬ ‫وهي‬ ،‫القوائم‬ ‫في‬ ‫رأيتها‬ ‫التي‬ ‫مثل‬ )‫(السناد‬ .‫تصغيرها‬ ‫أو‬ ‫تكبيرها‬ ‫المراد‬ ‫المجموعة‬ ‫من‬ ‫جديدة‬ ‫نسخة‬ ‫إنشاء‬ ‫ذلك‬ ‫المرجعية‬ ‫الكائنات‬ ‫من‬ ‫مصفوفة‬ .‫المرجعية‬ ‫الكائنات‬ ‫من‬ ‫مصفوفة‬ ‫عن‬ ‫عبارة‬ ‫المجموعة‬ ،‫بالضبط‬ ‫القوائم‬ ‫مثل‬ ‫فارغة‬ ‫مجموعة‬ ‫تنشيء‬ ‫لكي‬ ‫ملحظة‬ ‫مع‬ ،‫المجموعات‬ ‫على‬ ‫العمليات‬ ‫أهم‬ ‫يوضح‬ ‫التالي‬ ‫الجدول‬ .‫فقط‬ ‫قوسين‬ ‫وضع‬ ‫يكفي‬ ‫فقط‬ ‫العملية‬ ‫الوصف‬ () ‫فارغة‬ ‫مجموعة‬ t1 = (0,) ‫المجموعة‬ ‫في‬ ‫واحد‬ ‫عنصر‬ t2 = (0, 1, 2, 3) ‫عناصر‬ ‫أربعة‬ t2 = 0, 1, 2, 3 ‫أيضا‬ ‫عناصر‬ ‫أربعة‬ 28
  • 30. ‫العملية‬ ‫الوصف‬ t3 = ('abc', ('def', 'ghi')) t1[i], t3[i][j] t1[i:j], len(t1) ‫التداخل‬ ‫الفهرسة‬ ‫التقطيع‬ ‫الطول‬ t1 + t2 t2 * 3 ‫الجمع‬ ‫اﻹعادة‬ for x in t2, 3 in t2 ‫التكرار‬ ‫العضوية‬ ‫إغلق‬ ‫في‬ ‫تستخدم‬ ‫اﻷقواس‬ ‫أن‬ ‫بسبب‬ ،‫أكثر‬ ‫إيضاحا‬ ‫تستحق‬ ‫الجدول‬ ‫في‬ ‫اﻷولى‬ ‫الصفوف‬ ‫أربعة‬ ‫بين‬ ‫واحدا‬ ‫كائنا‬ ‫أن‬ ‫بايثون‬ ‫ﻹخبار‬ ‫مميز‬ ‫شيء‬ ‫إلى‬ ‫تحتاج‬ ‫فإنك‬ )‫اﻷعداد‬ ‫راجع‬ ( ‫المعاملت‬ ‫قبل‬ ‫سفلية‬ ‫فاصلة‬ ‫ضع‬ ‫بساطة‬ ‫بكل‬،‫بسيط‬ ‫تعبير‬ ‫عن‬ ‫عبارة‬ ‫وليس‬ ‫المجموعات‬ ‫فئة‬ ‫من‬ ‫هو‬ ‫القوسين‬ .‫مجموعة‬ ‫عن‬ ‫عبارة‬ ‫هو‬ ‫القوسين‬ ‫بين‬ ‫ما‬ ‫أن‬ ‫بايثون‬ ‫تخبر‬ ‫وبذلك‬ ،‫القوسين‬ ‫إقفال‬ ‫في‬ ‫كما‬ ‫المجموعات‬ ‫إنشاء‬ ‫في‬ ‫ل‬ ‫أو‬ ‫اﻷقواس‬ ‫وضع‬ ‫في‬ ‫الحرية‬ ‫لك‬ ‫تتيح‬ ‫بايثون‬ ‫فإن‬ ‫خاصة‬ ‫وكحالة‬ ‫تضمن‬ ‫ﻷنها‬ ‫اﻷقواس‬ ‫تستخدم‬ ‫بأن‬ ‫الفرص‬ ‫لك‬ ‫سمحت‬ ‫إذا‬ ‫دائما‬ ‫يفضل‬ ‫ولكن‬ ،‫الرابع‬ ‫الصف‬ .‫التشويش‬ ‫عدم‬ ‫لك‬ ‫النصية‬ ‫السلسل‬ ‫على‬ ‫لمثيلتها‬ ‫تماما‬ ‫مشابهة‬ ‫فهي‬ ‫السابق‬ ‫الجدول‬ ‫في‬ ‫اﻷخيرة‬ ‫العمليات‬ ‫في‬ ‫بايثون‬ ‫مفسر‬ ‫على‬ ‫أنت‬ ‫تتطبقها‬ ‫أن‬ ‫يكفي‬ ‫فقط‬ ، ‫أخرى‬ ‫مرة‬ ‫لشرحها‬ ‫داعي‬ ‫يوجد‬ ‫ل‬ ‫فلذا‬ ‫والقوائم‬ .‫لها‬ ‫فهمك‬ ‫من‬ ‫للتأكد‬ ‫المجموعات؟‬ ‫نستخدم‬ ‫لماذا‬ ‫هذا‬ ‫يكون‬ ‫قد‬ ‫القوائم؟‬ ‫عندنا‬ ‫كان‬ ‫إذا‬ ‫المجموعات‬ ‫نستخدم‬ ‫لماذا‬ ‫للمبتدئ‬ ‫يتبادر‬ ‫سؤال‬ ‫أول‬ ‫باستخدام‬ ‫يمكن‬ ‫مثل‬ ،‫مميزات‬ ‫من‬ ‫العديد‬ ‫يوفر‬ ‫المجموعات‬ ‫ثبات‬ ‫أن‬ ‫إجابة‬ ‫أفضل‬ ‫ولكن‬ ‫تاريخيا‬ .‫البرنامج‬ ‫في‬ ‫آخر‬ ‫مكان‬ ‫في‬ ‫أخرى‬ ‫مراجع‬ ‫باستخدام‬ ‫تتغير‬ ‫ل‬ ‫الكائنات‬ ‫أن‬ ‫التأكد‬ ‫المجموعات‬ ‫القوائم‬ ‫استخدم‬ ‫عام‬ ‫وبشكل‬ ،‫القوائم‬ ‫وليس‬ ‫المجموعات‬ ‫إلى‬ ‫تحتاج‬ ‫المدمجة‬ ‫العمليات‬ ‫بعض‬ .‫المجموعات‬ ‫فاستخدم‬ ‫الحالت‬ ‫بقية‬ ‫في‬ ‫أما‬ ‫التغيير‬ ‫عليها‬ ‫يطرأ‬ ‫التي‬ ‫المنظمة‬ ‫المجموعات‬ ‫في‬ 29
  • 31. ‫الملفات‬ ‫في‬ ‫المعلومات‬ ‫تخزن‬ ‫التي‬ ‫الملفات‬ ‫أسماء‬ ‫فكرة‬ ‫عن‬ ‫خلفية‬ ‫عندهم‬ ‫القراء‬ ‫معظم‬ ‫أن‬ ‫أمل‬ ‫على‬ ‫الوصول‬ ‫بطريقة‬ ‫يزودنا‬ ‫بايثون‬ ‫في‬ ‫مدمج‬ ‫كائن‬ ‫آخر‬ ‫يكون‬،‫التشغيل‬ ‫نظام‬ ‫يديرها‬ ‫التي‬ ‫و‬ ‫الكميبوتر‬ ‫مدمجة‬ ‫الدالة‬ ‫إن‬.‫بايثون‬ ‫برامج‬ ‫ضمن‬ ‫الملفات‬ ‫تلك‬ ‫إلى‬ open ‫وهي‬ ‫بايثون‬ ‫في‬ ‫الملف‬ ‫كائن‬ ‫تنشأ‬ ‫الدالة‬ ‫مناداة‬ ‫بعد‬،‫جهازنا‬ ‫على‬ ‫المستقر‬ ‫الملف‬ ‫إلى‬ ‫الربط‬ ‫خدمة‬ ‫لنا‬ ‫تقدم‬ open ‫القراءة‬ ‫يمكننا‬، .‫ملف‬ ‫الكائن‬ ‫دوال‬ ‫بمناداة‬،‫المربوط‬ ‫الملف‬ ‫من‬ ‫والكتابة‬ ‫كائنات‬ ‫و‬ ‫عددا‬ ‫ليس‬ ‫ﻷنه‬ ،‫قليل‬ ‫غريبا‬ ‫سنجده‬ ‫اﻷخرى‬ ‫بالكائنات‬ ‫الملفات‬ ‫كائن‬ ‫مقارنة‬ ‫عند‬ ‫وهذا‬ ،‫الملفات‬ ‫في‬ ‫الشائعة‬ ‫العمليات‬ ‫لمعالجة‬ ‫دوال‬ ‫استخدام‬ ‫هو‬ ‫إنما‬ ،‫خرائطية‬ ‫أو‬ ‫متسلسلة‬ ‫وهو‬،‫والدخل‬ ‫الخرج‬ ‫معالجة‬ ‫مجال‬ ‫في‬ ‫يدرس‬ ‫وإنما‬ ، ‫اﻷخرى‬ ‫اللغات‬ ‫في‬ ‫موجودا‬ ‫ليس‬ ‫الكائن‬ .‫الملفات‬ ‫لمعالجة‬ ‫أخرى‬ ‫دوال‬ ‫يستخدم‬ ‫إنما‬ ‫و‬ ‫مستقل‬ ‫ليس‬ ‫الدالة‬ ‫مناداة‬ ‫يجب‬ ‫الملف‬ ‫لفتح‬ ،‫الملفات‬ ‫على‬ ‫العلميات‬ ‫ﻷهم‬ ‫ملخص‬ ‫يوضح‬ ‫التالي‬ ‫الجدول‬ open ‫للقراء‬ ‫الملف‬ ‫معاملة‬ ‫طريقة‬ ‫الثاني‬ ‫و‬، ‫مساره‬ ‫مع‬ ‫الملف‬ ‫اسم‬ ‫اﻷول‬ ‫بمعاملين‬ ‫تزويدها‬ ‫و‬ r ‫للكتابة‬ w ‫الملف‬ ‫آخر‬ ‫في‬ ‫للكتابة‬ a ‫سلسل‬ ‫يكونا‬ ‫أن‬ ‫يجب‬ ‫المعاملين‬ ‫كل‬ ‫أن‬ ‫ملحظة‬ ‫مع‬ ، :‫نصية‬ ‫العملية‬ ‫الوصف‬ output = open('/tmp/spam', 'w') ‫ملف‬ ‫إنشاء‬ output ‫الكتابة‬ ‫نمط‬ ‫في‬ input = open('data', 'r') ‫ملف‬ ‫إنشاء‬ output ‫القراءة‬ ‫نمط‬ ‫في‬ S = input.read() ‫سلسل‬ ‫إلى‬ ‫بالكامل‬ ‫الملف‬ ‫خرج‬ ‫اسناد‬ ‫نصية‬ S = input.read(N) ‫قراءة‬ N )‫أكثر‬ ‫أو‬ ‫(واحد‬ ‫البايتات‬ ‫من‬ S = input.readline() ‫التالي‬ ‫السطر‬ ‫قراءة‬ L = input.readlines() ‫بحيث‬ ‫قائمة‬ ‫في‬ ‫ووضعه‬ ‫الملف‬ ‫خرج‬ ‫قراءة‬ ‫في‬ ‫عنصر‬ ‫يساوي‬ ‫الملف‬ ‫في‬ ‫سطر‬ ‫كل‬ ‫القائمة‬ output.write(S) ‫كتابة‬ S ‫الملف‬ ‫داخل‬ output output.writelines(L) ‫في‬ ‫النصية‬ ‫السلسلة‬ ‫أسطر‬ ‫جميع‬ ‫كتابة‬ ‫قائمة‬ L ‫الملف‬ ‫داخل‬ output output.close() ‫يمكن‬ ‫ل‬ ‫الملف‬ ‫إغلق‬ ‫بعد‬ ،‫الملف‬ ‫إغلق‬ ‫خطأ‬ ‫ويعطي‬ ‫عليه‬ ‫الكتابة‬ ‫أو‬ ‫منه‬ ‫القراءة‬ ‫ذلك‬ ‫محاولة‬ ‫عند‬ 30
  • 32. ‫محتويات‬ ‫مع‬ ‫تتعامل‬ ‫بايثون‬ ‫الحالت‬ ‫كل‬ ‫وفي‬ ،‫منه‬ ‫والقراءة‬ ‫الكتابة‬ ‫يمكنك‬ ‫للملف‬ ‫إنشائك‬ ‫عند‬ ‫كسلسل‬ ‫تعاملها‬ ‫فهي‬ ‫الملفات‬ ‫إلى‬ ‫الكتابة‬ ‫عند‬ ‫وكذلك‬ ،‫أعداد‬ ‫كانت‬ ‫ولو‬ ‫نصية‬ ‫كسلسل‬ ‫الملف‬ ‫كل‬ ‫على‬ ‫للحصول‬ ‫بايثون‬ ‫وثائق‬ ‫مراجعة‬ ‫يمكنك‬ ‫و‬ ‫العمليات‬ ‫أهم‬ ‫يحوي‬ ‫السابق‬ ‫الجدول‬ ،‫النصية‬ .‫الملفات‬ ‫عمليات‬ ‫الملف‬ ‫إغلق‬ ‫عملية‬ close ‫وهي‬ ‫الخارجي‬ ‫والملف‬ ‫البرنامج‬ ‫بين‬ ‫التصال‬ ‫إغلق‬ ‫على‬ ‫تعمل‬ ، ‫بغلق‬ ‫يقوم‬ ‫نفايات‬ ‫مجمع‬ ‫تملك‬ ‫بايثون‬ ‫أن‬ ‫تعلم‬ ‫كما‬ ‫ولكن‬ ،‫الذاكرة‬ ‫من‬ ‫مساحة‬ ‫لتحرير‬ ‫مهم‬ ‫الصغيرة‬ ‫البرامج‬ ‫في‬ ‫لتضر‬ ‫الملف‬ ‫إغلق‬ ‫وعملية‬ ،‫تلقائي‬ ‫إليه‬ ‫حاجة‬ ‫في‬ ‫تكون‬ ‫ل‬ ‫عندما‬ ‫التصال‬ ‫بنفسك‬ ‫الملفات‬ ‫غلق‬ ‫عن‬ ‫تتهاون‬ ‫أل‬ ‫يجب‬ ‫كبيرة‬ ‫أنظمة‬ ‫على‬ ‫العمل‬ ‫عند‬ ‫ولكن‬ ،‫سكربتات‬ ‫مثل‬ .‫جيدا‬ ‫أداء‬ ‫لتضمن‬ ‫النفايات‬ ‫مجمع‬ ‫على‬ ‫العتماد‬ ‫وعدم‬ ‫الملفات‬ ‫على‬ ‫العمل‬ ‫ممط‬‫م‬‫نم‬ ‫ممي‬‫م‬‫ف‬ ‫ملف‬ ‫ممح‬‫م‬‫بفت‬ ‫مما‬‫م‬‫قمن‬ ‫ممء‬‫م‬‫شي‬ ‫أول‬ ،‫الملفات‬ ‫على‬ ‫ممل‬‫م‬‫العم‬ ‫ممة‬‫م‬‫كيفي‬ ‫ممح‬‫م‬‫يوض‬ ‫مميط‬‫م‬‫بس‬ ‫مثال‬ ‫مما‬‫م‬‫هن‬ ‫يعطيمه‬ ‫و‬ ‫جديمد‬ ‫ملف‬ ‫بإنشاء‬ ‫يقوم‬ ‫يجده‬ ‫لم‬ ‫فإن‬ ‫المعطمى‬ ‫السمم‬ ‫عمن‬ ‫بالبحمث‬ ‫المفسمر‬ ‫فيقوم‬،‫الكتابمة‬ ‫إعطاءه‬ ‫ملحظمة‬ ‫ممع‬ ‫واحمد‬ ‫سمطر‬ ‫المنشمئ‬ ‫الملف‬ ‫فمي‬ ‫بالكتابمة‬ ‫قمنما‬ ‫ثمم‬ ،‫إياه‬ ‫أعطيناه‬ ‫الذي‬ ‫السمم‬ ‫السمطر‬ ‫بقراءة‬ ‫وقمنما‬ ‫القراءة‬ ‫نممط‬ ‫فمي‬ ‫بفتحمه‬ ‫قمنما‬ ‫ثمم‬ ،‫الملف‬ ‫بإغلق‬ ‫قمنما‬ ‫ثمم‬ ،‫جديمد‬ ‫سمطر‬ ‫علممة‬ :‫فارغ‬ ‫الثاني‬ ‫السطر‬ ‫ﻷنه‬ ‫فراغ‬ ‫الناتج‬ ‫فأعطنا‬ ‫الثاني‬ ‫السطر‬ ‫قراءة‬ ‫حاولنا‬ ‫ثم‬،‫منه‬ ‫اﻷول‬ >>> myfile = open('myfile', 'w') # open for output (creates) >>> myfile.write('hello text filen') # write a line of text >>> myfile.close() >>> myfile = open('myfile', 'r') # open for input >>> myfile.readline() # read the line back 'hello text file012' >>> myfile.readline() # empty string: end of file '' :‫الملفات‬ ‫حول‬ ‫الملحظات‬ ‫بعض‬ ‫وهناك‬ – ‫اﻹصدار‬ ‫من‬ 2.2 ‫الدالة‬ ‫استبدلت‬ ‫لبايثون‬ open ‫بالدالة‬ file ‫الدالة‬ ‫استخدام‬ ‫فيمكنك‬ 31
  • 33. file ‫للدالة‬ ‫كقناع‬ ‫تعمل‬ ‫ﻷنها‬ ‫السابقة‬ ‫الدالة‬ ‫استخدام‬ ‫يمكنك‬ ‫وكذلك‬ ،‫السابقة‬ ‫الدالة‬ ‫مكان‬ ‫الجديدة‬ ‫اﻹصدارات‬ ‫في‬ ‫الجديدة‬ – ‫الدالة‬ ‫باستخدام‬ ‫ثانية‬ ‫مرة‬ ‫عرضه‬ ‫عند‬ ‫الملف‬ ‫و‬ ‫واحدة‬ ‫مرة‬ ‫تتم‬ ‫الملف‬ ‫قراءة‬ ‫أن‬ ‫لحظ‬ read ‫اﻹصدار‬ ‫على‬ ‫لحظته‬ ‫ما‬ ‫ثانية(هذا‬ ‫مرة‬ ‫الملف‬ ‫قراءة‬ ‫إعادة‬ ‫فيجب‬ ،‫فراغ‬ ‫ويعطي‬ ‫عرضه‬ ‫يتم‬ ‫ل‬ 2.3 )‫بايثون‬ ‫من‬ ‫للكائنات‬ ‫العامة‬ ‫الخصائص‬ ‫الخصائص‬ ‫عن‬ ‫سريعة‬ ‫جولة‬ ‫نأخذ‬ ‫دعنا‬ ،‫بايثون‬ ‫في‬ ‫المدمجة‬ ‫الكائنات‬ ‫جميع‬ ‫أنهينا‬ ‫أن‬ ‫وبعد‬ ‫اﻵن‬ .‫فيها‬ ‫تتشارك‬ ‫التي‬ ‫باثيون‬ ‫في‬ ‫المدمجة‬ ‫للكائنات‬ ‫العامة‬ ‫الكائنات‬ ‫تصنيف‬ :‫سابقا‬ ‫رأيناها‬ ‫التي‬ ‫اﻷنواع‬ ‫جميع‬ ‫يصنف‬ ‫التالي‬ ‫الجدول‬ ‫الكائن‬ ‫نوع‬ ‫صنفه‬ ‫للتوسع؟‬ ‫قابل‬ ‫اﻷعداد‬ Numbers ‫عددي‬ ‫ل‬ ‫النصية‬ ‫السلسل‬ Strings ‫متسلسل‬ ‫ل‬ ‫القوائم‬ Lists ‫متسلسل‬ ‫نعم‬ ‫القواميس‬ Dictionaries ‫تخطيطي‬ ‫نعم‬ ‫المجموعات‬ Tuples ‫متسلسل‬ ‫ل‬ ‫الملفات‬ Files ‫امتدادي‬ N/A ‫أن‬ ‫و‬،‫متسلسلة‬ ‫أنها‬ ‫في‬ ‫تشترك‬ ‫والمجموعات‬ ‫القوائم‬ ‫و‬ ‫النصية‬ ‫السلسل‬ ‫فإن‬ ‫الجدول‬ ‫من‬ ‫نرى‬ ‫كما‬ ‫تستخدم‬ ‫الملفات‬ .‫فل‬ ‫غيرها‬ ‫أما‬ ‫فقط‬ ‫اﻹنكماش‬ ‫و‬ ‫التوسع‬ ‫قابلية‬ ‫تدعم‬ ‫فقط‬ ‫القواميس‬ ‫و‬ ‫القوائم‬ ‫ليس‬ ‫ولكن‬ ،‫الكتابة‬ ‫يتم‬ ‫حين‬ ‫تتوسع‬ ‫صحيح‬ ،‫بالضبط‬ ‫للتوسع‬ ‫قابلة‬ ‫ليست‬ ‫فهي‬،‫للتوسع‬ ‫دوال‬ .‫اﻷنواع‬ ‫على‬ ‫بايثون‬ ‫تفرضها‬ ‫التي‬ ‫بالقيود‬ ‫العمومية‬ :‫نقول‬ ‫أن‬ ‫نستطيع‬ ‫عام‬ ‫وبشكل‬ ،‫المركبة‬ ‫الكائنات‬ ‫من‬ ‫العديد‬ ‫رأينا‬ ‫لقد‬ ‫الكائنات‬ ‫من‬ ‫نوع‬ ‫أي‬ ‫تخزن‬ ‫أن‬ ‫يمكنها‬ ‫والمجموعات‬ ‫والقواميس‬ ‫القوائم‬- ‫المركب‬ ‫التداخل‬ ‫تدعم‬ ‫والمجموعات‬ ‫والقواميس‬ ‫القوائم‬- 32
  • 34. ‫دينامكيا‬ ‫وتصغر‬ ‫تكبر‬ ‫أن‬ ‫تستطيع‬ ‫والقواميس‬ ‫القوائم‬- ‫في‬ ‫المركبة‬ ‫المعلومات‬ ‫للتمثيل‬ ‫جدا‬ ‫مناسبة‬ ‫فهي‬ ‫المركب‬ ‫التداخل‬ ‫تدعم‬ ‫الكائنات‬ ‫هذه‬ ‫أن‬ ‫بسبب‬ :‫التالي‬ ‫المثال‬ ‫إلى‬ ‫انظر‬،‫التطبيق‬ >>> L = ['abc', [(1, 2), ([3], 4)], 5] >>> L[1] [(1, 2), ([3], 4)] >>> L[1][1] ([3], 4) >>> L[1][1][0] [3] >>> L[1][1][0][0] 3 ‫عن‬ ‫اﻷعضاء‬ ‫إلى‬ ‫بالوصول‬ ‫قمنا‬ ‫قم‬ ‫ثم‬ ،‫متداخلة‬ ‫ومجموعات‬ ‫قوائم‬ ‫على‬ ‫تحوي‬ ‫قائمة‬ ‫بإنشاء‬ ‫قمنا‬ ‫الكائن‬ ‫موقع‬ ‫إلى‬ ‫الوصول‬ ‫في‬ ‫اليمين‬ ‫إلى‬ ‫اليسار‬ ‫من‬ ‫تبدأ‬ ‫بايثون‬ ‫أن‬ ‫لحظ‬ ،‫المفهرس‬ ‫طريق‬ ‫حتى‬ ‫مرة‬ ‫كل‬ ‫في‬ ‫المراد‬ ‫الكائن‬ ‫إلى‬ ‫الوصول‬ ‫في‬ ‫تعمقنا‬ ‫كيف‬ ‫ولحظ‬ ،‫المفهرس‬ ‫باستخدام‬ ‫تقدمه‬ ‫وما‬ ‫المعطيات‬ ‫بنى‬ ‫في‬ ‫التداخل‬ ‫أهمية‬ ‫تعلم‬ ‫هنا‬ ‫ومن‬ ،‫بالضبط‬ ‫المراد‬ ‫الكائن‬ ‫إلى‬ ‫وصلنا‬ .‫اﻷغراض‬ ‫لتأدية‬ ‫سهلة‬ ‫أدوات‬ ‫من‬ ‫بايثون‬ ‫المشتركة‬ ‫المراجع‬ ‫أغلب‬ ‫في‬ ‫تريده‬ ‫ما‬ ‫هذا‬ ‫وعمليا‬،‫عنها‬ ‫نسخة‬ ‫وليس‬ ‫الكائنات‬ ‫إلى‬ ‫مراجع‬ ‫نخزن‬ ‫إننا‬ ‫سابقا‬ ‫قلنا‬ ‫لقد‬ ‫مشتركة‬ ‫مراجع‬ ‫هناك‬ ‫كانت‬ ‫إذا‬ ‫وخاصة‬ ‫النقطة‬ ‫هذه‬ ‫في‬ ‫التركيز‬ ‫عليك‬ ‫ينبغى‬ ‫أحيانا‬ ‫ولكن‬،‫اﻷحيان‬ ‫قائمة‬ ‫أنشأنا‬ ‫إذا‬ ‫المثال‬ ‫سبيل‬ ‫على‬ ،‫النتائج‬ ‫كل‬ ‫يغيير‬ ‫اﻷصلي‬ ‫المرجع‬ ‫في‬ ‫تغيير‬ ‫أي‬ ‫فإن‬ X ‫ثم‬ ‫أخرى‬ ‫قائمة‬ ‫بإنشاء‬ ‫قمنا‬ L ‫القائمة‬ ‫إلى‬ ‫مرجعا‬ ‫وضمناها‬ X ‫قاموس‬ ‫إنشاء‬ ‫قمنا‬ ‫ثم‬ D ‫ضمنا‬ ‫وكذلك‬ ‫القائمة‬ ‫إلى‬ ‫مرجع‬ ‫مدخلته‬ ‫قيم‬ ‫أحد‬ X :‫التالي‬ ‫الشكل‬ ‫على‬ ‫المثال‬ ‫سيكون‬ >>> X = [1, 2, 3] >>> L = ['a', X, 'b'] >>> D = {'x':X, 'y':2} ‫القائمة‬ ‫إلى‬ ‫مرجعين‬ ‫هناك‬ ‫الحالة‬ ‫هذه‬ ‫في‬ X ،‫إليها‬ ‫جديدة‬ ‫قيم‬ ‫إسناد‬ ‫تقبل‬ ‫القوائم‬ ‫أن‬ ‫وبما‬ ، :‫جديدة‬ ‫قيمة‬ ‫إسناد‬ ‫عند‬ ‫يحدث‬ ‫ماذا‬ ‫فانظر‬ 33
  • 35. >>> X[1] = 'surprise' # changes all three references! >>> L ['a', [1, 'surprise', 3], 'b'] >>> D {'x': [1, 'surprise', 3], 'y': 2} .‫النقطة‬ ‫لهذه‬ ‫منتبها‬ ‫فكنا‬ ، ‫المقارنة‬ ‫والمساواة‬ ‫التحقق‬ ‫و‬ ‫أعداد‬ ‫وكأنها‬ ،‫بينها‬ ‫فيما‬ ‫التحقق‬ ‫وعمليات‬ ‫المقارنة‬ ‫لعمليات‬ ‫تستجيب‬ ‫بايثون‬ ‫في‬ ‫كائنات‬ ‫جميع‬ :‫التالي‬ ‫المثال‬ ‫إلى‬ ‫انظر‬ ،‫المقارنات‬ ‫هذه‬ ‫بمثل‬ ‫تسمح‬ ‫ل‬ ‫التي‬ ‫اللغات‬ ‫من‬ ‫كثير‬ ‫بخلف‬ ‫وهذا‬ >>> L1 = [1, ('a', 3)] # same value, unique objects >>> L2 = [1, ('a', 3)] >>> L1 == L2, L1 is L2 # equivalent?, same object? (True, False) :‫التالي‬ ‫المثال‬ ‫وانظر‬ ،‫التحقق‬ ‫علقة‬ ‫و‬ ‫المساواة‬ ‫علقة‬ ‫اختبرنا‬ ‫وهنا‬ >>> L1 = [1, ('a', 3)] >>> L2 = [1, ('a', 2)] >>> L1 < L2, L1 == L2, L1 > L2 # less, equal, greater: a tuple of results? (False, False, True) :‫بايثون‬ ‫في‬ ‫المختلفة‬ ‫الكائنات‬ ‫بين‬ ‫المقارنة‬ ‫في‬ ‫ملحظات‬ ‫عدة‬ ‫وهنا‬ – ‫التقريبية‬ ‫بمقاديرها‬ ‫تقارن‬ ‫اﻷعداد‬ – "‫أي‬ ‫بحرف‬ ‫حرفا‬ ‫أي‬ ،‫معجميا‬ ‫تقارن‬ ‫النصية‬ ‫السلسل‬ abc" < "ac ‫أن‬ ‫لحظ‬ " c ‫أكبر‬ ‫من‬ b ‫المعجم‬ ‫في‬ – ‫اليمين‬ ‫إلى‬ ‫اليسار‬ ‫من‬ ‫يقابله‬ ‫ما‬ ‫مع‬ ‫عنصر‬ ‫كل‬ ‫تقارن‬ ‫والمجموعات‬ ‫القوائم‬ – ‫والقيمة‬ ‫المفتاح‬ ‫من‬ ‫المخزنة‬ ‫القائمة‬ ‫باستخدام‬ ‫أيضا‬ ‫تقارن‬ ‫القواميس‬ ‫مهمة‬ ‫تلميحات‬ ‫مع‬ ‫أعمق‬ ‫بشكل‬ ‫بايثون‬ ‫فهم‬ ‫على‬ ‫تساعدك‬ ‫وحيل‬ ‫تلميحات‬ ‫سنأخذ‬ ‫فصل‬ ‫كل‬ ‫من‬ ‫القسم‬ ‫هذا‬ ‫في‬ :‫اللغة‬ ‫في‬ ‫مبتدئ‬ ‫أنت‬ ‫و‬ ‫إجابة‬ ‫لها‬ ‫تعرف‬ ‫ول‬ ‫تواجهك‬ ‫قد‬ ‫مشاكل‬ ‫حل‬ 34
  • 36. ‫المشتركة‬ ‫المراجع‬ ‫إسناد‬ ‫إلى‬ ‫يؤدي‬ ‫فهمها‬ ‫عدم‬ ‫النقطة؛ﻷن‬ ‫هذه‬ ‫شرح‬ ‫نكرر‬ ‫ونعود‬ ،‫مسبقا‬ ‫النقطة‬ ‫هذا‬ ‫عن‬ ‫تكلمنا‬ ‫قد‬ ‫سنقوم‬ ‫المثال‬ ‫سبيل‬ ‫على‬ ،‫برنامجك‬ ‫ضمن‬ ‫المشتركة‬ ‫المراجع‬ ‫في‬ ‫يجري‬ ‫ما‬ ‫فهم‬ ‫في‬ ‫غموض‬ ‫قائمة‬ ‫بإنشاء‬ L ‫قائمة‬ ‫بإنشاء‬ ‫نقوم‬ ‫ثم‬ M ‫القائمة‬ ‫نضمنها‬ L ‫القائمة‬ ‫في‬ ‫جديدة‬ ‫قيمة‬ ‫بإسناد‬ ‫نقوم‬ ‫ثم‬ L :‫يحدث‬ ‫ماذا‬ ‫انظر‬ ، >>> L = [1, 2, 3] >>> M = ['X', L, 'Y'] # embed a reference to L >>> M ['X', [1, 2, 3], 'Y'] >>> L[1] = 0 # changes M too >>> M ['X', [1, 0, 3], 'Y'] ‫تلميح‬ ‫بما‬ ‫تقوم‬ ‫المشتركة‬ ‫المراجع‬ ‫وعادة‬ ،‫الضخمة‬ ‫البرامج‬ ‫في‬ ‫فقط‬ ‫مهما‬ ‫يكون‬ ‫الجزئية‬ ‫هذه‬ ‫تأثير‬ ‫إن‬ ‫أضف‬ ‫بساطة‬ ‫بكل‬ ‫تفعل؟‬ ‫فماذا‬ ‫مرجع‬ ‫وليس‬ ‫نسخة‬ ‫تسند‬ ‫أن‬ ‫أردت‬ ‫إذا‬ ‫ولكن‬ ،‫بالضبط‬ ‫تريده‬ :‫التالي‬ ‫الشكل‬ ‫على‬ ‫نقطتين‬ >>> L = [1, 2, 3] >>> M = ['X', L[:], 'Y'] # embed a copy of L >>> L[1] = 0 # only changes L, not M >>> L [1, 0, 3] >>> M ['X', [1, 2, 3], 'Y'] ‫واحد‬ ‫مستوى‬ ‫على‬ ‫التكرار‬ ‫هذا‬،‫المرات‬ ‫من‬ ‫عدد‬ ‫السلسلة‬ ‫إعادة‬ ‫عن‬ ‫عبارة‬ ‫أنه‬ ‫قلنا‬ ‫السلسلة‬ ‫تكرار‬ ‫عن‬ ‫سابقا‬ ‫تكلمنا‬ ‫عندما‬ ‫انظر‬ ،‫بالضبط‬ ‫تريده‬ ‫عما‬ ‫تختلف‬ ‫النتيجة‬ ‫تكون‬ ‫متداخلة‬ ‫السلسلة‬ ‫تكون‬ ‫عندما‬ ‫ولكن‬ ‫صحيح‬ ‫اﻷمر‬ :‫التالي‬ ‫المثال‬ ‫إلى‬ 35