أنواع البيانات المختلطة

2.3 أنواع البيانات المختلطة

أهداف التعلم

في نهاية هذا القسم، ينبغي أن تكون قادرًا على:

  • تحديد أنواع البيانات الناتجة عن العمليات التي تتضمن الأعداد الصحيحة، والأعداد العشرية، والسلاسل النصية.
  • استخدام العوامل وتحويلات الأنواع لدمج الأعداد الصحيحة، والأعداد العشرية، والسلاسل النصية.

دمج الأعداد الصحيحة والأعداد العشرية

يحتاج المبرمجون غالبًا إلى دمج أعداد من أنواع بيانات مختلفة. مثال: برنامج يحسب الإجمالي لطلب تسوق عبر الإنترنت:

    quantity = int(input())
    price = float(input())
    total = quantity * price
    print(total)

quantity هو عدد صحيح، وprice هو عدد عشري. فما نوع بياناتtotal؟ بالنسبة للإدخال 3 و5.0، يكون total عددًا عشريًا، ويطبع البرنامج 15.0.

ينتج عن دمج عدد صحيح وعدد عشري عددٌ عشري. يُطبع العدد العشري افتراضيًا برقم واحد على الأقل بعد الفاصلة العشرية، ويحتوي على العدد المطلوب من الأرقام لتمثيل القيمة. ملاحظة: القسمة باستخدام العامل / تنتج دائمًا عددًا عشريًا.

نقطة تحقق

العمليات التي تدمج الأعداد الصحيحة والأعداد العشرية

مفاهيم تطبيقية

العمليات التي تدمج الأعداد الصحيحة والأعداد العشرية

1.
8 * 0.25
  1. 2
  2. 2.0
2.
2 * 9
  1. 18
  2. 18.0
3.
20 / 2
  1. 10
  2. 10.0
4.
7 / 2
  1. 3.0
  2. 3.5
5.
12.0 / 4
  1. 3
  2. 3.0
6.
8 - 1.0
  1. 7.0
  2. 7
7.
5 - 0.25
  1. 4.5
  2. 4.75

دمج الأنواع العددية والسلاسل النصية

قد تدفع سهولة تحويل الأنواع في Python المبرمجَ إلى الظن بأن أي نوع بيانات يمكن دمجه مع آخر. مثال: برنامج نور يقرأ عددًا من الإدخال ويستخدم العدد في عملية حسابية. يؤدي هذا إلى خطأ في البرنامج لأن دالّة input() تخزن العدد افتراضيًا كسلسلة نصية. السلاسل النصية وأنواع البيانات العددية غير متوافقة لعمليات الجمع والطرح والقسمة. يجب تحويل أحد المعاملَين (operands) صراحةً بحسب الهدف المطلوب.

العامل * يعمل أيضًا كعامل التكرار (repetition operator)، والذي يقبل معامل سلسلة نصية ومعامل عدد صحيح ويكرر السلسلة النصية. مثال: "banjo" * 3 ينتج "banjobanjobanjo".

نقطة تحقق

جمع سلسلة نصية وعدد صحيح

مفاهيم تطبيقية

العمليات التي تدمج الأنواع العددية والسلاسل النصية

8.
int('34') + 56
  1. '3456'
  2. 90
  3. '90'
9.
str(12) + ' red roses'
  1. '12 red roses'
  2. '12'
  3. Error
10.
'50' * 3
  1. '150'
  2. 150
  3. '505050'
11.
str(5.2) + 7
  1. 12.2
  2. '12.2'
  3. Error
12.
80.0 + int('100')
  1. 180
  2. 180.0
  3. '180'
13.
str(3.14) + '159'
  1. 162.14
  2. '3.14159'
  3. Error
14.
2.0 * 'this'
  1. 'this'
  2. 'thisthis'
  3. Error

جرّب بنفسك

بعد الفاصلة

اكتب برنامجًا يقرأ سلسلة نصية من الأرقام تمثل الأرقام بعد الفاصلة العشرية لعدد، num. اجمع (concatenate) سلسلة الإدخال النصية مع '.' وnum، واطبع النتيجة. مثال: إذا كان الإدخال 345، فسيقوم البرنامج بطباعة 2.345.

جرّب بنفسك

اطبع n مرة

اكتب برنامجًا يقرأ سلسلتين نصيتين، str1 وstr2، وعددًا صحيحًا، count. اجمع السلسلتين النصيتين مع مسافة بينهما وسطر جديد ("\n") في النهاية. اطبع السلسلة النصية الناتجة count مرة.