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

السؤال

نشر (معدل)

السلام عليكم

مساعد في حل مشاكل في الكود ده بلغه الباثيون

ده المسائل

Replace all vowel to exclamation mark in the sentence. aeiouAEIOU is vowel.

وده الكود بتاعي

def replace(st):

    arr = ['a' , 'e' , 'i' , 'o' , 'u']

    for i in range(len(st)):

        if st[i] in arr:
            st[i] = '!'

    print(st)   
                

replace('aeion')  

المشاكل موجود في السطر ال 4

مش المفروض هنا يستبدل كل حرف عله ب علامه تعجب

تم التعديل في بواسطة Mustafa Suleiman
تعديل عنوان السؤال

Recommended Posts

  • 0
نشر

عند تشغيل الكود يظهر خطأ 

TypeError: 'str' object does not support item assignment

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

لذا تحتاج إلى إنشاء سلسلة جديدة تحتوي على التغييرات المطلوبة، حاول التفكير في الأمر لكي تستفيد.

  • 0
نشر
بتاريخ 2 دقائق مضت قال Mustafa Suleiman:

عند تشغيل الكود يظهر خطأ 

TypeError: 'str' object does not support item assignment

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

لذا تحتاج إلى إنشاء سلسلة جديدة تحتوي على التغييرات المطلوبة، حاول التفكير في الأمر لكي تستفيد.

ايوه بيظهر الخطاء ده صح

بتاريخ 2 دقائق مضت قال Mustafa Suleiman:

لذا تحتاج إلى إنشاء سلسلة جديدة تحتوي على التغييرات المطلوبة، حاول التفكير في الأمر لكي تستفيد.

تمام حاضر

شكرااا جداا لحضرتك

  • 0
نشر
بتاريخ 2 ساعة قال Mustafa Suleiman:

عند تشغيل الكود يظهر خطأ 

TypeError: 'str' object does not support item assignment

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

لذا تحتاج إلى إنشاء سلسلة جديدة تحتوي على التغييرات المطلوبة، حاول التفكير في الأمر لكي تستفيد.

انا حلت المكشله وده الكود

def replace(st):

    arr = ['a' , 'e' , 'i' , 'o' , 'u']
    word = ''
    for key in range(len(st)):

        if st[key].lower() in arr:
            word += '!'

        else:
            word += st[key]

    return word                    

print(replace('aeioun')) 

 

بس في الموقع عاوزني ارجع المتغير ال st

حالتها الحمد الله

انا هاجي في الاخر وهعمل كده

st = world

return st

 

  • 0
نشر (معدل)
بتاريخ 23 ساعة قال Ail Ahmed:

انا حلت المكشله وده الكود

في البداية أحييك على اجتهادك ومحاولاتك لتنمية مهاراتك البرمجية.

الشيفرات التي كتبتها تعمل بشكل صحيح، وبالتأكيد قد اكتسبت مهارة التفكير المنطقي وهذه مهارة مطلوبة وهامة جدًا، ولكن بجانب ذلك لابد من تنمية مهارة استخدام الأدوات المساعدة والمتقدمة.

الفوائد:

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

من ضمن هذه الأدوات هي "التعابير النمطية" Regular Expressions فيمكن تنفيذ نفس المهمة بالشكل التالي

import re

def replace(st):
    newText = re.sub("[aeiouAEIOU]", "!", st)
    return newText

print(replace('aeioun'))

كما يتضح، تم استخدام وظيفة sub التابعة لمكتبة re، وكما نرى سهولة قراءة الشيفرات وبالتالي سهولة الصيانة ومعالجة الأخطاء.

إضافة إلى أن هذه الوظيفة تم اختبارها جيدًا ومضمونة بشكل أكبر.

إضافة إلى سرعة الأداء نتيجة استخدام خورازميات بحث واستبدال متقدمة مما يساعد في تحسين الأداء والذاكرة.

يمكنك مشاهدة هذا المقال الهام الذي به العديد من المشاريع التي تنمي مهاراتك بشكل كبير

 

تم التعديل في بواسطة El Sayed El Tohamy
تعديل بالشيفرات استبدال كلمة origin بـ st
  • 0
نشر
بتاريخ 12 ساعة قال El Sayed El Tohamy:

في البداية أحييك على اجتهادك ومحاولاتك لتنمية مهاراتك البرمجية.

الشيفرات التي كتبتها تعمل بشكل صحيح، وبالتأكيد قد اكتسبت مهارة التفكير المنطقي وهذه مهارة مطلوبة وهامة جدًا، ولكن بجانب ذلك لابد من تنمية مهارة استخدام الأدوات المساعدة والمتقدمة.

الفوائد:

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

من ضمن هذه الأدوات هي "التعابير النمطية" Regular Expressions فيمكن تنفيذ نفس المهمة بالشكل التالي

import re

def replace(st):
    newText = re.sub("[aeiouAEIOU]", "!", origin)
    return newText

print(replace('aeioun'))

كما يتضح، تم استخدام وظيفة sub التابعة لمكتبة re، وكما نرى سهولة قراءة الشيفرات وبالتالي سهولة الصيانة ومعالجة الأخطاء.

إضافة إلى أن هذه الوظيفة تم اختبارها جيدًا ومضمونة بشكل أكبر.

إضافة إلى سرعة الأداء نتيجة استخدام خورازميات بحث واستبدال متقدمة مما يساعد في تحسين الأداء والذاكرة.

يمكنك مشاهدة هذا المقال الهام الذي به العديد من المشاريع التي تنمي مهاراتك بشكل كبير

 

ايوه صح انا دورت وعارفت المكتبه ده

وكمان في داله اسمه str.replace  بتدبتل حرف او حتي كلمه بحرف تاني او جمله تاني

 

شكرااا جداا لحضرتك

كلام حضرتك بيشجيعن الصراح شكرااا جداا

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...