صية "Casting" في بايثون، والتي تُعرف أيضًا باسم "تحويل الأنواع" أو "التحويل القسري"، هي عملية تحويل قيمة من نوع بيانات إلى نوع بيانات آخر. على سبيل المثال، يمكنك تحويل سلسلة نصية (string) إلى عدد صحيح (integer) أو عدد عشري (float)، أو العكس.

لماذا نستخدم Casting؟

في كثير من الأحيان، تحتاج إلى التعامل مع البيانات بأنواع مختلفة. على سبيل المثال، قد تقرأ بيانات من ملف على هيئة سلاسل نصية، ولكنك تحتاج إلى إجراء عمليات حسابية عليها، وبالتالي تحتاج إلى تحويلها إلى أعداد.

طرق Casting في بايثون:

تستخدم بايثون دوال مدمجة (built-in functions) لإجراء عمليات التحويل بين الأنواع المختلفة. أهم هذه الدوال:

  • int(): لتحويل قيمة إلى عدد صحيح.
  • float(): لتحويل قيمة إلى عدد عشري.
  • str(): لتحويل قيمة إلى سلسلة نصية.

أمثلة:

Python
# تحويل سلسلة نصية إلى عدد صحيح
x = "10"
y = int(x)
print(type(x)) # Output: <class 'str'>
print(type(y)) # Output: <class 'int'>
print(y) # Output: 10

# تحويل عدد صحيح إلى عدد عشري
a = 5
b = float(a)
print(type(a)) # Output: <class 'int'>
print(type(b)) # Output: <class 'float'>
print(b) # Output: 5.0

# تحويل عدد عشري إلى سلسلة نصية
c = 3.14
d = str(c)
print(type(c)) # Output: <class 'float'>
print(type(d)) # Output: <class 'str'>
print(d) # Output: 3.14

# مثال على تحويل سلسلة نصية كسرية إلى عدد عشري
e = "3.14159"
f = float(e)
print(type(f)) # Output: <class 'float'>
print(f) # Output: 3.14159

# محاولة تحويل سلسلة نصية غير رقمية إلى عدد صحيح سيؤدي إلى خطأ
g = "hello"
# h = int(g) # سيؤدي هذا السطر إلى خطأ ValueError

ملاحظات مهمة:

  • عند محاولة تحويل سلسلة نصية لا تمثل رقمًا صحيحًا إلى عدد صحيح باستخدام int()، سيحدث خطأ ValueError.
  • يمكن أيضًا استخدام int() مع وسيط ثاني لتحديد نظام العد (base) للرقم في السلسلة النصية، على سبيل المثال int("1010", 2) لتحويل العدد الثنائي "1010" إلى العدد العشري 10.
  • التحويل بين الأنواع يجب أن يكون منطقيًا. لا يمكنك تحويل أي نوع بيانات إلى أي نوع آخر بشكل عشوائي.

الخلاصة:

خاصية Casting في بايثون  قوية وضرورية للتعامل مع البيانات بأنواع مختلفة وإجراء العمليات المطلوبة عليها بشكل صحيح. فهم كيفية استخدام الدوال int()، float()، و str() يُمكّنك من كتابة برامج أكثر فعالية