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

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

TheBrain

السؤال

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...