كيفية تحويل سلسلة نصية إلى عدد عشري في لغة البرمجة Python

المقدمة

في هذا المقال، سنستخدم وظيفة float() في Python لتحويل السلاسل إلى أعداد عشرية. وسنستخدم أيضًا وظيفة str() في Python لتحويل الأعداد العشرية إلى سلاسل.

من المهم تحويل أنواع البيانات بشكل صحيح قبل استخدامها في الحسابات والدمج من أجل منع حدوث أخطاء تشغيل.

المتطلبات الأساسية

لإتمام هذا البرنامج التعليمي، ستحتاج إلى:

تم اختبار هذا البرنامج التعليمي مع Python 3.9.6.

استخدام وظيفة float()

يمكننا تحويل سلسلة نصية إلى عدد عشري في لغة البرمجة بايثون باستخدام الدالة float(). هذه دالة مدمجة تُستخدم لتحويل كائن إلى رقم عشري. داخليًا، تقوم دالة float() باستدعاء دالة __float__() للكائن المحدد.

مثال

لنلقي نظرة على مثال لتحويل سلسلة نصية إلى عدد عشري في بايثون:

input_1 = '10.5674'

input_1 = float(input_1)

print(type(input_1))
print('Float Value =', input_1)

الناتج:

<class 'float'>
Float Value = 10.5674

تم تحويل قيمة السلسلة '10.5674' إلى قيمة عدد عشري 10.5674.

لماذا نحتاج إلى تحويل سلسلة نصية إلى عدد عشري؟

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

input_1 = input('Please enter first floating point value:\n')
input_1 = float(input_1)

input_2 = input('Please enter second floating point value:\n')
input_2 = float(input_2)

print(f'Sum of {input_1} and {input_2} is {input_1+input_2}')

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

لنشغل هذا الكود ونقدم قيمًا عشرية لـ input_1 و input_2:

Please enter first floating point value:
10.234
Please enter second floating point value:
2.456
Sum of 10.234 and 2.456 is 12.69

مجموع الناتج من 10.234 و 2.456 هو 12.69.

مثالياً ، يجب علينا استخدام كتلة try-except للتقاط الاستثناءات في حالة إدخال غير صالح من المستخدم.

باستخدام الدالة str()

يمكننا أيضًا تحويل عدد عشري إلى سلسلة باستخدام الدالة str(). قد يكون هذا مطلوبًا في الحالات التي نريد فيها دمج قيم عدد عشري.

مثال

دعنا نلقي نظرة على مثال:

input_1 = 10.23
input_2 = 20.34
input_3 = 30.45

# باستخدام f-string من Python 3.6+ ، قم بتغيير الصيغة() للإصدارات الأقدم
print(f'Concatenation of {input_1} and {input_2} is {str(input_1) + str(input_2)}')
print(f'CSV from {input_1}, {input_2} and {input_3}:\n{str(input_1)},{str(input_2)},{str(input_3)}')
print(f'CSV from {input_1}, {input_2} and {input_3}:\n{", ".join([str(input_1),str(input_2),str(input_3)])}')

لنقم بتشغيل هذا الكود:

Concatenation of 10.23 and 20.34 is 10.2320.34
CSV from 10.23, 20.34 and 30.45:
10.23,20.34,30.45
CSV from 10.23, 20.34 and 30.45:
10.23, 20.34, 30.45

دمج 10.23 و 20.34 ينتج عنه السلسلة '10.2320.34'. ينتج هذا الكود أيضًا نسختين من القيم المفصولة بفواصل (CSV).

إذا لم نقم بتحويل العدد العشري إلى سلسلة في البرنامج أعلاه ، فستقوم الدالة join() بإلقاء استثناء. أيضًا ، لن نتمكن من استخدام العامل + للدمج لأنه سيقوم بإضافة الأرقام العشرية.

الختام

يمكنك التحقق من النص البرمجي الكامل لـ Python ومزيد من أمثلة Python من خلال مستودع GitHub الخاص بنا.

المراجع:

Source:
https://www.digitalocean.com/community/tutorials/python-convert-string-to-float