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

السؤال

نشر

هل هنالك طريقة في بايثون لتكرار سلسلة نصية حتى تصل إلى طول معين وتتوقف؟ مثلا إذا كتبت 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

Recommended Posts

  • 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]

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...