• 0

كيف أكرر سلسلة نصية لطول معين في بايثون؟

هل هنالك طريقة في بايثون لتكرار سلسلة نصية حتى تصل إلى طول معين وتتوقف؟ مثلا إذا كتبت repeat('abc', 7) فسيكون الناتج 'abcabca'، حتى الآن كتبت الشيفرة البرمجية التالية:

def repeat(string, length):
    cur, old = 1, string
    while len(string) < length:
        string += old[cur-1]
        cur = (cur+1)%len(old)
    return string

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

يمكنك تكرار السلسلة النصية في بايثون بعدّة طرق، فمثلا يمكنك تكرار سلسلتك النصية ثم تضعها في متغير معين وتقطع منه الطول الذي تريده فقط كما في المثال التالي:

>>> 'abc' * 7
'abcabcabcabcabcabcabc'
>>> a = 'abc' * 7
>>> b = a[:7]
>>> b
'abcabca'
>>>

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

def repeat_to_length(string_to_expand, length):
   return (string_to_expand * ((length/len(string_to_expand))+1))[:length]

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن