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

السؤال

نشر

جربت استخدام capitalize() لتغيير حالة الحرف الأول من السلسلة النصية إلى حرف كبير لكنها لم تعمل هذه الطريقة عند وجود رقم واحد أو أكثر في بداية السلسلة النصية حيث أرغب في مثيل هذه الحالة الانتقال إلى الحرف الموالي لتغيير حالته كما في المثال التالي:

1bob
5sandy

أريدها أن تكون كهذه:

1Bob
5Sandy

Recommended Posts

  • 0
نشر

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

>>> s = '123sa'
>>> for i, c in enumerate(s):
...     if not c.isdigit():
...         break
...
>>> s[:i] + s[i:].capitalize()
'123Sa'

أو يمكنك استخدام دالة title() لفعل ذلك بكل بساطة حيث ستحول جميع الحروف السلسلة النصية إلى حالة الحروف الصغيرة ما عدا الحرف الأول كما في المثال التالي:

>>> '1sandy'.title()
'1Sandy'
>>> '1bob sandy'.title()
'1Bob Sandy'
>>> '1JoeBob'.title()
'1Joebob'

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...