تعلم التلبيس في بايثون في خمس دقائق

دورة مكثفة حول Typecasting وتحويل النوع في Python بطريقة غير مطولة للغاية

النوع: صب

تسمى عملية تحويل نوع بيانات إلى نوع بيانات آخر Typecasting أو Type Coercion أو Type Conversion .

الموضوعات التي سأركز عليها في هذه المقالة هي:

  1. نوع التحويل الضمني
  2. صريح نوع التحويل
  3. مزايا
  4. سلبيات

نوع التحويل الضمني

عندما يتم إجراء تحويل النوع تلقائيًا بواسطة المترجم الفوري دون تدخل المبرمج ، يُشار إلى هذا النوع من التحويل باسم تحويل النوع الضمني .

برنامج مثال:

myInt = 143 # Integer value.myFloat = 1.43 # Float value.
myResult = myInt + myFloat # Sum result
print("datatype of myInt:",type(myInt))print("datatype of myFloat:",type(myFloat))
print("Value of myResult:",myResult)print("datatype of myResult:",type(myResult))

انتاج:

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

datatype of myInt: datatype of myFloat: Value of myResult: 144.43datatype of myResult: 

في البرنامج أعلاه ،

  • نضيف متغيرين myInt و myFloat ، مع تخزين القيمة في myResult.
  • سننظر في نوع البيانات لجميع الكائنات الثلاثة على التوالي.
  • في الإخراج ، يمكننا أن نرى نوع بيانات myInt هو integer، نوع بيانات myFloat هو float.
  • أيضًا ، يمكننا أن نرى أن myFloat يحتوي على floatنوع بيانات لأن Python تحول نوع بيانات أصغر إلى نوع بيانات أكبر لتجنب فقد البيانات.

يسمى هذا النوع من التحويل تحويل النوع الضمني (أو) UpCasting .

صريح نوع التحويل

في تحويل النوع الصريح ، يقوم المستخدمون بتحويل نوع البيانات لكائن ما إلى نوع البيانات المطلوب. نستخدم وظائف مدمجة محددة مسبقًا مثل:

  1. int ()
  2. تطفو()
  3. مركب()
  4. منطقي ()
  5. شارع ()

صيغة تحويل النوع الصريح هي:

(required_datatype)(expression)

يسمى هذا النوع من التحويل تحويل النوع الصريح (أو) تقليل الحجم .

تحويل كثافة العمليات

يمكننا استخدام هذه الوظيفة لتحويل القيم من الأنواع الأخرى إلى int.

فمثلا:

>>> int(123.654)123
>>>int(False)0
>>> int("10")10
>>> int("10.5")ValueError: invalid literal for int() with base 10: '10.5'
>>> int("ten")ValueError: invalid literal for int() with base 10: 'ten'
>>> int("0B1111")ValueError: invalid literal for int() with base 10: '0B1111'
>>> int(10+3j)TypeError: can't convert complex to int

ملحوظة:

  1. لا يمكنك تحويل نوع البيانات المعقد إلى int
  2. إذا كنت تريد تحويل نوع السلسلة إلى نوع int ، فيجب أن تحتوي السلسلة الحرفية على القيمة في Base-10

تعويم التحويل

تُستخدم هذه الوظيفة لتحويل أي نوع بيانات إلى رقم فاصلة عائمة.

فمثلا:

>>> float(10) 10.0
>>> float(True)1.0
>>> float(False)0.0
>>> float("10")10.0
>>> float("10.5")10.5
>>> float("ten")ValueError: could not convert string to float: 'ten'
>>> float(10+5j)TypeError: can't convert complex to float
>>> float("0B1111")ValueError: could not convert string to float: '0B1111'

ملحوظة:

  1. يمكنك تحويل نوع معقد إلى قيمة نوع عائم.
  2. إذا كنت تريد تحويل نوع السلسلة إلى نوع عائم ، فيجب أن تحتوي السلسلة الحرفية على القيمة في الأساس 10.

التحويل المعقد

هذه الوظيفةيستخدم لتحويل الأعداد الحقيقية إلى رقم معقد (حقيقي ، وهمي).

الشكل 1: مركب (x)

يمكنك استخدام هذه الوظيفة لتحويل قيمة واحدة إلى رقم مركب مع الجزء الحقيقي x والجزء التخيلي 0.

فمثلا:

>>> complex(10)10+0j
>>> complex(10.5)10.5+0j
>>> complex(True)1+0j
>>> complex(False)0+0j
>>> complex("10")10+0j
>>> complex("10.5")10.5+0j
>>> complex("ten")ValueError: complex() arg is a malformed string

الشكل 2: مركب (س ، ص)

إذا كنت تريد تحويل X و Y إلى رقم مركب بحيث يكون X جزءًا حقيقيًا و Y سيكون جزءًا وهميًا.

فمثلا:

>>> complex(10,-2)10-2j
>>> complex(True, False)1+0j

التحويل المنطقي

تُستخدم هذه الوظيفة لتحويل أي نوع بيانات إلى نوع بيانات منطقي بسهولة. إنه أكثر أنواع البيانات مرونة في Python.

فمثلا:

>>> bool(0)False
>>> bool(1)True
>>> bool(10)True
>>> bool(0.13332)True
>>> bool(0.0)False
>>> bool(10+6j)True
>>> bool(0+15j)True
>>> bool(0+0j)False
>>> bool("Apple")True
>>> bool("")False
ملاحظة: بمساعدة وظيفة bool ، يمكنك تحويل أي نوع من أنواع البيانات إلى منطقية وسيكون الإخراج - بالنسبة لجميع القيم ، ستنتج True باستثناء 0 ، 0 + 0j وللسلسلة الفارغة.

سلسلة التحويل

تُستخدم هذه الوظيفة لتحويل أي نوع إلى نوع سلسلة.

فمثلا:

>>> str(10)'10'
>>> str(10.5)'10.5'
>>> str(True)'True'
>>> str(False)'False'
>>> str(10+5j)'10+5j'
>>> str(False)'False'

برنامج مثال:

integer_number = 123 # Intstring_number = "456" # String
print("Data type of integer_number:",type(integer_number))print("Data type of num_str before Type Casting:",type(num_str))
string_number = int(string_number)print("Data type of string_number after Type Casting:",type(string_number))
number_sum = integer_number + string_number
print("Sum of integer_number and num_str:",number_sum)print("Data type of the sum:",type(number_sum))

انتاج:

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

Data type of integer_number: Data type of num_str before Type Casting: Data type of string_number after Type Casting: Sum of integer_number and num_str: 579Data type of the sum: 

في البرنامج أعلاه ،

  • نضيف string_number والمتغير الصحيح.
  • قمنا بتحويل string_number من سلسلة (أعلى) إلى نوع عدد صحيح (أقل) باستخدام int()دالة لأداء الإضافة.
  • بعد تحويل string_number إلى قيمة عددية ، تضيف Python هذين المتغيرين.
  • لقد حصلنا على قيمة number_sum ونوع البيانات ليكون عددًا صحيحًا.

مزايا التلبيس

  1. أكثر ملاءمة للاستخدام

مساوئ التلبيس

  1. نظام كتابة أكثر تعقيدًا
  2. مصدر الخلل بسبب يلقي غير متوقع

لقد غطيت كل ما هو مطلوب تقريبًا لإجراء أي نوع من عمليات التلبيس في Python3.

آمل أن يساعدك هذا في التعرف على Python Typecasting بطريقة سريعة وسهلة.

إذا أعجبك هذا المقال ، فيرجى النقر فوق التصفيق وترك تعليقاتك القيمة.