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

السؤال

نشر

أريد أن أنشئ سلاسل نصية مع عدد صحيح مُولّد عن طريق حلقة التكرار for كما في المثال التالي:

for i in range [1,10]:
  string="string"+i

لكن عندما أقوم بتنفيذ الأمر السابق أحصل على خطأ:

TypeError: unsupported operand type(s) for +: 'int' and 'str'

فما هي الطريقة الصحيح لفعل ذلك؟

Recommended Posts

  • 0
نشر

هنالك طرق متعددة لدمج السلاسل النصية مع الأعداد الصحيحة،لكنها تشترك جميعها في لزوم تحويل العدد الصحيح إلى سلسلة نصية حتى تتمكن من دمجه مع السلسلة النصية الثانية.
إذا أردت طباعة مجموعة من الأعداد الصحيح بعد سلسلة نصية فيمكنك استخدام حلقة التكرار for مع دالة المدى range() كما في المثال التالي:

string = 'string'
for i in range(11):
    string +=`i`
print string

وسوف يتم طباعة السطر التالي:

string012345678910

أما لو أردت الحصول على عدّة سلاسل نصية مع عدد في كل واحدة، مثلا string0, string1 ..... string10 فيمكنك استخدام هذه الطريقة لفعل ذلك:

>>> string = "string"
>>> [string+`i` for i in range(11)]
  • 0
نشر

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

الحل هو كالتالي:

string = 'string'
for i in range(11):
    string +=str(i)
print (string)
# string012345678910

حيث نمرر العدد الصحيح إلى الدالة str لكي تحوّله إلى سلسلة نصية قبل إجراء عملية الربط، وإلا سيعطي خطأ.

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...