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

السؤال

نشر

else اكوو خطا تحديدا ب

colors = []

colors_0 = input("add the first color you like: \n")

colors.append(colors_0)

colors_1 = input("Do you want to add more colors? yes or no? \n").lower()

if colors_1 == 'yes':

far_color = input("add another color to the list:")

colors.append(far_color)

print(f"the colors you like are: {colors}")

else:

print(f"the color you like is: {colors}")

 

Recommended Posts

  • 0
نشر

المشكلة الأساسية تكمن في المسافة الخاصة بكل عنصر أو بما تسمى في بايثون indentation في الجملة الشرطية else، حيث أنه في لغة بايثون، يجب أن تكون المسافات البادئة موحدة في الجمل الشرطية والأسطر التالية لها، لذا يجب أن يكون الكود الخاص بك بهذه الطريقة لتحل المشكلة:

colors = []

colors_0 = input("add the first color you like: \n")
colors.append(colors_0)

colors_1 = input("Do you want to add more colors? yes or no? \n").lower()

if colors_1 == 'yes':
    far_color = input("add another color to the list:\n")
    colors.append(far_color)
    print(f"the colors you like are: {colors}")
else:
    print(f"the color you like is: {colors}")

 

  • 0
نشر

كما أخبرك شهاب في التعليق السابق فإن المشكلة في المساحات وسأحاول توضيح هذا الأمر بشكل مبسط حيث في لغة البرمجة بايثون، يتم استخدام المسافات البادئة (indentation) لتحديد كتل الكود التي تنتمي إلى نفس البنية البرمجية، مثل الحلقات (loops) أو العبارات الشرطية (if statements).

بمعنى المسافات البادئة هي الطريقة التي تخبر بها بايثون أن مجموعة معينة من الأسطر تنتمي معًا. في لغات برمجة أخرى، قد يتم ذلك باستخدام الأقواس {}.

أمثلة على المسافات البادئة:

العبارات الشرطية (If Statements):

if condition:
    # هذا السطر يتم تنفيذه إذا كانت 'condition' صحيحة
    do_something()
else:
    # هذا السطر يتم تنفيذه إذا كانت 'condition' خاطئة
    do_something_else()

الحلقات (Loops):

for i in range(5):
    # هذا السطر يتم تنفيذه في كل تكرار للحلقة
    print(i)

ويفضل الإطلاع على المقالة التالية لتفاصيل أكثر

 

  • 0
نشر (معدل)

بغض النظر عن المسافات البادىة اذا اجاب المستخدم اجابة عشواىية بدل اللون الاول راح تتفعل ال else بس بعدهة راح تظهر ال input ويطلب لون ثاني شنو الحل هنا وشكراً

colors = []

colors_0 = input("add the first color you like: \n") colors.append(colors_0)

colors_1 = input("Do you want to add more colors? yes or no? \n").lower()

if colors_1 == 'yes':

far_color = input("add another color to the list:").               colors.append(far_color) 

print(f"the colors you like are: {colors}")  

:else

print(f"the color you like is: {colors}")

تم التعديل في بواسطة أمير أحمد لطيف هاشم
  • 0
نشر
بتاريخ 17 ساعة قال El Sayed El Tohamy:

هل يمكنك توضيح سؤالك أكثر؟

كذلك يفضل كتابة الشفرات داخل محرر الشفرات حتى تسهل قراءتها ومساعدتك.

اريد اذا كتب المستخدم اي شي غير اللون تظهر الة ال else ولاتظهرلة بعدها سطر ال input ويطلب لون ثاني 

بتاريخ On 24‏/7‏/2024 at 22:37 قال Chihab Hedidi:

المشكلة الأساسية تكمن في المسافة الخاصة بكل عنصر أو بما تسمى في بايثون indentation في الجملة الشرطية else، حيث أنه في لغة بايثون، يجب أن تكون المسافات البادئة موحدة في الجمل الشرطية والأسطر التالية لها، لذا يجب أن يكون الكود الخاص بك بهذه الطريقة لتحل المشكلة:

colors = []

colors_0 = input("add the first color you like: \n")
colors.append(colors_0)

colors_1 = input("Do you want to add more colors? yes or no? \n").lower()

if colors_1 == 'yes':
    far_color = input("add another color to the list:\n")
    colors.append(far_color)
    print(f"the colors you like are: {colors}")
else:
    print(f"the color you like is: {colors}")

 

شكراً شهاب 

  • 0
نشر
بتاريخ On 26‏/7‏/2024 at 23:40 قال أمير أحمد لطيف هاشم:

اريد اذا كتب المستخدم اي شي غير اللون تظهر الة ال else ولاتظهرلة بعدها سطر ال input ويطلب لون ثاني 

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

colors = []

# دالة للتحقق من صحة الإدخال
def is_valid_color(color):
    return color.strip().isalpha() 
while True:
    try:
        colors_0 = input("add the first color you like (letters only): \n")
        if not is_valid_color(colors_0):  
            raise ValueError("Invalid input. Please enter letters only (no numbers or special characters).")
        colors.append(colors_0.strip())  
        break  
    except ValueError as e:
        print(f"Error: {e}")

        
while True:
    colors_1 = input("Do you want to add more colors? yes or no? \n").lower()
    if colors_1 == 'yes':
        while True:
            try:
                far_color = input("add another color to the list (letters only):\n")
                if not is_valid_color(far_color): 
                    raise ValueError("Invalid input. Please enter letters only (no numbers or special characters).")
                colors.append(far_color.strip())  
                print(f"the colors you like are: {colors}")
                break  
            except ValueError as e:
                print(f"Error: {e}")
    elif colors_1 == 'no':
        print(f"the colors you like are: {colors}")
        break
    else:
        print("Please answer with 'yes' or 'no'.")

دالة is_valid_color هي للتحقق من أن الإدخال ليس فارغًا وليس به أرقام مثل 5 أو blue2، ما نريده هو blue فقط.

فبها نقوم بإزالة المسافات البيضاء من بداية ونهاية السلسلة النصية بواسطة ميثود strip، فلو أدخل المستخدم "   blue ", فإن color.strip() سيعيد "blue"، مما يعني أنه سيتم تجاهل أي مسافات غير ضرورية.

isalpha() دالة مضمنة في بايثون تتحقق هل السلسلة تحتوي فقط على أحرف أبجدية (من الحروف A-Z و a-z)، وفي حال السلسلة تحتوي على أحرف فقط، ستعيد True، ولو تحتوي على أي نوع آخر من الأحرف مثل الأرقام أو الرموز أو حتى المسافات، ستعيد False.

وفي باقي الكود و try و except لالتقاط الأخطاء عند إدخال الألوان.

وحلقة while للسماح للمستخدم بالإجابة على السؤال حول إضافة المزيد من الألوان عدة مرات حتى يختار "لا"، في حال كان الإدخال غير "نعم" أو "لا"، يتم توجيه المستخدم لإعادة الإدخال.

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...