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

السؤال

Recommended Posts

  • 0
نشر

عليكم السلام ورحمة الله وبركاته مرحبا علي،

عليك باتباع هذه الخطوات لحل هذا التمرين:

  • ابدأ بتعريف المتغير النصي (string) الأصلي الذي تملكه.
  • قم بتحويل النص إلى قائمة (list) من الأحرف لتتمكن من الوصول إلى كل رقم بشكل منفصل.
  • قم بالمرور عبر كل رقم في القائمة واستبدل الأرقام التي أقل من 5 بالرقم 0 والأرقام 5 وما فوق بالرقم 1.
  • قم بتجميع الأحرف المحدثة في قائمة جديدة.
  • قم بتحويل القائمة الجديدة إلى سلسلة (string) باستخدام دالة join().
  • أرجع السلسلة النهائية.

في حالة عدم معرفتك طريقة كتابة الشيفرة عليك بمشاركة محاولتك وسوف نقوم بتوجيهك ومساعدتك.

بالتوفيق.

 

  • 0
نشر
بتاريخ 1 دقيقة مضت قال مسعود زاهي:

عليكم السلام ورحمة الله وبركاته مرحبا علي،

عليك باتباع هذه الخطوات لحل هذا التمرين:

  • ابدأ بتعريف المتغير النصي (string) الأصلي الذي تملكه.
  • قم بتحويل النص إلى قائمة (list) من الأحرف لتتمكن من الوصول إلى كل رقم بشكل منفصل.
  • قم بالمرور عبر كل رقم في القائمة واستبدل الأرقام التي أقل من 5 بالرقم 0 والأرقام 5 وما فوق بالرقم 1.
  • قم بتجميع الأحرف المحدثة في قائمة جديدة.
  • قم بتحويل القائمة الجديدة إلى سلسلة (string) باستخدام دالة join().
  • أرجع السلسلة النهائية.

في حالة عدم معرفتك طريقة كتابة الشيفرة عليك بمشاركة محاولتك وسوف نقوم بتوجيهك ومساعدتك.

بالتوفيق.

 

تمام , شكرااا

  • 0
نشر

هناك طريقتان لحل هذا التمرين.

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

s = "41345491294358"
res = ''.join(['1' if x >= '5' else '0' for x in s])
print(res)

هذا هو الحل الأمثل بالنسبة للغة البايثون، حيث أن هذه هي الطريقة المفضلة للكتابة في هذه اللغة، بالطبع يمكنك القيام بكتابة حلقة عادية و الإضافة إلى لائحة و من ثم الدمج و لكن ذلك سيكون أسلوب اللغات الاخرى مثل c++ و ليس بايثون.

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

s = "41345491294358"
res = ''
for x in s:
  res += '1' if x >= '5' else '0'
print(res)

 

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...