تتعدد أنواع البيانات في بايثون Python وفيما يلي أهم هذه الأنواع:
يمكن تقسيم هذا النوع إلى ثلاثة أنواع أساسية وهي:
وهي عبارة عن سلاسل من الحروف والأرقام والرموز الأخرى، مثال: “Hello, World!” و “123”.
وهي تسمح بتخزين مجموعة من القيم في متغير واحد، مثال: [1, 2, 3, 4] و [“apple”, “banana”, “orange”].
وهي تشبه القوائم ولكنها لا تتيح تعديل القيم فيها، مثال: (1, 2, 3) و (“apple”, “banana”, “orange”).
وهي تسمح بتخزين مجموعة من القيم مع مفاتيح خاصة بها، مثال: {“name”: “John”, “age”: 25}.
وهي تسمح بتخزين مجموعة فريدة من القيم، مثال: {1, 2, 3, 4} و {“apple”, “banana”, “orange”}.
وهي تسمح بتخزين قيمتين فقط True أو False، وتستخدم بشكل خاص في التحقق من صحة الشروط في التعليمات البرمجية.
وهي تسمح بتمثيل كائنات معينة في البرنامج، مثل الأشخاص أو السيارات أو الحيوانات، ويمكن تعريف نوع الكائنات ب
يجب اتباع بعض القواعد عند تسمية المتغيرات في لغة بايثون Python، ومن أهم هذه القواعد:
1- يجب أن يبدأ اسم المتغير بحرف (a-z) أو (A-Z) أو الشرطة السفلية (_).
2- يمكن أن يحتوي اسم المتغير على أرقام (0-9)، ولكن يجب ألا يبدأ الاسم برقم.
3- يجب تجنب استخدام الكلمات المحجوزة في بايثون Python كأسماء للمتغيرات، مثل if و while و def وغيرها.
4- يجب تجنب استخدام الأحرف الكبيرة في أسماء المتغيرات، حتى لا يتم الخلط بينها وبين أسماء الكائنات.
5- يمكن استخدام الشرطة السفلية (_) للفصل بين الكلمات في اسم المتغير، مثل student_name.
6- يتم تمييز الحالة في اسم المتغير، مثلا student_name و Student_Name يعتبران اسمين مختلفين.
7- يجب اختيار أسماء واضحة ومعبرة عن المعنى الذي يرمز إليه المتغير، حتى يسهل فهم الشفرة البرمجية.
8- يجب تجنب استخدام الأسماء التي تحتوي على معانٍ دينية أو سياسية أو جنسية أو عنصرية أو غير لائقة.
وفي العموم، يجب تجنب استخدام الأسماء المختصرة والغير واضحة، والاعتماد على الأسماء الواضحة والمعبرة عن معنى المتغير واستخدام الأحرف الكبيرة والصغيرة بشكل صحيح لتحسين قراءة وفهم الشفرة البرمجية.
# تسمية المتغير بأسماء واضحة ومعبرة عن المعنى age = 25 name = "John" is_student = True # استخدام الشرطة السفلية لفصل الكلمات في اسم المتغير first_name = "John" last_name = "Smith" full_name = first_name + " " + last_name # استخدام الأرقام في تسمية المتغيرات x1 = 10 y1 = 20 result = x1 + y1 # تجنب استخدام الأسماء المحجوزة في بايثون كأسماء للمتغيرات if = 5 # يعطي خطأ في الشفرة البرمجية # تجنب استخدام الأحرف الكبيرة في أسماء المتغيرات studentName = "Ali" # ليس مفضلًا # تجنب استخدام الأسماء المختصرة والغير واضحة n = 10 s = "Hello" a = [1, 2, 3]
ومن الجيد الحرص على تسمية المتغيرات بطريقة تساعد على فهم الشفرة البرمجية بشكل أفضل وتجنب التداخل مع الأسماء المحجوزة في بايثون.
الإعلان عن متغير مع تحديد قيم أولية له:
لتعريف متغير في بايثون، يمكن استخدام اسم المتغير المراد تعريفه والقيمة التي تريد تخزينها فيه مع إضافة علامة المساواة (=) بينهما. ويكون الجزء الأيسر من علامة المساواة هو اسم المتغير والجزء الأيمن هو القيمة التي سيتم تخزينها في المتغير. ويمكن تعريف المتغير في أي مكان في الشفرة البرمجية، حتى داخل الدوال والمناطق البرمجية المختلفة.
هذا هو مثال بسيط لتعريف متغير في بايثون:
x = 5
في هذا المثال، تم تعريف المتغير x وتم تخزين القيمة 5 فيه. ويمكن الآن استخدام المتغير x في الشفرة البرمجية لإجراء العمليات الحسابية والعمليات الأخرى التي تحتاج إلى استخدام هذا المتغير.
يمكن أيضًا تعريف متغيرات متعددة في نفس الوقت باستخدام فاصلة منقوطة (;) للفصل بين التعريفات، كما يلي:
x = 5; y = 10; z = "Hello"
في هذا المثال، تم تعريف ثلاثة متغيرات x و y و z في نفس السطر باستخدام فاصلة منقوطة للفصل بينهما. وتم تخزين القيمة 5 في المتغير x والقيمة 10 في المتغير y والقيمة “Hello” في المتغير z.
يمكن الآن استخدام هذه المتغيرات في الشفرة البرمجية لإجراء العمليات المطلوبة
بعض الأمثلة الأخرى على كيفية تعريف المتغيرات في بايثون:
name = "John"
age = 25
تعريف متغير لتخزين النقاط في اللعبة:
score = 100
3-تعريف متغير لتخزين الأرقام العشرية:
pi = 3.14
4-تعريف متغير لتخزين القيم المنطقية:
is_student = True
5-تعريف متغير لتخزين القائمة:
my_list = [1, 2, 3, 4, 5]
6-تعريف متغير لتخزين القاموس:
my_dict = {"name": "John", "age": 25, "score": 100}
7-تعريف متغير لتخزين الدالة:
def add_numbers(x, y): return x + y
8-تعريف متغير لتخزين القيمة الخاصة بالتاريخ والوقت:
import datetime current_date = datetime.date.today() current_time = datetime.datetime.now().time()
9-تعريف متغير لتخزين البيانات الصوتية:
import soundfile as sf data, samplerate = sf.read('audio_file.wav')
10-تعريف متغير لتخزين الصور:
from PIL import Image image = Image.open('image_file.png')
11-تعريف متغير لتخزين البيانات الجغرافية:
import geopandas as gpd data = gpd.read_file('shapefile.shp')
هذه بعض الأمثلة الإضافية على كيفية تعريف المتغيرات في بايثون، ويمكن استخدام هذه المتغيرات لتخزين مختلف الأنواع من البيانات المتنوعة.
يمكن تعريف متغير في بايثون بدون اسناد قيمة أولية باستخدام اسم المتغير فقط. في هذه الحالة، سيتم تعريف المتغير كـ “None” ويمكن إعطاؤه قيمة في وقت لاحق من الشفرة البرمجية.
لتعريف متغير بدون اسناد قيمة أولية، يمكن استخدام الصيغة التالية:
variable_name = None
بهذا التعريف، تم تعريف المتغير باسم “my_variable” وتم تعيينه كـ “None”، ويمكن تغيير قيمته في وقت لاحق
هذا مثال بسيط يعرض كيفية تعريف متغير بدون تحديد قيمة أولية:
# تعريف المتغير بدون اسناد قيمة أولية my_variable = None # عرض قيمة المتغير print(my_variable) # تعيين قيمة جديدة للمتغير my_variable = "Hello World!" # عرض قيمة المتغير بعد التعيين print(my_variable)
في هذا المثال، تم تعريف المتغير “my_variable” بدون اسناد قيمة أولية، ثم تم عرض قيمة المتغير وهي “None”. بعد ذلك، تم تعيين قيمة جديدة للمتغير وعرضها باستخدام الدالة “print”.
هناك عدة أنواع للبيانات في لغة بايثون. وفيما يلي بعض الأمثلة والشفرات البرمجية لتوضيح الأنواع المختلفة:
x = 5 y = -10
a = 2.5 b = -3.14
name = "John" address = '123 Main St'
5-القوائم “list”:
numbers = [1, 2, 3, 4, 5] fruits = ['apple', 'banana', 'orange']
6-القوائم التي لا يمكن تغييرها “tuple”:
colors = ('red', 'green', 'blue') coordinates = (12.345, 67.89)
person = {'name': 'John', 'age': 30, 'address': '123 Main St'}
8-نواع الصفوف “set”:
unique_numbers = {1, 2, 3, 4, 5} unique_letters = {'a', 'b', 'c'}
my_bytes = b'Hello World!'
يمكن استخدام الدالة type()
في Python لمعرفة نوع البيانات. يمكن إرسال قيمة أو متغير كمعامل إلى الدالة، وسوف تعيد الدالة نوع البيانات الذي يتوافق معه.
على سبيل المثال، لمعرفة نوع بيانات المتغير x
في Python، يمكن استخدام الكود التالي:
x = 5 print(type(x))
وسوف يعيد البرنامج class 'int'
، والذي يشير إلى أن المتغير x
هو عدد صحيح.
يمكن استخدام type()
مع أي نوع من البيانات في Python، سواء كانت أعدادًا صحيحة، أعدادًا عشرية، سلاسل نصية، قوائم، صفائف، قواميس، مجموعات، وما إلى ذلك.
مثال شامل :
نعم، بالتأكيد. هنا بعض الأمثلة على استخدام type()
لتحديد نوع بعض البيانات في Python:
# نوع عدد صحيح x = 5 print(type(x)) # <class 'int'> # نوع عدد عشري y = 3.14 print(type(y)) # <class 'float'> # نوع سلسلة نصية name = "John" print(type(name)) # <class 'str'> # نوع قائمة my_list = [1, 2, 3] print(type(my_list)) # <class 'list'> # نوع صفيف import numpy as np my_array = np.array([1, 2, 3]) print(type(my_array)) # <class 'numpy.ndarray'> # نوع قاموس my_dict = {'name': 'John', 'age': 30} print(type(my_dict)) # <class 'dict'> # نوع مجموعة my_set = {1, 2, 3} print(type(my_set)) # <class 'set'>
ويمكن أيضًا استخدام type()
لتحديد نوع البيانات المتوقعة لمتغير قبل استخدامه، وذلك لتجنب أخطاء تعيين القيم إلى متغيرات غير صحيحة.
هذا مثال شامل يستخدم type()
و isinstance()
لتحديد نوع البيانات والتأكد من أنه ينتمي إلى الفئة المناسبة:
class Person: def __init__(self, name, age): self.name = name self.age = age class Student(Person): def __init__(self, name, age, major): super().__init__(name, age) self.major = major # تعريف متغيرات للتحقق من أنها تنتمي إلى النوع الصحيح x = 5 y = "hello" z = Person("John", 30) s = Student("Jane", 20, "Computer Science") # استخدام type() لتحديد نوع البيانات print(type(x)) # <class 'int'> print(type(y)) # <class 'str'> print(type(z)) # <class '__main__.Person'> print(type(s)) # <class '__main__.Student'> # استخدام isinstance() للتحقق من أنه ينتمي إلى الفئة المناسبة print(isinstance(x, int)) # True print(isinstance(y, str)) # True print(isinstance(z, Person)) # True print(isinstance(s, Person)) # True print(isinstance(s, Student)) # True
في هذا المثال، يتم استخدام type()
لتحديد نوع كل متغير و isinstance()
للتحقق من أن الكائن ينتمي إلى الفئة المناسبة، حيث ينتمي z
و s
إلى Person
و s
إلى Student
التي تم إنشاؤها باستخدام الفئات المعرفة بالبرمجة الموجودة في الأعلى.
في بايثون، يتم التمييز بين الأحرف الكبيرة والصغيرة، وهذا يعني أن المتغيرات “Case Sensitive” في بايثون، مما يعني أن var
و Var
و VAR
يعتبرون متغيرات مختلفة في بايثون.
وهذا مثال يوضح ذلك:
name = "John" Name = "Jane" NAME = "Bob" print(name) # John print(Name) # Jane print(NAME) # Bob # محاولة الوصول إلى متغير غير موجود يؤدي إلى خطأ NameError print(NAme) # NameError: name 'NAme' is not defined
في هذا المثال، يتم تعريف ثلاث متغيرات مختلفة name
و Name
و NAME
وتم إنشاء كل منها بحروف كبيرة وصغيرة مختلفة. عند استخدام print()
، يتم طباعة قيمة كل متغير بشكل منفصل، والنتيجة هي ثلاث سطور تظهر القيم المختلفة التي تم تعيينها لكل متغير.
عند محاولة الوصول إلى متغير غير موجود مثل NAme
، يتم إثارة خطأ NameError
، لأن المتغير غير معرف في النطاق الحالي.
لذلك، يجب توخي الحذر عند تعريف المتغيرات في بايثون للتأكد من استخدام الأحرف الكبيرة والصغيرة بشكل صحيح لتجنب الأخطاء.
يمكن استخدام علامات التنصيص (Quotes) في لغة بايثون لتحديد النصوص أو السلاسل النصية (Strings)، وتتوفر بايثون على نوعين من علامات التنصيص وهما:
' '
) أو علامة تنصيص واحدة" "
) أو علامة تنصيص مزدوجةويمكن استخدام أي من النوعين، ولا توجد فرق فيما بينهما من حيث النتائج. وفيما يلي بعض الأمثلة
# استخدام علامة تنصيص واحدة لتعريف النصوص name = 'John' print(name) # John # استخدام علامة تنصيص مزدوجة لتعريف النصوص greeting = "Hello, World!" print(greeting) # Hello, World! # استخدام علامة تنصيص واحدة مع اسناد قيمة متعددة للنص quote = 'One \nTwo \nThree' print(quote) # One # Two # Three # استخدام علامة تنصيص مزدوجة مع اسناد قيمة متعددة للنص sentence = "This is a long sentence, but it's just an example." print(sentence) # This is a long sentence, but it's just an example.
في المثال أعلاه، يتم استخدام علامات التنصيص لتعريف المتغيرات name
و greeting
و quote
و sentence
، ويتم طباعة قيمة كل متغير باستخدام الدالة print()
.
يتم استخدام علامات التنصيص الواحدة في المثال الأول والثالث، ويتم استخدام علامات التنصيص المزدوجة في المثال الثاني والرابع. يمكن استخدام أي من النوعين في الأمثلة السابقة، وليس هناك فرق في النتائج.
يمكن تحويل (Casting) القيم من نوع بيانات إلى نوع بيانات آخر في لغة بايثون باستخدام دوال التحويل المدمجة التالية:
int()
float()
str()
وفيما يلي بعض الأمثلة:
# تحويل string إلى int age = "25" age_int = int(age) print(age_int) # 25 # تحويل int إلى float price = 500 price_float = float(price) print(price_float) # 500.0 # تحويل float إلى int price_float = 500.99 price_int = int(price_float) print(price_int) # 500 # تحويل int إلى string quantity = 10 quantity_str = str(quantity) print(quantity_str) # '10' # تحويل float إلى string weight = 2.5 weight_str = str(weight) print(weight_str) # '2.5'
في المثال أعلاه، يتم تحويل النصوص إلى أعداد صحيحة (int) باستخدام الدالة int()
، وتحويل الأعداد إلى أعداد عشرية (float) باستخدام الدالة float()
، وتحويل الأعداد إلى نصوص (str) باستخدام الدالة str()
.
ويجب ملاحظة أن عملية التحويل يمكن أن تؤدي إلى فقدان جزء من البيانات، مثل تحويل عدد عشري (float) إلى عدد صحيح (int) يؤدي إلى قص الأرقام العشرية. لذلك، يجب الحذر عند استخدام عمليات التحويل.
يمكن تحويل بين أنواع البيانات في لغة بايثون باستخدام تقنية تسمى “Casting” أو “Type Conversion”. يتم استخدام الـ Casting لتحويل قيمة من نوع بيانات إلى نوع آخر، ويمكن استخدامه في الكثير من الحالات مثل:
num = 25 num_str = str(num) print(num_str)
النتيجة: "25"
2-تحويل قيمة من نوع بيانات نص إلى رقم: يمكن استخدام دوال int() و float() لتحويل النص إلى رقم صحيح أو عشري.
num_str = "25" num_int = int(num_str) num_float = float(num_str) print(num_int) print(num_float)
النتيجة:
25
25.0
3-تحويل بيانات من نوع بيانات لمصفوفة: يمكن استخدام دالة list() لتحويل مجموعة عناصر إلى مصفوفة.
data = (1, 2, 3, 4, 5) data_list = list(data) print(data_list)
النتيجة:
[1, 2, 3, 4, 5]
4-تحويل قيمة من نوع بيانات رقمي إلى نوع بيانات مثل bool: يمكن استخدام دالة bool() لتحويل الأنواع الرقمية إلى نوع bool، حيث سترجع True إذا كانت القيمة تساوي 1، و False إذا كانت القيمة تساوي 0.
num = 1 bool_value = bool(num) print(bool_value)
النتيجة: True
تحويل قيمة من نوع بيانات مثل bool إلى نوع بيانات رقمي: يمكن استخدام دالة int() لتحويل قيمة bool إلى القيمة المقابلة لها في الأنواع الرقمية، حيث سيتم تحويل True إلى 1 و False إلى 0.
bool_value = True num = int(bool_value) print(num)
النتيجة:1
5-تحويل قيمة نص إلى مصفوفة: يمكن استخدام دالة list() لتحويل النص إلى مصفوفة من الأحرف.
string = "Hello World" char_list = list(string) print(char_list)
النتيجة: ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']
6-تحويل مصفوفة من الأحرف إلى نص: يمكن استخدام دالة join() لتحويل مصفوفة من الأحرف إلى نص.
char_list = ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd'] string = ''.join(char_list) print(string)
مكنك الاستفادة من المراجع التالية لمزيد من المعلومات حول موضوع تحويل أنواع البيانات في بايثون: