المقصود (Casting) في لغة برمجة بايثون يشير إلى تحويل قيمة من نوع بيانات إلى نوع بيانات آخر. ويتم ذلك باستخدام دوال تحويل النوع مثل int(), float(), str(), bool() وغيرها. من خلال التحويلات، يمكن للمبرمجين تحويل البيانات من نوع إلى آخر، وبذلك يمكنهم تنفيذ عمليات مختلفة على البيانات بسهولة.
على سبيل المثال، يمكن تحويل قيمة من نوع النص (string) إلى نوع العدد (integer) باستخدام دالة int() كالتالي:
ا
x = "5" y = int(x) print(y)
النتيجة :
5
في هذا المثال، يتم تحويل النص “5” إلى العدد 5 باستخدام دالة int() ومن ثم يتم طباعة القيمة الجديدة 5
سنتحدث في هذا الموضوع عن طرق تحويل البيانات في لغة بايثون، وذلك من خلال الاستفادة من الدوال المتاحة في اللغة. بتعريف مفهوم التحويل وأهميته، ثم نتناول بعض الدوال الأساسية في بايثون لتحويل البيانات، مثل int() و float() و str() و bool() و list() و tuple() و set() و dict()، مع تقديم أمثلة عملية لكل منها.
كما نتناول طرق الاستفادة من هذه الدوال في معالجة البيانات بشكل صحيح، حيث يمكن استخدام هذه الدوال في العديد من المشاريع والتطبيقات التي تعتمد على معالجة البيانات، وتحويلها إلى الأنواع المناسبة حسب الحاجة.
حويل البيانات في لغة بايثون يعد أحد الأمور الأساسية والمهمة جداً، حيث يمكن استخدام هذه العملية في العديد من المشاريع والتطبيقات، وتأتي أهمية التحويل في ما يلي:
يمكن تحويل البيانات في لغة بايثون باستخدام دوال التحويل المختلفة، وفيما يلي بعض الطرق الشائعة لتحويل البيانات:
a = "10" b = int(a) print(b)
النتيجة:
10
لتحويل نص إلى عدد عشري (float)، يتم استخدام الدالة float()، مثل:
a = "10.5" b = float(a) print(b)
10.5
a = 5 b = str(a) print(b)
النتيجة:
5
لتحويل عدد عشري (float) إلى نص (string)، يتم استخدام الدالة str()،
مثل:
a = 10.5 b = str(a) print(b)
النتيجة:
10.5
a = True b = int(a) print(b)
النتيجة:
1
يمكن تحويل قيمة منطقية (boolean) False إلى القيمة 0 باستخدام الدالة int()، مثل:
a = False b = int(a) print(b)
النتيجة :
0
a = 0 b = bool(a) print(b)
النتيجة :
False
يمكن تحويل أي قيمة عددية غير الصفر إلى True باستخدام الدالة bool()، مثل:
a = 10 b = bool(a) print(b)
النتيجة :
True
a = 10.5 b = int(a) print(b)
النتيجة :
10
نتيجة الطباعة ستكون 10، حيث تم تحويل العدد العشري 10.5 إلى عدد صحيح 10
a = True b = str(a) print(b)
النتيجة:
True
نتيجة الطباعة ستكون “True”، حيث تم تحويل القيمة المنطقية True إلى نص “True”.
، مثل:
a = "10.5" b = int(float(a)) print(b)
النتيجة :
10
نتيجة الطباعة ستكون 10، حيث تم تحويل النص “10.5” إلى عدد عشري 10.5 ثم تم تحويله إلى عدد صحيح 10.
، مثل:
a = "True" b = bool(a) print(b)
النتيجة :
True
نتيجة الطباعة ستكون True، حيث تم تحويل النص “True” إلى القيمة المنطقية True.
x = 5.5 y = int(x) print(y) # 5
النتيجة:
5
مثال:
x = 5 y = float(x) print(y) # 5.0
النتيجة:
5.0
مثال:
x = 5 y = str(x) print(y) # "5"
النتيجة :
5
مثال:
x = "True" y = bool(x) print(y) # True
النتيجة :
True
مثال:
x = (1, 2, 3) y = list(x) print(y) # [1, 2, 3]
النتيجة:
[1, 2, 3]
مثال
x = [1, 2, 3] y = tuple(x) print(y) # (1, 2, 3)
النتيجة :
(1, 2, 3)
set()
: تقوم بتحويل البيانات إلى صيغة مجموعة. مثال:
x = [1, 2, 3, 3] y = set(x) print(y) # {1, 2, 3}
النتيجة:
{1, 2, 3}
مثال
x = (("a", 1), ("b", 2)) y = dict(x) print(y) # {"a": 1, "b": 2}
النتيجة:
{'a': 1, 'b': 2}
مثال:
x = 97 y = chr(x) print(y) # "a"
النتيجة:
a
x = "a" y = ord(x) print(y) # 97
النتيجة:
97
مثال:
x = 255 y = hex(x) print(y) # "0xff"
النتيجة:
0xff
x = 255 y = bin(x) print(y) # "0b11111111"
النتيجة:
0b11111111
x = 255 y = oct(x) print(y) # "0o377"
النتيجة:
0o377
مثال:
x = 2 y = 3 z = complex(x, y) print(z) # (2+3j)
النتيجة:
(2+3j)
s = "hello world" s_upper = s.upper() print(s_upper)
النتيجة :
HELLO WORLD
from datetime import datetime date_string = "2022-04-01" date_object = datetime.strptime(date_string, "%Y-%m-%d") print(date_object)
النتيجة:
2022-04-01 00:00:00
from PIL import Image img_bw = Image.open("image_bw.png") img_rgb = img_bw.convert("RGB") img_rgb.save("image_rgb.png")
يتم تحويل الصورة “image_bw.png” إلى صورة ملونة ويتم حفظها في ملف “image_rgb.png”.
s = "apple,banana,orange" lst = s.split(",") print(lst)
النتيجة:
['apple', 'banana', 'orange']
lst = ["apple", "banana", "orange"] s = ",".join(lst) print(s)
النتيجة:
apple,banana,orange
lst = [1, 2, 2, 3, 3, 3] s = set(lst) print(s)
النتيجة:
{1, 2, 3}
from datetime import datetime datetime_string = "2022-04-01 14:30:00" datetime_object = datetime.strptime(datetime_string, "%Y-%m-%d %H:%M:%S") print(datetime_object)
النتيجة :
2022-04-01 14:30:00
هناك العديد من المراجع والمصادر المفيدة لتعلم التحويل بين البيانات باستخدام Python ، ومن بين هذه المصادر:
كتاب “Learning Python” لـ Mark Lutz