في البرمجة ، غالبا ما يكون من الضروري استخراج رقم من سلسلة. على سبيل المثال ، عند العمل مع بيانات الإدخال أو معالجة النصوص. في لغة برمجة بايثون ، هناك عدة طرق تسمح لك بالتعامل مع هذه المهمة. في هذه المقالة ، سنلقي نظرة على أكثر الطرق فعالية وملاءمة لاستخراج الأرقام من السلاسل في بايثون.
واحدة من أبسط الطرق وأكثرها شيوعا هي استخدام طرق السلسلة المدمجة. على سبيل المثال ، يتحقق الأسلوب إسديجيت() ما إذا كانت سلسلة تتكون من أرقام فقط. إذا كانت السلسلة تتكون فقط من أرقام ، فيمكنك التأكد من أنها رقم. خلاف ذلك ، يمكنك استخدام طريقة فيندال() من وحدة إعادة للبحث عن جميع الأرقام في السلسلة. تتيح لك هذه الطريقة الحصول على قائمة بجميع الأرقام الموجودة في سلسلة.
هناك طريقة أخرى لاستخراج الأرقام من سلسلة وهي استخدام طريقة الانقسام (). تقسم هذه الطريقة سلسلة إلى سلاسل فرعية حسب الحرف أو الأحرف المحددة وترجع قائمة بهذه السلاسل الفرعية. ثم ، يمكنك الذهاب من خلال جميع عناصر القائمة ومعرفة ما اذا كان كل عنصر هو رقم باستخدام طريقة إسديجيت ().
تتناول هذه المقالة العديد من الأمثلة التي ستساعدك على فهم واستخدام الطرق الموضحة لاستخراج الأرقام من سلسلة بشكل أفضل. مع مساعدتهم ، يمكنك تبسيط عملك مع الأرقام في بيثون وتوفير الوقت على معالجة البيانات.
- كيفية استخراج رقم من سلسلة في بيثون: الطرق الأساسية
- 1. طريقة إسديجيت ()
- 2. طريقة فيندال () من وحدة إعادة
- 3. طريقة الانقسام ()
- 4. الطريقة العشرية()
- باستخدام طريقة الانقسام( )
- استخدام التعبيرات العادية
- باستخدام حلقة والمشغلين الشرطيين
- كيفية استخراج رقم من سلسلة في بيثون: تقنيات إضافية
- التعامل مع حالات استثنائية
- تحويل سلسلة إلى قائمة واستخراج رقم
- استخدام المكتبات الجاهزة
- سؤال وجواب
- كيف يمكنني استخراج رقم من سلسلة في بيثون?
- هل هناك أي طرق أخرى لاستخراج عدد من سلسلة في بيثون?
- هل من الممكن لاستخراج أرقام متعددة من سلسلة في بيثون?
- هل من الممكن استخراج عدد صحيح فقط من سلسلة في بيثون?
- هل من الممكن استخراج أرقام الفاصلة العائمة من سلسلة في بايثون?
- هل من الممكن استخراج رقم من سلسلة إذا كان محاطا بأحرف أخرى?
كيفية استخراج رقم من سلسلة في بيثون: الطرق الأساسية
عند العمل مع البيانات النصية في بايثون ، تحتاج أحيانا إلى استخراج معلومات رقمية من سلسلة. يمكن أن يكون هذا مفيدا ، على سبيل المثال ، عند معالجة البيانات التي تحتوي على أرقام أو عند تحليل ملف نصي.
هناك عدة طرق لاستخراج رقم من سلسلة في بايثون:
1.
. هذه الطريقة مفيدة للتحقق مما إذا كانت السلسلة بأكملها رقما.
"'بايثون
سلسلة = "12345"
إذا سلسلة.إسديجيت():
عدد = كثافة العمليات (سلسلة)
طباعة (رقم)
"`
نتيجة تنفيذ التعليمات البرمجية:
12345
من عند
من هذه الوحدة يسمح لك لاستخراج جميع الأرقام من سلسلة. تقوم بإرجاع قائمة بالأرقام التي تم العثور عليها.
"'بايثون
استيراد إعادة
سلسلة = "أبل 123 الموز 456"
أرقام = إعادة.فيندال (ص '\ د+ ' ، سلسلة)
للعدد بالأرقام:
طباعة (كثافة العمليات (عدد))
"`
نتيجة تنفيذ التعليمات البرمجية:
123
456
3.
يسمح لك بتقسيم سلسلة إلى عدة سلاسل فرعية بواسطة فاصل محدد. إذا كان الفاصل عبارة عن مسافة ، فستقوم الطريقة باستخراج الأرقام من السلسلة الممثلة بالكلمات.
"'بايثون
السلسلة = "لدي 5 تفاح و 3 موز"
الكلمات = سلسلة.انقسام()
للكلمة في الكلمات:
إذا كلمة.إسديجيت():
عدد = كثافة العمليات (كلمة)
طباعة (رقم)
"`
نتيجة تنفيذ التعليمات البرمجية:
5
3
4. الطريقة العشرية ()
. هذه الطريقة مفيدة للتحقق مما إذا كانت السلسلة بأكملها رقما طبيعيا.
"'بايثون
سلسلة = "12345"
إذا سلسلة.عشري():
عدد = كثافة العمليات (سلسلة)
طباعة (رقم)
"`
نتيجة تنفيذ التعليمات البرمجية:
12345
ومع ذلك ، يرجى ملاحظة أن هذه الطريقة لن تعمل إذا كانت هناك علامة "+" أو "-" أمام الرقم.
يعتمد اختيار طريقة استخراج رقم من سلسلة في بايثون على المهمة المحددة. من المهم أن تأخذ في الاعتبار تفاصيل البيانات ومتطلبات معالجتها.
باستخدام طريقة الانقسام( )
طريقة الانقسام() هي واحدة من أكثر الطرق شيوعا لاستخراج رقم من سلسلة في بايثون. يسمح لك بتقسيم سلسلة إلى سلاسل فرعية باستخدام فاصل محدد وإرجاع قائمة بهذه السلاسل الفرعية.
إذا كنت بحاجة إلى استخراج رقم من سلسلة ، فيمكنك استخدام طريقة الانقسام () لتقسيم السلسلة بأحرف ليست أرقاما. نتيجة لذلك ، ستحصل على قائمة يكون فيها أحد السلاسل الفرعية رقما.
مثال على استخدام طريقة الانقسام( ):
سلسلة = "أبك 123 ديف456غي 789"
أرقام = سلسلة.انقسام ("اي بي سي")
طباعة (أرقام)
في هذا المثال ، تحتوي السلسلة المصدر على الأحرف " أبك " متبوعة بالأرقام. ستقوم طريقة الانقسام () بتقسيم السلسلة بواسطة الأحرف" أبك " وإرجاع قائمة من السلاسل الفرعية. ستكون نتيجة تنفيذ البرنامج كما يلي:
[", '123دف456غي789']
في هذه الحالة ، يكون الرقم الناتج هو السلسلة الفرعية"123ديف456جي789". في المستقبل ، سيكون من الممكن إجراء معالجة إضافية لهذا الرقم باستخدام طرق ووظائف أخرى للغة بايثون.
تسمح لك طريقة الانقسام () أيضا باستخدام ليس فقط حرفا واحدا كفاصل ، ولكن أيضا سلاسل كاملة. هذا مفيد بشكل خاص عندما يحدث الفاصل عدة مرات متتالية.
على سبيل المثال ، في المثال التالي ، يتم تقسيم السلسلة على أحد الأحرف التالية:"،"،".", "/", ":", "-".
سلسلة = "10 ، 20.30/40: 50-60"
أرقام = سلسلة.انشق ، مزق (",.:/-")
طباعة (أرقام)
نتيجة تنفيذ البرنامج:
['10', '20', '30', '40', '50', '60']
في هذه الحالة ، تقسم طريقة الانقسام () السلسلة بأحرف"،"،".", "/", ":", "-". الإخراج هو قائمة من سلاسل فرعية تحتوي على أرقام.
وبالتالي ، فإن طريقة الانقسام () هي أداة ملائمة لاستخراج الأرقام من سلسلة في بايثون. يسمح لك بتقسيم سلسلة إلى سلاسل فرعية بواسطة فاصل معين والحصول على قائمة بالأرقام.
استخدام التعبيرات العادية
التعبيرات العادية هي أداة قوية للعمل مع النص في بايثون. إنها تسمح لك بالبحث واستخراج المعلومات التي تتطابق مع أنماط معينة.
يستخدم بيثون وحدة إعادة للعمل مع التعبيرات العادية. يوفر مجموعة من الوظائف التي تسمح لك بإجراء عمليات مختلفة باستخدام التعبيرات العادية.
قد يبدو استخدام التعبيرات العادية لاستخراج الأرقام من سلسلة في بايثون كما يلي:
\ ب \ د + \ ب
| يستخدم للبحث عن الأرقام في النص. يحدد النمط التالي: | |
|---|---|
| الوصف | من \ ب |
| بداية الكلمة أو نهايتها | \ د |
| أي رقم | + |
\ ب \ د + \ ب
يبحث عن تسلسلات من رقم واحد أو أكثر محاطة بحدود الكلمات.
يتيح لك استخدام التعبيرات العادية لاستخراج الأرقام من سلسلة في بايثون تحقيق المرونة والدقة عند العمل مع البيانات النصية. ومع ذلك ، يجدر النظر في أن التعبيرات العادية قد يكون من الصعب فهمها وتتطلب بعض المعرفة. لذلك ، قبل استخدام التعبيرات العادية ، يوصى بدراسة أساسياتها وإنشاء تعبيرات بالتتابع ، والتحقق من تشغيلها بأمثلة.
باستخدام حلقة والمشغلين الشرطيين
- إذا كنت ترغب في استخراج رقم من سلسلة باستخدام حلقة ومشغلي الشرطية في بيثون ، يمكنك تطبيق الخوارزمية التالية:
- انتقل من خلال كل حرف في السلسلة باستخدام حلقة.
- تحقق من كل حرف لمعرفة ما إذا كان رقما أم لا باستخدام عوامل تشغيل مشروطة.
- إذا كان الحرف رقما ، فأضفه إلى متغير أو قائمة مؤقتة.
بعد الانتهاء من الحلقة ، قم بدمج المتغير المؤقت أو عناصر القائمة للحصول على الرقم النهائي.
هنا هو رمز المثال الذي يوضح استخدام حلقة والمشغلين الشرطية لاستخراج عدد من سلسلة:
# السلسلة المحددة
سلسلة = "استخراج الرقم 123 من السلسلة"
# إنشاء متغير لتخزين رقم
الرقم = ""
# تمر عبر كل حرف في السلسلة
للحرف في السلسلة:
# التحقق مما إذا كان الرمز هو رقم
إذا كان الرمز هو.إسديجيت():
# إذا كان الرمز رقما ، فأضفه إلى
عدد متغير عدد + = رمز
# إخراج النتيجة
وظيفة الطباعة ()
.
هذا النهج مفيد بشكل خاص إذا كانت السلسلة تحتوي على أحرف أخرى وتريد استخراج الأرقام فقط. ومع ذلك ، ضع في اعتبارك أن هذه الطريقة لا تقتصر على استخراج الأعداد الصحيحة فقط — يمكنك أيضا استخدامها لاستخراج الأرقام العشرية أو الأرقام في الترميز العلمي من خلال تطبيق عمليات التحقق من الأحرف ومعالجتها المناسبة.
كيفية استخراج رقم من سلسلة في بيثون: تقنيات إضافية
. على سبيل المثال ، للعثور على جميع الأرقام في سلسلة ، يمكنك استخدام التعليمات البرمجية التالية:
استيراد إعادة
السلسلة = "تحتوي هذه السلسلة على الرقمين 123 و 456"
أرقام = إعادة.فيندال (ص '\ د+ ' ، سلسلة)
- خطأ
. يمكن استخدام هذه الطريقة للتحقق مما إذا كانت السلسلة عبارة عن رقم قبل الاستخراج:
سلسلة = "123"
إذا سلسلة.إسديجيت():
عدد = كثافة العمليات (سلسلة)
طباعة (رقم) # 123
آخر:
- طباعة ("السلسلة ليست رقما")
باستخدام حلقة ومشغلات شرطية: في حالة وجود عدة أرقام في سلسلة ، يمكنك استخدام حلقة ومشغلات شرطية لاستخراجها ومعالجتها. على سبيل المثال:
سلسلة = "هناك 2 أرقام هنا: 123 و 456"
أرقام = []
للكلمة في السلسلة.انقسام():
إذا كلمة.إسديجيت():
أرقام.إلحاق (كثافة العمليات (كلمة))
طباعة (أرقام) # [2 ، 123 ، 456]
هذه ليست سوى بعض من التقنيات الممكنة لاستخراج الأرقام من سلسلة في بيثون. يعتمد اختيار نهج معين على المهمة المحددة ومتطلباتها. استخدام التقنية التي تناسب الوضع الخاص بك ومريحة بالنسبة لك.
التعامل مع حالات استثنائية
في البرمجة ، غالبا ما تكون هناك مواقف يكون من الضروري فيها التعامل مع الأخطاء والمواقف الاستثنائية. تستخدم بايثون آلية استثناء لهذا الغرض. تسمح لك الاستثناءات بالتحكم في تدفق تنفيذ البرنامج والتعامل مع الأخطاء من أنواع مختلفة.
- فيما يلي بعض النقاط المهمة المتعلقة بمعالجة الاستثناءات في بايثون:
- جرب-باستثناء الكلمات الرئيسية المستخدمة للتعامل مع الاستثناءات. يتم وضع التعليمات البرمجية التي يمكن أن تسبب استثناء في كتلة المحاولة ، وتم تصميم كتلة باستثناء للتعامل مع الاستثناء. في حالة حدوث استثناء في كتلة المحاولة ، ينتقل تنفيذ البرنامج إلى الكتلة المقابلة باستثناء الكتلة.
- استثناء التسلسل الهرمي-بيثون لديه التسلسل الهرمي استثناء. هناك فئات استثناء أساسية مثل باسيكسيبتيون ، استثناء وغيرها. تضيف الفئات اللاحقة أنواعا جديدة من الاستثناءات. يتيح لك ذلك تحديد الاستثناءات التي يجب التعامل معها بدقة أكبر.
- متعددة باستثناء كتل - كتلة محاولة يمكن أن يكون متعددة باستثناء كتل ، كل منها يعالج استثناء محدد. يمكنك تحديد استثناءات متعددة مفصولة بفواصل أو استخدام تسلسل هرمي استثناء.
- وأخيرا-يتم استخدام كتلة أخيرا لتنفيذ التعليمات البرمجية بغض النظر عما إذا حدث استثناء أم لا. يتم تنفيذ التعليمات البرمجية في كتلة أخيرا دائما في نهاية كتلة المحاولة باستثناء.
استثناءات النوع المخصص-بالإضافة إلى الاستثناءات القياسية ، تتيح لك بايثون إنشاء استثناءات مخصصة ، وراثة من الفئات الأساسية. يكون هذا مفيدا عندما تحتاج إلى تحديد مواقف محددة لا تندرج تحت الأنواع القياسية للاستثناءات.
| مثال على استخدام معالجة الاستثناء لاستخراج رقم من سلسلة: | مثال |
|---|---|
الوصف | من مواطنه استخراج_رقم (سلسلة) |
دالة تقبل سلسلة وتستخرج رقما منهاحاول:
باستثناء القيمةخطأ: | العدد = لا شيء |
باستخدام محاولة - باستثناء بناء للتعامل مع استثناء فالويرور الذي يحدث إذا تعذر تحويل سلسلة إلى رقم. | رقم الإرجاع |
إرجاع الرقم المستخرج أو لا شيء إذا فشل الاستخراج.
يسمح لك الرمز أعلاه باستخراج رقم بأمان من سلسلة ، مما يمنع تعطل البرنامج المحتمل بسبب استثناء. باستخدام آلية الاستثناء ، يمكنك توفير سيناريوهات مختلفة لمعالجة الأخطاء وضمان تشغيل أكثر استقرارا للبرنامج.
تحويل سلسلة إلى قائمة واستخراج رقم
يوفر بايثون عدة طرق لتحويل سلسلة إلى قائمة واستخراج رقم من تلك القائمة. دعونا ننظر إلى بعض منهم.
تعويم()
.
سلسلة = "10 20 30 40 50"
أرقام = سلسلة.انقسام()
أرقام = [كثافة العمليات (الأسطوانات) للاسطوانات في أرقام]
وحدة إعادة
يسمح لك بالعثور على جميع الأرقام في سلسلة تتطابق مع نمط معين وإعادتها كقائمة.
استيراد إعادة
السلسلة = "الأرقام هي 10 و 20 و 30 و 40 و 50"
أرقام = إعادة.فيندال (ص '\ د+ ' ، سلسلة)
أرقام = [كثافة العمليات (الأسطوانات) للاسطوانات في أرقام]
طريقة الانقسام ()
.
سلسلة = "10 20 30 40 50"
أرقام = [كثافة العمليات (الأسطوانات) للاسطوانات في السلسلة.انقسام ()]
الطريقة
يسمح لك بالتحقق مما إذا كان كل حرف من السلسلة يتكون من أرقام. لاستخراج الأرقام ، ستكون الخوارزمية كما يلي: انتقل عبر السطر باستخدام حلقة ، وحدد كل رقم ، وتحقق مما إذا كان يتكون فقط من أرقام ، وأضفه إلى القائمة.
السلسلة = "الأرقام هي 10 و 20 و 30 و 40 و 50"
أرقام = []
الرقم الحالي = ""
لشار في سلسلة:
إذا شار.إسديجيت():
حالي_رقم + = شار
الف الحالي_رقم:
أرقام.إلحاق (كثافة العمليات (الرقم الحالي))
الرقم الحالي = ""
طريقة الانقسام ()
.
السلسلة = "الأرقام هي 10 و 20 و 30 و 40 و 50"
أرقام = سلسلة.ترجمة (شارع.ماكيترانس (""،""،سلسلة.علامات الترقيم))
أرقام = أرقام.انقسام()
أرقام = [كثافة العمليات (الأسطوانات) للاسطوانات في أرقام]
إحدى هذه الطرق هي تحويل سلسلة إلى قائمة واستخراج أرقام من تلك القائمة. يعتمد اختيار طريقة معينة على متطلبات وخصائص المهمة.
استخدام المكتبات الجاهزة
- هناك العديد من المكتبات الجاهزة في بايثون التي تبسط عمل استخراج الأرقام من السلاسل. وهنا بعض منهم:
- التعبيرات العادية (إعادة) هي مكتبة بيثون مدمجة للعمل مع التعبيرات العادية. بمساعدتها ، يمكنك بسهولة وكفاءة استخراج الأرقام من السلاسل باستخدام قوالب بحث قوية.
- نومبي هي مكتبة بيثون للعمل مع صفائف متعددة الأبعاد. كما يوفر وظائف لاستخراج الأرقام من السلاسل.
- بوتيفولسوب هي مكتبة بيثون لتحليل هتمل و شمل. يمكن استخدامه لاستخراج الأرقام من صفحات الويب ، وليس فقط من السلاسل.
الباندا هي مكتبة بيثون لتحليل البيانات. يوفر وظائف لاستخراج أكثر تعقيدا ومرونة للأرقام من السلاسل ، بما في ذلك العمل مع جداول البيانات.
اعتمادا على احتياجاتك ومستوى معرفة بايثون ، يمكنك اختيار مكتبة أو أخرى لاستخراج الأرقام من السلاسل. من المهم دراسة أمثلة التوثيق والاستخدام لكل مكتبة لتقييم مزاياها وعيوبها.
وفيما يلي مثال على استخدام التعبيرات العادية من مكتبة إعادة لاستخراج الأرقام من سلسلة:
استيراد إعادة
السلسلة = "العمر: 25 سنة"
نمط = ص '\ د+ ' # نمط للبحث عن واحد أو أكثر من الأرقام
النتيجة = إعادة.فيندال (نمط ، سلسلة)
طباعة (النتيجة) # الإخراج: ['25']
في هذا المثال ، استخدمنا وظيفة فيندال () من وحدة إعادة للبحث عن جميع تسلسل الأرقام في سلسلة. ستكون النتيجة قائمة بالأرقام التي تم العثور عليها.
لاحظ أن استخدام مكتبة إعادة يتطلب معرفة بناء الجملة من التعبيرات العادية ، لذلك يمكن أن يكون من الصعب للمبتدئين. إذا كنت بحاجة إلى وظيفة بسيطة ومريحة لاستخراج الأرقام من السلاسل ، يمكنك استخدام مكتبات أخرى مثل نومبي أو الباندا.
سؤال وجواب
كيف يمكنني استخراج رقم من سلسلة في بيثون?
في بايثون ، هناك عدة طرق لاستخراج رقم من سلسلة. واحدة من أبسط الطرق وأكثرها شيوعا هي استخدام طريقة` سبليت ()'. على سبيل المثال ، إذا كان لديك سلسلة `"العمر: 25 سنة"` ، يمكنك استخراج الرقم `"25"` على النحو التالي: `العمر = "العمر: 25 سنة".انشق ، مزق () [1]`.
هل هناك أي طرق أخرى لاستخراج عدد من سلسلة في بيثون?
نعم ، إلى جانب استخدام طريقة `سبليت ()` ، وهناك طرق أخرى لاستخراج عدد من سلسلة في بيثون. واحد منهم هو استخدام التعبيرات العادية باستخدام وحدة 'إعادة'. على سبيل المثال ، إذا كان لديك سلسلة `"العمر: 25 سنة"` ، يمكنك استخراج الرقم `"25"` على النحو التالي: `استيراد إعادة العمر = إعادة.بحث ('\د+ ' ، "العمر: 25 سنة").مجموعة ()`.
هل من الممكن لاستخراج أرقام متعددة من سلسلة في بيثون?
نعم ، من الممكن استخراج أرقام متعددة من سلسلة في بايثون. على سبيل المثال ، إذا كان لديك سلسلة `"العمر: 25 سنة ، الارتفاع: 175 سم"` ، يمكنك استخراج الأرقام `"25"` و `"175"` على النحو التالي: `استيراد إعادة الأعمار = إعادة.فيندال ('\د+' ، "العمر: 25 سنة ، الارتفاع: 175 سم")'.
هل من الممكن استخراج عدد صحيح فقط من سلسلة في بيثون?
نعم ، يمكنك فقط استخراج عدد صحيح من سلسلة في بيثون. إذا كنت بحاجة فقط للحصول على عدد صحيح ، يمكنك استخدام طريقة` إسديجيت ()'. على سبيل المثال ، إذا كان لديك سلسلة `"العمر: 25 سنة"` ، يمكنك استخراج الرقم `"25"` على النحو التالي: `العمر = كثافة العمليات(تصفية(شارع.إيسديجيت ، "العمر: 25 سنة"))`.
هل من الممكن استخراج أرقام الفاصلة العائمة من سلسلة في بايثون?
نعم ، من الممكن استخراج أرقام الفاصلة العائمة من سلسلة في بايثون. إذا كنت بحاجة إلى الحصول على رقم النقطة العائمة ، يمكنك استخدام طريقة ' تعويم (`'. على سبيل المثال ، إذا كان لديك سلسلة `"الوزن: 65.5 كجم"` ، يمكنك استخراج الرقم `"65.5"` على النحو التالي: `الوزن = تعويم(إعادة.بحث (ص ' \ د+\.\ د + ' ، "الوزن: 65.5 كجم").مجموعة ())`.
هل من الممكن استخراج رقم من سلسلة إذا كان محاطا بأحرف أخرى?