أساسيات بايثون
تشرح هذه المقالة أساسيات لغة بايثون۔
YouTube Video
تشغيل "Hello World!"
1print("Hello World!")
المتغيرات في بايثون
في بايثون، المتغيرات هي مساحات تخزين مسماة تُستخدم للإمساك بالبيانات والمعلومات واستخدامها داخل البرنامج۔ يمكن للمتغيرات في بايثون تخزين أنواع بيانات مختلفة وإعادة تعيينها حسب الحاجة۔ فيما يلي، نقدم عدة أكواد كمثال لشرح الاستخدام الأساسي للمتغيرات في بايثون۔
1# 1. Assigning values to variables
2# Integer type variable
3age = 25
4print("Age:", age) # Output: Age: 25
5
6# Floating-point type variable
7height = 175.5
8print("Height:", height, "cm") # Output: Height: 175.5 cm
9
10# String type variable
11name = "Taro"
12print("Name:", name) # Output: Name: Taro
13
14# Boolean type variable
15is_student = True
16print("Are you a student?", is_student) # Output: Are you a student? True
17
18# 2. Assigning values to multiple variables simultaneously
19# You can assign multiple variables at once
20x, y, z = 5, 10, 15
21print("x =", x, ", y =", y, ", z =", z) # Output: x = 5 , y = 10 , z = 15
22
23# 3. Updating the value of a variable
24# The value of a variable can be updated by reassignment
25age = 26
26print("Updated age:", age) # Output: Updated age: 26
27
28# 4. Updating multiple variables at once
29# Example of swapping values between variables
30a, b = 1, 2
31a, b = b, a
32print("a =", a, ", b =", b) # Output: a = 2 , b = 1
33
34# 5. Type conversion
35# Type conversion allows operations between different types
36count = "5" # String "5"
37count = int(count) # Convert to integer type
38print("Handling count as an integer:", count * 2) # Output: Handling count as an integer: 10
39
40# Conversion to floating-point number
41pi_approx = "3.14"
42pi_approx = float(pi_approx)
43print("Approximation of pi:", pi_approx) # Output: Approximation of pi: 3.14
كما هو موضح، يمكن استخدام المتغيرات في بايثون بمرونة.۔ يمكن استخدام المتغيرات دون تحديد نوعها، ويمكن إعادة تعيينها حسب الحاجة.۔ بالإضافة إلى ذلك، يجعل تحويل الأنواع من السهل التبديل بين أنواع البيانات المختلفة.۔
أنواع البيانات في بايثون
تحتوي بايثون على عدة أنواع بيانات أساسية.۔ فيما يلي، نقدم شروحًا وأكواد أمثلة لكل نوع.۔
نوع العدد الصحيح
نوع العدد الصحيح يُستخدم للتعامل مع الأرقام الصحيحة بدون فاصلة عشرية.۔
1# Example of integer type
2x = 10
3print(x) # Output: 10
4print(type(x)) # Output: <class 'int'>
نوع العدد العشري
نوع العدد العشري يُستخدم للتعامل مع الأرقام التي تحتوي على فاصلة عشرية.۔
1# Floating Point Number Example
2y = 3.14
3print(y) # Output: 3.14
4print(type(y)) # Output: float
نوع النصوص (Strings)
يمثل نوع السلسلة تسلسلاً من الأحرف۔ يمكن تضمين السلاسل النصية بين علامات اقتباس مفردة '
أو مزدوجة "
۔
1# Example of String
2s = "Hello, World!"
3print(s) # Output: Hello, World!
4print(type(s)) # Output: <class 'str'>
نوع المنطقية (Boolean)
نوع المنطقية يحتوي على قيمتين: صحيح (True
) وخطأ (False
)۔
1# Example of Boolean
2b = True
3print(b) # Output: True
4print(type(b)) # Output: <class 'bool'>
نوع القائمة
نوع القائمة هو تسلسل قابل للتغيير يمكنه تخزين عناصر متعددة، ويمكن للعناصر أن تكون من أنواع بيانات مختلفة۔
1# Example of List
2lst = [1, 2, 3, "four", 5.0]
3print(lst) # Output: [1, 2, 3, 'four', 5.0]
4print(type(lst)) # Output: <class 'list'>
نوع القوائم المحمية (Tuple)
القائمة المحمية (Tuple) هي تسلسل يمكنه احتواء عناصر متعددة، ولا يمكن تعديل محتوياتها بعد إنشائها۔
1# Example of Tuple
2tup = (1, "two", 3.0)
3print(tup) # Output: (1, 'two', 3.0)
4print(type(tup)) # Output: <class 'tuple'>
نوع القاموس (Dictionary)
نوع القاموس هو مجموعة تحتوي على أزواج مفاتيح وقيم۔ يجب أن تكون المفاتيح فريدة۔
1# Example of Dictionary
2dct = {"one": 1, "two": 2, "three": 3}
3print(dct) # Output: {'one': 1, 'two': 2, 'three': 3}
4print(type(dct)) # Output: <class 'dict'>
نوع المجموعة (Set)
نوع المجموعة هو مجموعة تحتوي على عناصر فريدة۔ لا يمكن تضمين قيم مكررة۔
1# Example of Set
2st = {1, 2, 2, 3}
3print(st) # Output: {1, 2, 3}
4print(type(st)) # Output: <class 'set'>
هذه الأنواع من البيانات هي أنواع أساسية تُستخدم عادةً لمعالجة البيانات في بايثون۔ من خلال استخدامها بشكل مناسب، يمكنك تلبية متطلبات متنوعة في برامجك۔
نظرة عامة على بايثون
بايثون هي لغة برمجة عالية المستوى تم تطويرها بواسطة جيدو فان روسم في عام 1991۔ تعتمد فلسفة تصميمها على 'البساطة' و'الوضوح' و'القابلية للقراءة'، مما ينتج عنه كود بديهي وسهل الكتابة وسهل القراءة۔ فيما يلي نظرة عامة على الميزات الرئيسية لبايثون۔
-
القابلية للقراءة والبساطة:
- بهيكل واضح وتعبيرات قريبة من اللغة الطبيعية، تعد لغة سهلة للتعلم بالنسبة للمبتدئين۔
- يتم تعريف الكتل بالتنسيق باستخدام المسافات البادئة، مما ينسق الكود تلقائيًا ويزيد من قابليته للقراءة۔
-
المكتبات الغنية والإطارات:
- تحتوي على مكتبة قياسية غنية، مما يتيح أداء العديد من المهام بسهولة۔
- تتوفر مكتبات وإطارات عمل متخصصة لمجالات متعددة، مثل الحسابات العددية (NumPy)، وتحليل البيانات (Pandas)، وتعلم الآلة (scikit-learn, TensorFlow)، وتطوير الويب (Django, Flask)۔
-
التنوع:
- تناسب بايثون الاستخدام كلغة سكربت أو لتطوير تطبيقات متكاملة. تُستخدم في تطبيقات متنوعة مثل تطبيقات الويب، تطبيقات سطح المكتب، الحوسبة العلمية، تعلم الآلة، تحليل البيانات، وإنترنت الأشياء۔
-
تعدد الأنظمة:
- هي مستقلة عن النظام ويمكن تشغيلها على العديد من أنظمة التشغيل، بما في ذلك Windows وmacOS وLinux۔
-
مفتوحة المصدر والمجتمع الداعم:
- بايثون مشروع مفتوح المصدر مدعوم من قبل مجتمع نشط۔ وبفضل ذلك، يتم توفير تحديثات متكررة وتطوير مكتبات ودعم۔
-
الكتابة الديناميكية وإدارة الذاكرة التلقائية:
- تخلص الكتابة الديناميكية من الحاجة إلى تحديد أنواع المتغيرات، مما يتيح تطويراً أسرع۔
- يقوم جمع القمامة بإدارة الذاكرة تلقائياً، مما يجعل إدارة الذاكرة أمراً بسيطاً۔
بفضل هذه الميزات، تُستخدم بايثون على نطاق واسع في مجالات متعددة، بما في ذلك التعليم والصناعة والأكاديميا۔
أحرف الهروب في بايثون
في بايثون، تُستخدم أحرف الهروب لإضافة رموز تحكم معينة أو أحرف ذات معنى خاص داخل النصوص.۔ أحرف الهروب هي رموز خاصة تُستخدم لإضافة معانٍ معينة إلى النصوص العادية.۔ دعونا نلقي نظرة عن قُرب على أحرف الهروب في بايثون.۔
أساسيات أحرف الهروب
في بايثون، يتم تعريف أحرف الهروب باستخدام الشرطة المائلة العكسية (\
).۔ أحرف الهروب تشير إلى سلوك معين داخل النصوص العادية.۔ على سبيل المثال، يمثل \n
سطراً جديداً، ويمثل \t
مسافة الجدولة.۔
يمكنك تعريف نص يحتوي على أحرف الهروب كما يلي:۔
1# Example of escape characters
2print("Hello\nWorld") # A newline is inserted after "Hello"
3
4# Output:
5# Hello
6# World
قائمة بأهم أحرف الهروب
أهم أحرف الهروب المستخدمة في بايثون هي كالتالي:۔
\\
: يمثل الشرطة المائلة العكسية نفسها.\'
: يُدرج علامة اقتباس مفردة داخل النص.\"
: يُدرج علامة اقتباس مزدوجة داخل النص.\n
: سطر جديد\t
: مسافة جدولة\r
: إرجاع المؤشر\b
: حذف للخلف\f
: تغذية نموذج (انتقال إلى الصفحة التالية في الطابعة)\a
: صوت تنبيه (جرس)\v
: جدولة عمودية\N{name}
: حرف باسم معين من قاعدة بيانات يونيكود\uXXXX
: حرف يونيكود بطول 16 بت (يُحدد باستخدام 4 أرقام ست عشرية)\UXXXXXXXX
: حرف يونيكود بطول 32 بت (يُحدد باستخدام 8 أرقام ست عشرية)\xXX
: حرف يُحدد في النظام الست عشري
أمثلة على الأحرف الهاربة المستخدمة بشكل شائع
فيما يلي بعض الأمثلة المحددة لكيفية استخدام الأحرف الهاربة۔
علامات الاقتباس المزدوجة والمنفردة
لإدراج علامات الاقتباس المزدوجة أو المنفردة داخل سلسلة نصية، استخدم الأحرف الهاربة۔
1# String containing double quotes
2quote = "He said, \"Python is amazing!\""
3print(quote)
4
5# String containing single quotes
6single_quote = 'It\'s a beautiful day!'
7print(single_quote)
8
9# Output:
10# He said, "Python is amazing!"
11# It's a beautiful day!
الأسطر الجديدة والمسافات البادئة
تُستخدم الأسطر الجديدة والمسافات البادئة عادة لتنسيق النصوص۔
1# Example using newline
2multiline_text = "First line\nSecond line"
3print(multiline_text)
4
5# Example using tab
6tabbed_text = "Column1\tColumn2\tColumn3"
7print(tabbed_text)
8
9# Output:
10# First line
11# Second line
12# Column1 Column2 Column3
أحرف هروب اليونيكود
في بايثون، يتم تمثيل أحرف اليونيكود باستخدام \u
أو \U
۔ وهذا الأمر مفيد بشكل خاص عند التعامل مع الأحرف غير الإنجليزية۔
1# Example of Unicode escape
2japanese_text = "\u3053\u3093\u306B\u3061\u306F" # Hello in Japanese
3print(japanese_text)
4# Output:
5# こんにちは(Hello in Japanese)
تحذيرات عند استخدام الأحرف الهاربة الخاصة
هناك بعض التحذيرات التي يجب مراعاتها عند استخدام الأحرف الهاربة۔
- النصوص الخام: إذا كنت تريد عرض النصوص التي تحتوي على الشرطة المائلة كما هي، يمكنك استخدام النصوص الخام۔ يتم تحديد النصوص الخام بإضافة البادئة
r
إلى النص۔
1raw_string = r"C:\Users\name\Documents"
2print(raw_string)
3# Output:
4# C:\Users\name\Documents
في النصوص الخام، لا يتم تفسير الشرطة المائلة كحرف هروب ويتم عرضها كما هي۔
- استخدام اليونيكود: عند استخدام أحرف هروب اليونيكود، تأكد من صحة الأكواد الست عشرية المحددة۔ ستؤدي المواصفات غير الصحيحة إلى عرض غير صحيح للأحرف۔
الهروب من الشرطة المائلة
لإدراج الشرطة المائلة بذاتها في نص، استخدم شرطتين مائلتين۔
1# Example containing backslash
2path = "C:\\Program Files\\Python"
3print(path)
4# Output:
5# C:\Program Files\Python
مثال متقدم: تنسيق النصوص المعقدة
يمكن أيضًا الجمع بين الأحرف الهاربة لتنسيق النصوص المعقدة۔
1# Example of formatting a message
2message = "Dear User,\n\n\tThank you for your inquiry.\n\tWe will get back to you shortly.\n\nBest Regards,\nCustomer Support"
3print(message)
4# Output:
5# Dear User,
6#
7# Thank you for your inquiry.
8# We will get back to you shortly.
9#
10# Best Regards,
11# Customer Support
الملخص
تُعد أحرف الهروب في بايثون أداة قوية لإدراج أحرف تحكم محددة أو أحرف خاصة داخل النصوص۔ فهم كيفية استخدامها وتطبيقها بالشكل المناسب عند الحاجة يتيح معالجة نصوص أكثر مرونة۔
إصدارات بايثون
لنستعرض بإيجاز الإصدارات الرئيسية لبايثون وميزاتها۔
- بايثون 1.0 (1994)
1# Simple code that works in Python 1.0
2def greet(name):
3 print "Hello, " + name # print was a statement
4
5greet("World")
الإصدار الرسمي الأول۔ تم تأسيس بناء الجملة الأساسي والمكتبة القياسية لبايثون۔
- بايثون 2.0 (2000)
1# List comprehension
2squares = [x * x for x in range(5)]
3print squares
4
5# Unicode string (u"...")
6greet = u"Hello"
7print greet
تمت إضافة ميزات هامة، مثل تعبئة القوائم، وإدارة الذاكرة الكاملة، والبدء في دعم اليونيكود۔ تم استخدام بايثون 2 لفترة طويلة ولكن انتهى دعمه في عام 2020۔
- بايثون 3.0 (2008)
1# print is now a function
2print("Hello, world!")
3
4# Unicode text is handled natively
5message = "Hello"
6print(message)
تحديث كبير بدون توافق عكسي۔ تم تحويل print
إلى دالة، وأصبح Unicode
هو نوع النص الافتراضي، وتوحيد الأعداد الصحيحة، مما حسّن بشكل كبير تناسق بايثون وسهولة استخدامها۔ سلسلة بايثون 3.x هي الإصدار الرئيسي الحالي۔
- بايثون 3.5 (2015)
1import asyncio
2
3async def say_hello():
4 await asyncio.sleep(1)
5 print("Hello, async world!")
6
7asyncio.run(say_hello())
تم تقديم بناء جملة async
/await
، مما جعل البرمجة غير المتزامنة أسهل في الكتابة۔
- بايثون 3.6 (2016)
1name = "Alice"
2age = 30
3print(f"{name} is {age} years old.") # f-string makes formatting simple
تمت إضافة الحروف النصية المهيأة (f-strings)، مما جعل تنسيق النصوص أكثر سهولة۔ بالإضافة إلى ذلك، تم توسيع دعم إرشادات الأنواع۔
- بايثون 3.7 (2018)
1from dataclasses import dataclass
2
3@dataclass
4class Person:
5 name: str
6 age: int
7
8p = Person("Bob", 25)
9print(p)
تم تقديم الصفوف البيانية (Dataclasses)، مما جعل تعريف الصفوف المشابهة للهياكل أسهل۔ تم تحسين دعم async
/await
أيضًا۔
- بايثون 3.8 (2019)
1# Assignment inside an expression
2if (n := len("hello")) > 3:
3 print(f"Length is {n}")
تمت إضافة المعامل والدلفين (: =)، مما أتاح استخدام تعبيرات التعيين۔ تم تقديم المعاملات الموضعية فقط
، مما حسن من مرونة حجج الدوال۔
- بايثون 3.9 (2020)
1a = {"x": 1}
2b = {"y": 2}
3c = a | b # merge two dicts
4print(c) # {'x': 1, 'y': 2}
تم تحسين إرشادات الأنواع وإضافة المعامل المدمج (|
) للقوائم والقواميس۔ تم أيضًا إعادة تنظيم المكتبة القياسية۔
- بايثون 3.10 (2021)
1def handle(value):
2 match value:
3 case 1:
4 return "One"
5 case 2:
6 return "Two"
7 case _:
8 return "Other"
9
10print(handle(2))
تمت إضافة مطابقة الأنماط، مما أتاح كتابة شروط أكثر قوة۔ تم تحسين رسائل الأخطاء وتعزيز نظام الأنواع بشكل أكبر۔
- بايثون 3.11 (2022)
1# Improved performance (up to 25% faster in general)
2# More informative error messages
3try:
4 eval("1/0")
5except ZeroDivisionError as e:
6 print(f"Caught an error: {e}")
تم إجراء **تحسينات كبيرة على الأداء**، مما أدى إلى تنفيذ أسرع مقارنة بالإصدارات السابقة۔ بالإضافة إلى ذلك، تم تحسين التعامل مع الاستثناءات والتحقق من الأنواع۔
- بايثون 3.12 (2023)
1# Automatically shows exception chains with detailed traceback
2def f():
3 raise ValueError("Something went wrong")
4
5def g():
6 try:
7 f()
8 except Exception:
9 raise RuntimeError("Higher level error") # Automatically chained
10
11try:
12 g()
13except Exception as e:
14 import traceback
15 traceback.print_exception(type(e), e, e.__traceback__)
تم تحسين رسائل الأخطاء بشكل أكبر، وتم تعزيز الأداء۔ بالإضافة إلى ذلك، يتم عرض تسلسل الاستثناءات بشكل تلقائي، مما يتيح تصحيح الأخطاء بمزيد من التفاصيل۔ تمت إضافة ميزات جديدة في بناء الجملة وتحسينات للمكتبة القياسية، مما يعزز إنتاجية المطورين۔
تستمر سلسلة Python 3.x في التطور، مع تحسين الأداء ونظام الأنواع وإضافة ميزات جديدة مع الإصدارات الأخيرة۔
يمكنك متابعة المقالة أعلاه باستخدام Visual Studio Code على قناتنا على YouTube.۔ يرجى التحقق من القناة على YouTube أيضًا.۔