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 …’)
عملته نسخ
المهم مع العلم كل ما استدعي فنكشن لحالها تشتغل
بس لمن استخدمت while True
ما رضي يشتغل غير اول فنكشن لو شو ما كتبت
بصراحه بدي افهم اش الفرق بين متغير قيمته صحيحه
وبين while True
ع الواقع عند تنفيذ الكود
افهمتها نظري بس بدي استوعبها عملي
لديك بعض الأخطاء البسيطة في كود 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('عذرًا، الاختيار غير صالح! حاول مرة أخرى...')
التعديلات والتحسينات:
استخدام علامات الاقتباس الصحيحة: قمت بتحديث جميع علامات الاقتباس لتجنب المشاكل في التفسير.
تصحيح شروط if: تأكدت من أن كل شرط يستخدم or بشكل صحيح لفحص القيم المتعددة.
إعادة تسمية دالة circle إلى draw_circle: لتجنب أي تعارض مع الدوال الافتراضية.
تحديث دالة exit إلى exit_program: لتجنب التعارض مع دالة exit() المدمجة في Python وضمان وضوح الغرض منها.
نصيحة إضافية:
استمتع بالتعلم: الأخطاء جزء طبيعي من الرحلة. مع كل خطأ، تتعلم شيئًا جديدًا. استمر في التحقق من الأكواد وفهم كل سطر فيها. كل خطوة هي خطوة نحو تحسين مهاراتك البرمجية!
لا خلص هيو اشتغل
ما كان يشتغل ع ربليت
بس لمن شغلته ع ڤجول ستديو كود اشتغل
يعني طلع بس الخطأ في الجمله الشرطيه
انا عملته صح وله لازم اكون من البدايه فكرت حل التحدي بنفس طريقة الاستاذ ؟؟