مشروع شو بدك ترسم حد يوضحلي وين الخطأ او الاخطاء

from turtle import Turtle , Screen
window=Screen()
window.setup(1000,1000)
window.bgcolor(“black”)
window.title('asmaa godah ')
sam =Turtle()

def square():
sam.color(“red”)
sam.pensize(7)
sam.shape(“turtle”)
for _ in range(4):
sam.forward(100)
sam.left(90)

def circle():
sam.shape(“circle”)
sam.color(“blue”)
sam.pensize(3)
sam.circle(50)

def triangle():
sam.pensize(10)
sam.shape(“square”)
sam.color(“White”)
for _ in range(3):
sam.forward(100)
sam.left(360/3)

def exit():
sam.hideturtle()
window.bgcolor(“green”)
window.clearscreen()
sam.color(“black”)
sam.write(“Press any key to exit”,font=(‘arial’,50,‘normal’),align=“center”,)
sam.penup()
sam.goto(0,-15)
sam.pendown()
sam.color(“gray”)
sam.write(“إضغط في اي مكان للخروج”,font=(‘arial’,30,‘normal’),align=‘center’)

while True:
choice=window.textinput(“لحظه من فضلك”,"ما الذي تريد رسمه؟؟ “)
if choice==“square” or “مربع”:
square()
elif choice==“circle” or “دائره”:
circle()
elif choice==“triangle” or “مثلث”:
triangle()
elif choice==“exit” or " خروج”:
exit()
break
else:
print(‘sorry invaild choice!! Try again …’)

window.exitonclick()

إعجاب واحد (1)

عملته نسخ
المهم مع العلم كل ما استدعي فنكشن لحالها تشتغل
بس لمن استخدمت while True
ما رضي يشتغل غير اول فنكشن لو شو ما كتبت
بصراحه بدي افهم اش الفرق بين متغير قيمته صحيحه
وبين while True
ع الواقع عند تنفيذ الكود
افهمتها نظري بس بدي استوعبها عملي

إعجاب واحد (1)

يبدو أن الخطأ في كتابة الشروط بشكل خاطئ

يرجي كتابة أنه إذا choice كانت square أو choice مرة أخري تساوي مربع هكذا

if choice == “square” or choice == “مربع”

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

إعجاب واحد (1)

اهلا وسهلا


لديك بعض الأخطاء البسيطة في كود Python، ويمكنك بسهولة تصحيحها والانتقال إلى المستوى التالي في البرمجة!

أولاً، دعني أهنئك على شغفك بالتعلم واستخدام مكتبة Turtle لرسم الأشكال. الخطوات التي اتخذتها رائعة، وأنت في الاتجاه الصحيح. الآن، دعنا نتأكد من أن الكود يعمل بكفاءة. إليك بعض التوجيهات والنصائح لتحسينه:

1. استخدام علامات الاقتباس الصحيحة:

  • لاحظت أنك استخدمت علامات الاقتباس العربية (“ ”). في Python، يجب استخدام علامات الاقتباس العادية مثل (" أو '). تأكد من تحديثها في جميع النصوص في الكود.

2. تصحيح استخدام or في شروط if:

  • عندما تستخدم شرطًا مثل if choice == "square" or "مربع":، سيتحقق الشرط دائمًا لأن "مربع" يعتبر قيمة True بشكل دائم. بدلاً من ذلك، تأكد من كتابة الشرط هكذا: if choice == "square" or choice == "مربع":.

3. استخدام while True بشكل صحيح:

  • استخدام while True جيد لحلقات متكررة، لكن يجب أن تتأكد من أن الشروط داخل الحلقة تسمح بقبول كافة الخيارات أو الخروج منها عند الحاجة. تأكد من استخدام break للخروج من الحلقة عند اختيار المستخدم “exit” أو “خروج”.

4. تحسين دالة exit:

  • بعد استدعاء window.clearscreen(), من الجيد إعادة تهيئة بعض الإعدادات لتوضيح خروج المستخدم. يمكنك إضافة كتابة رسالة للخروج وتغيير لون الخلفية.

النسخة المحسنة من الكود:

from turtle import Turtle, Screen

# إعداد نافذة الرسم
window = Screen()
window.setup(1000, 1000)
window.bgcolor("black")
window.title('asmaa godah')
sam = Turtle()

# دالة لرسم مربع
def square():
    sam.color("red")
    sam.pensize(7)
    sam.shape("turtle")
    for _ in range(4):
        sam.forward(100)
        sam.left(90)

# دالة لرسم دائرة
def draw_circle():
    sam.shape("circle")
    sam.color("blue")
    sam.pensize(3)
    sam.circle(50)

# دالة لرسم مثلث
def triangle():
    sam.pensize(10)
    sam.shape("square")
    sam.color("white")
    for _ in range(3):
        sam.forward(100)
        sam.left(360 / 3)

# دالة للخروج من البرنامج
def exit_program():
    sam.hideturtle()
    window.bgcolor("green")
    sam.clear()
    sam.color("black")
    sam.penup()
    sam.goto(0, 0)
    sam.write("Press any key to exit", font=('arial', 50, 'normal'), align="center")
    sam.goto(0, -30)
    sam.color("gray")
    sam.write("إضغط في اي مكان للخروج", font=('arial', 30, 'normal'), align='center')
    window.exitonclick()

# حلقة لا نهائية لاستقبال خيارات المستخدم
while True:
    choice = window.textinput("لحظة من فضلك", "ما الذي تريد رسمه؟")
    if choice == "square" or choice == "مربع":
        square()
    elif choice == "circle" or choice == "دائرة":
        draw_circle()
    elif choice == "triangle" or choice == "مثلث":
        triangle()
    elif choice == "exit" or choice == "خروج":
        exit_program()
        break
    else:
        print('عذرًا، الاختيار غير صالح! حاول مرة أخرى...')

التعديلات والتحسينات:

  1. استخدام علامات الاقتباس الصحيحة: قمت بتحديث جميع علامات الاقتباس لتجنب المشاكل في التفسير.

  2. تصحيح شروط if: تأكدت من أن كل شرط يستخدم or بشكل صحيح لفحص القيم المتعددة.

  3. إعادة تسمية دالة circle إلى draw_circle: لتجنب أي تعارض مع الدوال الافتراضية.

  4. تحديث دالة exit إلى exit_program: لتجنب التعارض مع دالة exit() المدمجة في Python وضمان وضوح الغرض منها.

نصيحة إضافية:

  • استمتع بالتعلم: الأخطاء جزء طبيعي من الرحلة. مع كل خطأ، تتعلم شيئًا جديدًا. استمر في التحقق من الأكواد وفهم كل سطر فيها. كل خطوة هي خطوة نحو تحسين مهاراتك البرمجية!

بالتوفيق لك في مشاريعك القادمة! :rocket:

إعجابَين (2)

علامة الاقتباس بالانجلش بالبرنامج
بس لمن عملت نسخ طلع بالعربي

عدلت الشرط if choice=="circle or choice==“دائره”
ومع هيك ما اشتغل نهائي

هلا بإمكاني اتبع حل الاستاذ واكمل
بس انا بدي افهم ليش ب while True
ما اشتغل
مع انه الشروط واضحه

لا خلص هيو اشتغل :dancer::dancer::dancer::dancer:
ما كان يشتغل ع ربليت
بس لمن شغلته ع ڤجول ستديو كود اشتغل
يعني طلع بس الخطأ في الجمله الشرطيه
انا عملته صح وله لازم اكون من البدايه فكرت حل التحدي بنفس طريقة الاستاذ ؟؟

إعجاب واحد (1)

Congratulationssssss