🎯 تحويل أنواع البيانات (Casting) في بايثون: دليلك الشامل للمبتدئين
اليوم سنتعلم مفهومًا أساسيًا ومهمًا جداً في البرمجة بشكل عام وفي بايثون بشكل خاص، ألا وهو تحويل أنواع البيانات أو ما يعرف بـ Casting. إذا كنت تتساءل عن كيفية تحويل النص إلى رقم أو العكس، فأنت في المكان الصحيح! 🚀
🤔 ما هو الـ Casting أو تحويل أنواع البيانات؟
ببساطة شديدة، الـ Casting هو عملية تحويل قيمة من نوع بيانات معين إلى نوع بيانات آخر.
تخيل أن لديك صندوقاً به تفاح (يمثل نوع بيانات str أو نص)، وتريد معرفة كم تفاحة لديك (تمثله نوع بيانات int أو عدد صحيح). عملية العد هذه هي بمثابة عملية تحويل من النص إلى الرقم! هذا بالضبط ما يفعله الـ Casting.
لماذا نحتاج إلى التحويل؟
- لأن العمليات تختلف باختلاف نوع البيانات (لا يمكنك جمع نص ورقم مباشرة).
- لأن المدخلات من المستخدم تأتي عادة كنص، بينما تحتاجها أحياناً كأرقام لإجراء العمليات الحسابية.
🛠️ أدوات التحويل الأساسية في بايثون
توفر بايثون دوالاً جاهزة وبسيطة للقيام بعملية التحويل. هذه أهم ثلاث دوال ستبدأ بها:
int()➡️ يحول إلى عدد صحيح (Integer)float()➡️ يحول إلى عدد عشري (Floating Point Number)str()➡️ يحول إلى نص (String)
دعنا ننظر إلى كل منها عن قرب. 🔍
1. التحويل إلى عدد صحيح باستخدام int()
تستخدم الدالة int() عندما تريد تحويل قيمة إلى عدد صحيح (رقم بدون فاصلة عشرية).
# مثال 1: تحويل نص يمثل رقمًا إلى عدد صحيح
number_text = "10"
real_number = int(number_text)
print(real_number) # الناتج: 10
print(type(real_number)) # الناتج: <class 'int'> (لتأكيد نوع البيانات)
# مثال 2: تحويل عدد عشري إلى عدد صحيح (سيحذف الجزء العشري)
decimal_number = 7.89
integer_number = int(decimal_number)
print(integer_number) # الناتج: 7 (لاحظ أنه حذف كل ما بعد الفاصلة)
💡 ملاحظة مهمة: يمكنك تحويل نص إلى عدد صحيح فقط إذا كان هذا النص يمثل رقماً صحيحاً بشكل صحيح. تحويل النص "hello" باستخدام int() سيتسبب في خطأ.
2. التحويل إلى عدد عشري باستخدام float()
تستخدم الدالة float() عندما تريد تحويل قيمة إلى عدد عشري (رقم يمكن أن يحتوي على فاصلة عشرية).
# مثال 1: تحويل نص يمثل رقمًا عشريًا
decimal_text = "15.5"
real_decimal = float(decimal_text)
print(real_decimal) # الناتج: 15.5
print(type(real_decimal)) # الناتج: <class 'float'>
# مثال 2: تحويل عدد صحيح إلى عدد عشري
whole_number = 42
decimal_version = float(whole_number)
print(decimal_version) # الناتج: 42.0
3. التحويل إلى نص باستخدام str()
تستخدم الدالة str() عندما تريد تحويل أي قيمة إلى نص. هذا مفيد جداً عندما تريد دمج أرقام مع نصوص لعرضها للمستخدم.
# مثال 1: تحويل رقم صحيح إلى نص
age = 25
age_text = str(age)
print(age_text) # الناتج: "25"
print(type(age_text)) # الناتج: <class 'str'>
# مثال 2: دمج رقم مع نص (عملية تحتاج للتحويل)
score = 95
# message = "Your score is " + score # هذا سيعطي خطأ!
message = "Your score is " + str(score) # هذا صحيح بعد التحويل
print(message) # الناتج: Your score is 95
🧪 مثال عملي متكامل: حاسبة بسيطة للمستخدم
لنطبق ما تعلمناه في مثال واقعي. سنطلب من المستخدم إدخال رقمين ونقوم بجمعهما.
# طلب إدخال من المستخدم (يدخل كنص دائمًا)
num1_input = input("أدخل الرقم الأول: ") # مثلاً، يدخل المستخدم "5"
num2_input = input("أدخل الرقم الثاني: ") # مثلاً، يدخل المستخدم "3"
# تحويل المدخلات من نص إلى أعداد صحيحة
num1 = int(num1_input)
num2 = int(num2_input)
# إجراء العملية الحسابية (الآن أصبحت ممكنة)
result = num1 + num2
# تحويل الناتج back إلى نص لعرضه في جملة
print("نتيجة الجمع هي: " + str(result))
ماذا يحدث في هذا الكود؟
input()تجمع المدخلات من المستخدم كنص.int()تحول هذا النص إلى أرقام حتى نتمكن من جمعها.- نجري عملية الجمع.
str()تحول الناتج الرقمي back إلى نص حتى نتمكن من دمجه مع الجملة وعرضه.
❌ ماذا عن التحويلات غير الممكنة؟
ليس كل تحويل ممكن! حاول دائماً أن تكون القيمة قابلة للتحويل إلى النوع الذي تريده.
# هذا سيعمل بشكل صحيح
print(int("100")) # الناتج: 100
# سيسبب خطأ (Error) لأن "Hello" ليس رقماً
# print(int("Hello"))
الخطأ الشائع هنا يسمى ValueError، وسنتعامل مع مثل هذه الأخطاء في دروس لاحقة.
🎓 اختبر نفسك
التعليقات
شاركنا رأيك أو أسئلتك حول هذا المقال