القائمة الرئيسية

الصفحات

دورة البرمجة بلغة بايثون - الدرس السادس (التحويل بين انواع المتغيرات)

دورة البرمجة بلغة بايثون - الدرس السادس (التحويل بين انواع المتغيرات)

دورة البرمجة بلغة بايثون - الدرس السادس (التحويل بين أنواع المتغيرات)
في هذه المقالة ، ستتعرف على تحويل انواع المتغيرات في بايثون وكيفية استخدام هذه العملية.
قبل البدء ، يجب أن يكون لديك معرفة بأنواع بيانات بايثون.

تحويل انواع المتغيرات
عملية تحويل قيمة احد انواع البيانات (عدد صحيح ، سلسلة ، رقم عائم ، إلخ) إلى نوع بيانات آخر بعملية تحويل الأنواع. بايثون لديها نوعين من التحويل:
  • التحويل الضمني Implicit 
  • التحويل الصريح Explicit


التحويل الضمني Implicit
في تحويل الأنواع الضمني ، تقوم بايثون تلقائيًا بتحويل نوع بيانات إلى نوع بيانات آخر. لا تحتاج هذه العملية إلى أي تدخل من المستخدم.

دعنا نرى مثالاً حيث يقوم بايثون بتحويل نوع البيانات الأقل (عدد صحيح) إلى نوع البيانات الأعلى (رقم عائم float) لتجنب فقدان البيانات.

مثال 1: تحويل العدد الصحيح إلى رقم عائم float:

num_int = 123
num_flo = 1.23

num_new = num_int + num_flo

print("datatype of num_int:",type(num_int))
print("datatype of num_flo:",type(num_flo))

print("Value of num_new:",num_new)
print("datatype of num_new:",type(num_new))

عند تشغيل البرنامج أعلاه ، سيكون الناتج:

datatype of num_int: <class 'int'>
datatype of num_flo: <class 'float'>

Value of num_new: 124.23
datatype of num_new: <class 'float'>
في البرنامج أعلاه ،
  • اضفنا متغيرين num_int و num_flo ، لتخزين القيمة في المتغيرالجديد num_new.
  • سنلقي نظرة على نوع بيانات الكائنات الثلاثة على التوالي.
  • في الإخراج ، يمكننا رؤية نوع بيانات num_int بانها عددً صحيح بينما يكون نوع بيانات num_flo عدد عائم float.
  • أيضًا ، يمكننا أن نرى أن المتغير num_new يحتوي على نوع بيانات عائم لأن بايثون يحول دائمًا أنواع البيانات الأصغر إلى أنواع بيانات أكبر لتجنب فقدان البيانات.


الآن ، دعنا نحاول جمع سلسلة نصية وعدد صحيح ، ونرى كيف تتعامل بايثون معها.

مثال 2: جمع نوع بيانات سلسلة نصية (الأعلى) ونوع بيانات عدد صحيح (الأقل)

num_int = 123
num_str = "456"

print("Data type of num_int:",type(num_int))
print("Data type of num_str:",type(num_str))

print(num_int+num_str)

عند تشغيل البرنامج أعلاه ، سيكون الناتج:

Data type of num_int: <class 'int'> 
Data type of num_str: <class 'str'> 

Traceback (most recent call last): 
  File "python", line 7, in <module> 
TypeError: unsupported operand type(s) for +: 'int' and 'str'
في البرنامج أعلاه ،
  • اضفنا متغيرين num_int و num_str.
  • كما نرى من الإخراج ، حصلنا على الخطأ TypeError. بايثون غير قادر على استخدام التحويل الضمني في مثل هذه الظروف.
  • ومع ذلك ، فإن بايثون لديها حل لهذه الأنواع من المواقف الحل هو التحويل الصريح.


التحويل الصريح Explicit
في هذا النوع من التحويل ، يقوم المستخدمون بتحويل نوع بيانات معين إلى نوع البيانات الذي يريده المستخدم. نستخدم الدالات المحددة مسبقًا مثل ()int و ()float و ()str وغيرها لإجراء تحويل صريح .

يُسمى هذا النوع من التحويل أيضًا typecasting لأن المستخدم يغير نوع بيانات الكائنات.

السياق:
<required_datatype>(expression)

مثال 3: جمع سلسلة نصية وعدد صحيح باستخدام التحويل الصريح:
num_int = 123
num_str = "456"

print("Data type of num_int:",type(num_int))
print("Data type of num_str before Type Casting:",type(num_str))

num_str = int(num_str)
print("Data type of num_str after Type Casting:",type(num_str))

num_sum = num_int + num_str

print("Sum of num_int and num_str:",num_sum)
print("Data type of the sum:",type(num_sum))

عند تشغيل البرنامج أعلاه ، سيكون الناتج:

Data type of num_int: <class 'int'>
Data type of num_str before Type Casting: <class 'str'>

Data type of num_str after Type Casting: <class 'int'>

Sum of num_int and num_str: 579
Data type of the sum: <class 'int'>
في البرنامج أعلاه ،
  • اضفنا متغيرين num_str و num_int.
  • قمنا بتحويل المتغير num_str من سلسلة نصية إلى نوع صحيح باستخدام دالة ()int  لإجراء عملية الجمع.
  • بعد تحويل num_str إلى قيمة صحيحة ، تستطيع بايثون جمع هذين المتغيرين.
  • لقد حصلنا على قيمة num_sum ونوع البيانات ليكون عددًا صحيحًا.

نقاط رئيسية يجب تذكرها
  • تحويل النوع هو تحويل كائن من نوع بيانات إلى نوع بيانات آخر.
  • يتم تنفيذ تحويل النوع الضمني تلقائيًا بواسطة مترجم بايثون.
  • تتجنب بايثون فقدان البيانات في التحويل النوعي الضمني.
  • يُطلق على تحويل النوع الصريح أيضًا نوع casting، ويتم تحويل أنواع بيانات الكائنات باستخدام وظائف محددة مسبقًا من قبل المستخدم.
  • في نوع casting، قد يحدث فقدان للبيانات عندما نفرض الكائن على نوع بيانات معين.


reaction:

تعليقات