اذهب إلى المحتوى

السؤال

نشر

أحاول أن أقوم بتحويل نص إلى رقم صحيح كالتالي:

>>> x = "10.111 "
>>> int(x)

لكني أحصل على الخطأ التالي:

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

ValueError: invalid literal for int() with base 10: '10.111 '

ثم حاول أن أقوم بإزالة المسافات الإضافية من النص كالتالي:

>>> int(x.strip())

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

Recommended Posts

  • 1
نشر

السبب أن 10.111 هو عدد عشري في هيئة سلسلة نصية و ليس عدد صحيح فلو كان "10" يُمكنك إستخدام int مباشرة:

x = "10"
print(int(x)) # 10

بما أنه عشري يُمكنك إستخدام float لتحويله من نص إلى float ثم بإمكانك أخذ العدد الصحيح منه:

x = "10.111 "
print(int(float(x))) # 10

او إستخدام دوال math بالشكل الذي تريد مثال:

import math       
  
x = "5.6"

print(math.floor(float(x))) # 5
print(math.ceil(float(x))) # 6

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...