بايثون هي واحدة من لغات البرمجة الأكثر شعبية في العالم. لديها العديد من الوظائف والأساليب المريحة التي تجعل الحياة أسهل للمبرمجين. قد تكون إحدى هذه المهام التي تنشأ أثناء العمل هي تحديد ما إذا كانت السلسلة رقما. في هذه المقالة ، سننظر في عدة طرق لحل هذه المشكلة.
الطريقة الأولى والأسهل هي استخدام وظيفة إسديجيت (). ترجع هذه الوظيفة صحيحا إذا كانت جميع الأحرف في السلسلة عبارة عن أرقام. ومع ذلك ، لن يعمل إذا كانت هناك علامة في السلسلة "+", "-", "," أو".". لذلك ، إذا كنت بحاجة إلى التحقق من سلسلة لرقم بدون أحرف إضافية ، فهذه الطريقة مناسبة.
طريقة أخرى هي استخدام المحاولة—باستثناء البناء. للقيام بذلك ، يمكنك استخدام وظيفة تعويم() المضمنة. إذا قمت بتمرير سلسلة إليها وتم تحويلها بنجاح إلى رقم ، فإن الدالة ترجع صحيح ، وإلا خطأ. هذه الطريقة أكثر مرونة وتنوعا ، حيث ستعمل مع أرقام الفاصلة العائمة والأرقام السالبة والأرقام ذات الفاصل"."أو"،".
بغض النظر عن الطريقة المختارة ، من المهم أن نفهم أن لكل منها خصائصه وقيوده الخاصة. لذلك ، قبل استخدامه ، من الضروري مراعاة جميع المتغيرات الممكنة للبيانات المستلمة وتحديد طريقة التحقق الأنسب.
- طرق تحديد سلسلة رقمية في بايثون
- 1. طريقة إيسنوميريك ()
- 2. طريقة إسديجيت ()
- 3. التحقق باستخدام طريقة إسديجيت () وعلامة الطرح
- 4. التحقق باستخدام
- الدالة إيسديسيمال () باستخدام الدالة إيسنوميريك ()
- عرض ومعالجة الاستثناء
- مثال على استخدام الاستثناءات
- استخدام التعبيرات العادية
- تحويل سلسلة إلى رقم والتحقق من نوع البيانات
- تحويل سلسلة إلى رقم
- التحقق من نوع البيانات
- باستخدام وظيفة إسديجيت ()
- التحقق باستخدام وحدة إعادة
- التحقق باستخدام الطريقة العشرية ()
- سؤال وجواب
- كيف يمكنني تحديد ما إذا كانت السلسلة هي رقم في بايثون?
- كيف يمكنني التحقق من أن سلسلة تحتوي على رقم?
- كيف يمكنني تحديد ما إذا كانت السلسلة هي عدد صحيح في بايثون?
- كيف يمكنني التحقق من أن السلسلة هي رقم حقيقي في بايثون?
طرق تحديد سلسلة رقمية في بايثون
في بايثون ، هناك عدة طرق لتحديد ما إذا كانت السلسلة عبارة عن رقم. في هذا القسم ، سننظر في عدة طرق:
1. إيسنوميريك()
ترجع الطريقة بشكل صحيح إذا كانت السلسلة تتكون من أحرف رقمية فقط. يمكن أن يكون هذا مفيدا لفحص السلاسل التي تكون أرقاما طبيعية أو أرقاما غير موقعة:
1 = "12345"
2 = "12.34"
ستر3 = "اي بي سي"
طباعة (ستر1.رقم ()) # صحيح
طباعة (ستر2.رقم ()) # خطأ
طباعة (ستر3.رقم ()) # خطأ
2.
يعود صحيحا إذا كانت السلسلة تتكون من أرقام فقط. لا يقبل الأرقام العشرية أو الأرقام السالبة:
1 = "12345"
2 = "12.34"
ستر3 = "-123"
طباعة (ستر1.إيسديجيت ()) # صحيح
طباعة (ستر2.إسديجيت ()) # خطأ
طباعة (ستر3.إسديجيت ()) # خطأ
3. التحقق باستخدام طريقة إسديجيت () وعلامة الطرح
), мы можем определить, является ли строка отрицательным числом:
str1 = "12345"
str2 = "12.34"
str3 = "-123"
print(str1.isdigit() or (str1.startswith("-") and str1[1:].isdigit())) # True
print(str2.isdigit() or (str2.startswith("-") and str2[1:].isdigit())) # False
print(str3.isdigit() or (str3.startswith("-") and str3[1:].isdigit())) # True
4. Проверка с помощью функции isdecimal()
يتحقق أيضا مما إذا كانت السلسلة تتكون من أرقام عشرية فقط. لا تقبل هذه الطريقة الأرقام السالبة أو الأرقام ذات الفاصلة العشرية:
1 = "12345"
2 = "12.34"
ستر3 = "اي بي سي"
طباعة (ستر1.عشري ()) # صحيح
طباعة (ستر2.عشري ()) # خطأ
طباعة (ستر3.عشري ()) # خطأ
باستخدام هذه الأساليب ، سوف تكون قادرة على تحديد ما إذا كانت السلسلة هي رقم أم لا في بيثون.
باستخدام الدالة إسنوميريك ()
في بايثون ، هناك عدة طرق لتحديد ما إذا كانت السلسلة رقما. إحدى هذه الطرق هي استخدام إيسنوميريك ()
الطريقة. يتحقق الأسلوب إيسنوميريك() ما إذا كان كل حرف من السلسلة يتكون من أحرف رقمية. إذا كان كل حرف من السلسلة هو رقم ، فإن الطريقة ترجع صحيح; خلاف ذلك ، فإنه يعود كاذبة.
مثال:
الرقم = "123"
النتيجة = الرقم.إيسنوميريك()
طباعة (النتيجة) # الإخراج: صحيح
لا_رقم = "12 أ3"
النتيجة = لا_الرقم.إيسنوميريك()
طباعة (النتيجة) # الإخراج: خطأ
كما ترون من المثال ، فإن طريقة إسنوميريك() ترجع صحيح لسلسلة تحتوي على أحرف رقمية فقط. إذا كانت هناك أحرف غير رقمية في السلسلة ، فإن الطريقة ترجع خطأ.
عند استخدام طريقة إيسنوميريك () ، فمن الضروري أن تولي اهتماما لحقيقة أنه يحدد ما إذا كان كل حرف هو حرف رقمي ، وليس ما إذا كانت السلسلة هي رقم. على سبيل المثال ، السلسلة "123.45" ليست رقما ، على الرغم من أن جميع أحرفها هي أحرف رقمية. في هذه الحالة ، ترجع الطريقة خطأ.
عرض ومعالجة الاستثناء
في عملية العمل مع البيانات ، خاصة عند التحقق من الأنواع ، قد تحدث أخطاء تحتاج إلى معالجة. أحد هذه الأخطاء هو التحقق مما إذا كانت السلسلة عبارة عن رقم في بايثون.
. يحاول تحويل سلسلة إلى عدد صحيح ، وإذا أمكن ، إرجاع رقم. إذا فشل التحويل ، يتم طرح استثناء فالويرور.
يحدد التعليمات البرمجية التي سيتم تنفيذها إذا تم رفع استثناء. في حالة فالويرور ، يمكنك إخراج رسالة تفيد بأن القيمة المدخلة ليست رقما:
حاول:
عدد = كثافة العمليات (الإدخال ("أدخل رقم:"))
باستثناء القيمةخطأ:
طباعة ("تم إدخال قيمة غير صالحة!")
سيتم تنفيذها بنجاح ، دون استدعاء استثناء.
إلى جانب فالويرور ، يوفر بيثون أيضا عددا من الاستثناءات المضمنة الأخرى التي يمكن استخدامها للتعامل مع مختلف الحالات. على سبيل المثال ، يتم طرح استثناء من نوع الخطأ عند محاولة إجراء عملية باستخدام أنواع بيانات غير متوافقة.
مثال على استخدام الاستثناءات
يوضح مثال التعليمات البرمجية التالية كيفية التعامل مع الاستثناءات المختلفة المتعلقة بالتحقق مما إذا كانت السلسلة رقما:
صفر هو_رقم (سلسلة):
حاول:
عدد = كثافة العمليات (سلسلة)
طباعة (رقم، " هو رقم.")
باستثناء القيمةخطأ:
طباعة (سلسلة ، " ليس رقما.")
. إذا نجح التحويل ، فسيتم عرض الرسالة "الرقم هو رقم" على الشاشة. خلاف ذلك ، سيتم عرض الرسالة "السلسلة ليست رقما".
أمثلة على استدعاءات الوظائف:
هو_رقم ("123") # الإخراج: 123 هو رقم.
إيس_رقم ("أبك") # الإخراج: أبك ليس عددا.
خاتمة:
123 هو رقم.
اي بي سي ليس رقما.
يمكن التعامل مع الاستثناءات بشكل فعال عند التحقق مما إذا كانت السلسلة رقما في بايثون.
استخدام التعبيرات العادية
هناك طريقة أخرى للتحقق مما إذا كانت السلسلة عبارة عن رقم وهي استخدام التعبيرات العادية. التعبيرات العادية هي أنماط تصف مجموعة من الأحرف المقابلة لنمط معين.
.
دعونا ننظر إلى ما يعنيه هذا القالب:
- - بداية السطر
- - أي رقم
- - تكرار واحد أو أكثر للحرف السابق (رقم)
\.? - تكرار واحد أو صفر لرمز النقطة- - صفر أو أكثر من الأرقام
- - نهاية الخط
أي أن هذا القالب يصف سلسلة يمكن أن تبدأ برقم واحد أو أكثر ، متبوعة بنقطة (واحد أو صفر) ، متبوعة بصفر أو أكثر من الأرقام. يرجى ملاحظة أن هذا القالب لا يدعم الأرقام السالبة ولا يأخذ في الاعتبار تنسيقات الأرقام المحتملة (على سبيل المثال ، 1.23 هـ-4).
من وحدة إعادة للتحقق من مطابقة النمط:
استيراد إعادة
صفر هو_رقم (سلسلة):
نمط = ص ' ^ \ د+\.?\ د*''
العودة منطقي (إعادة.بحث(نمط ، سلسلة))
الرقم = "123.456"
إذا كان_رقم (رقم):
طباعة ("رقم")
آخر:
طباعة ("ليس رقما")
وإخراج النتيجة المقابلة.
يمكن أن يكون استخدام التعبيرات العادية مفيدا إذا احتجنا إلى التحقق من سلسلة مقابل أنماط أكثر تعقيدا أو إذا كانت لدينا متطلبات إضافية لتنسيق الأرقام.
تحويل سلسلة إلى رقم والتحقق من نوع البيانات
يعد تحديد ما إذا كانت السلسلة رقما مهمة شائعة عند العمل مع البيانات في بايثون. في هذه المقالة ، سننظر في طرق تحويل سلسلة إلى رقم والتحقق من نوع البيانات.
تحويل سلسلة إلى رقم
في بايثون ، هناك عدة طرق لتحويل سلسلة إلى رقم. دعونا ننظر إلى أهمها:
- يحول سلسلة إلى عدد صحيح. إذا كانت السلسلة تحتوي على عدد عشري أو أحرف أخرى ، فسيتم تجاهلها.
- تحويل سلسلة إلى رقم الفاصلة العائمة. إذا كانت السلسلة تحتوي على أحرف غير الأرقام والنقاط ، فسيتم طرح استثناء.
أمثلة:
| كود | النتيجة |
رقم 1 = كثافة العمليات ("123") | // رقم 1 = 123 |
رقم 2 = تعويم ("3.14") | // رقم 2 = 3.14 |
التحقق من نوع البيانات
.
مثال:
| كود | النتيجة |
الأسطوانات = كثافة العمليات ("123") | طباعة (نوع (الأسطوانات)) |
خاتمة:
| النتيجة |
(عدد صحيح).
عن طريق تحويل سلسلة إلى رقم والتحقق من نوع البيانات ، يمكنك إجراء عمليات ومقارنات مختلفة مع الأرقام في بايثون.
باستخدام وظيفة إسديجيت ()
في بيثون ، وظيفة إسديجيت () يسمح لك للتحقق ما إذا كانت سلسلة هو رقم.
بناء الجملة من وظيفة إسديجيت () يبدو مثل هذا:
سلسلة.إسديجيت()
ترجع الدالة بشكل صحيح إذا كانت السلسلة بأكملها تتكون من أرقام فقط (من 0 إلى 9). خلاف ذلك ، تقوم الدالة بإرجاع خطأ.
النظر في مثال على استخدام وظيفة إسديجيت ():
1 = "12345"
ستر2 = "12.345"
ستر3 = "اي بي سي 123"
طباعة (ستر1.إيسديجيت ()) # صحيح
طباعة (ستر2.إسديجيت ()) # خطأ
طباعة (ستر3.إسديجيت ()) # خطأ
النتيجة المتوقعة:
صحيح
خطأ
خطأ
عند استخدام وظيفة إسديجيت () ، نضع في اعتبارنا أنه يعود قيمة فقط للسلاسل. إذا كنت بحاجة إلى التحقق مما إذا كان المتغير هو رقم ، ثم قبل استخدام الدالة ، يجب تحويل المتغير إلى سلسلة باستخدام وظيفة ستر ():
الأسطوانات = 12345
طباعة (شارع (الأسطوانات).إيسديجيت ()) # صحيح
النتيجة المتوقعة:
صحيح
يمكن أن تكون وظيفة إسديجيت () مفيدة عند العمل مع إدخال المستخدم ، عندما تحتاج إلى التحقق مما إذا كانت السلسلة المدخلة رقما أم لا. على سبيل المثال:
إدخال المستخدم = الإدخال ("أدخل رقما:")
إذا كان المستخدم _ الإدخال.إسديجيت():
طباعة ("الرقم الذي تم إدخاله")
آخر:
طباعة ("لم يتم إدخال رقم")
التحقق باستخدام وحدة إعادة
إعادة (التعبيرات العادية) وحدة في بيثون يوفر ميزات قوية للعمل مع النص. يسمح لك بالتحقق مما إذا كانت السلسلة تتطابق مع نمط معين أو تعبير عادي.
لتحديد ما إذا كانت السلسلة عبارة عن رقم ، يمكنك استخدام وحدة إعادة وطريقة المطابقة الخاصة بها. Метод match проверяет, соответствует ли начало строки заданному регулярному выражению.
Ниже приведен пример кода:
import re
def is_number(string):
pattern = r'^\d+$'
if re.match(pattern, string):
return True
else:
return False
string1 = '12345'
string2 = 'abcde'
print(is_number(string1)) # Output: True
print(is_number(string2)) # Output: False
في هذا المثال ، التعبير العادي ^ \ د + $ يستخدم للتحقق مما إذا كانت السلسلة رقما. هنا:
- ^ - يشير إلى بداية السطر.
- \ د-يعني أي رقم.
- + - يعني حدوث واحد أو أكثر من الحرف السابق.
- indicates-يشير إلى نهاية السطر.
إذا قامت طريقة المطابقة بإرجاع كائن تطابق ، فهذا يعني أن السلسلة تتطابق مع التعبير العادي وهي رقم. خلاف ذلك ، ترجع طريقة المطابقة بلا ، مما يعني أن السلسلة ليست رقما.
وهكذا ، فإن وحدة إعادة يوفر وسيلة مريحة للتحقق ما إذا كانت سلسلة هو رقم في بيثون باستخدام التعبيرات العادية.
التحقق باستخدام الطريقة العشرية ()
في بايثون ، هناك عدة طرق للتحقق مما إذا كانت السلسلة عبارة عن رقم. واحد منهم هو استخدام طريقة إسديسيمال (). ترجع هذه الطريقة صحيحة إذا كانت السلسلة تحتوي على أرقام عشرية فقط (من 0 إلى 9) ، وخطأ خلاف ذلك.
دعونا ننظر إلى مثال:
"بايثون
سلسلة = "12345"
النتيجة = سلسلة.عشري()
طباعة (نتيجة) # صحيح
``
يعود صحيح.
إرجاع كاذبة:
"بايثون
سلسلة = "12.34"
النتيجة = سلسلة.عشري()
طباعة (نتيجة) # خطأ
``
إرجاع كاذبة.
كما أنه يرجع خطأ إذا كانت هناك أنواع أخرى من الأرقام موجودة في السلسلة ، مثل الأرقام العشرية لأنظمة الأرقام الأخرى (على سبيل المثال: الأرقام الرومانية أو الأرقام في نظام الأرقام السداسي العشري).
مناسب عندما نحتاج إلى التحقق بسرعة مما إذا كانت السلسلة تتكون من أرقام عشرية فقط. ومع ذلك ، إذا احتجنا أيضا إلى مراعاة أنواع أخرى من الأرقام ، مثل الأرقام السالبة أو الأرقام ذات الأجزاء العشرية ، فيجب أن نستخدم طرقا أو وظائف أخرى في بايثون.
سؤال وجواب
كيف يمكنني تحديد ما إذا كانت السلسلة هي رقم في بايثون?
هناك عدة طرق لتحديد ما إذا كانت السلسلة عبارة عن رقم في بايثون. واحدة من أسهل الطرق هي استخدام طريقة إسديجيت (). ترجع هذه الطريقة صحيحة إذا كانت السلسلة تتكون فقط من أرقام ، وإلا فإنها ترجع خطأ. على سبيل المثال ، يمكنك كتابة التعليمات البرمجية التالية:
كيف يمكنني التحقق من أن سلسلة تحتوي على رقم?
إذا كنت بحاجة إلى التحقق من أن سلسلة تحتوي على رقم (وليس بالضرورة عدد صحيح) ، يمكنك استخدام الدالة إسنوميريك (). ترجع هذه الوظيفة صحيحا إذا كانت السلسلة تحتوي فقط على أحرف يمكن أن تكون جزءا من رقم. على سبيل المثال ، سيسمح لك هذا الرمز بالتحقق من سلسلة لمحتوى الرقم:
كيف يمكنني تحديد ما إذا كانت السلسلة هي عدد صحيح في بايثون?
لتحديد ما إذا كانت السلسلة هي عدد صحيح في بيثون ، يمكنك استخدام الدالة إيسنوميريك() أو أساليب إيسديجيت() و إيسديسيمال (). إذا كانت نتيجة استدعاء إحدى هذه الطرق أو الوظائف صحيحة ، فإن السلسلة هي عدد صحيح. على سبيل المثال ، يمكنك استخدام التعليمات البرمجية التالية:
كيف يمكنني التحقق من أن السلسلة هي رقم حقيقي في بايثون?
للتحقق من أن السلسلة هي رقم حقيقي (يحتوي على فاصلة عشرية) ، يمكنك استخدام طريقة إيسنوميريك() أو طريقة إيسديجيت (). إذا كانت نتيجة استدعاء إحدى هذه الطرق خاطئة ، فإن السلسلة تحتوي على علامة عشرية. على سبيل المثال ، يمكنك كتابة التعليمات البرمجية التالية: