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

تصحيح خطأ في كود Python باستخدام مكتبة Turtle

حذيفه ابو شنب

السؤال

for i in range(len(face_details_list[0])):
  x, y=face_details_list[0][i]
  turtle.goto(x, y)

for i in range(len(face_details_list[1])):
  x, y=face_details_list[1][i]
  turtle.goto(x, y)

مالخطأ بالكود 

بايثون

تم التعديل في بواسطة Mustafa Suleiman
تعديل عنوان السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

الخطأ هو أنه لم يتم تعريف المتغير turtle قبل استخدامه، والصحيح هو استيراد واستخدام مكتبة turtle، وتعريف كائن من الفئة Turtle لتنفيذ الأوامر كالتالي:

import turtle

# تعريف الكائن الخاص بالرسم
my_turtle = turtle.Turtle()

# الحلقة الأولى
for i in range(len(face_details_list[0])):
  x, y = face_details_list[0][i]
  my_turtle.goto(x, y)

# الحلقة الثانية
for i in range(len(face_details_list[1])):
  x, y = face_details_list[1][i]
  my_turtle.goto(x, y)

# إيقاف البرنامج من أجل عرض النتيجة
turtle.done()

أولاً استيراد مكتبة turtle في البداية وتعريف كائن جديد من الفئة Turtle بواسطة السطر my_turtle = turtle.Turtle().

ثم استخدام الكائن my_turtle لتنفيذ أوامر الرسم مثل goto وتحريكه إلى الإحداثيات المحددة، عند الانتهاء من الحلقات، تستدعى turtle.done() لإيقاف البرنامج وعرض النتيجة المرسومة.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

هل يمكنك توضيح ما الخطأ الذي يظهر لك، انسخه وألصقه هنا بشكل نصي أو صورة للمشكلة.

فربما هناك خطأ آخر في الكود، مثل أن يكون face_details_list لا يحتوي على قيم صحيحة للإحداثيات x و y.

حاول التحقق من أن face_details_list يحتوي على القيم الصحيحة للإحداثيات، ومن تنسيق البيانات داخل face_details_list للتأكد من أن القيم المخزنة فيه صحيحة ومطابقة للتوقعات.

وقم بمشاركة الكود بشكل كامل والخطأ الذي يظهر لك ليتم مساعدتك بشكل أفضل.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

import turtle

face_one = [
  [(-40, 120), (-70, 260), (-130, 230), (-170, 200), (-170, 100), (-160, 40), (-170, 10), (-150, -10), (-140, 10),(-40, -20), (0, -20)],

  [(0, -20), (40, -20), (140, 10), (150, -10), (170, 10), (160, 40), (170, 100), (170, 200), (130, 230), (70, 260),(40, 120), (0, 120)]
]

face_two = [
  [(-40, -30), (-50, -40), (-100, -46), (-130, -40), (-176, 0), (-186, -30), (-186, -40), (-120, -170), (-110, -210),(-80, -230), (-64, -210), (0, -210)],
  
  [(0, -210), (64, -210), (80, -230), (110, -210), (120, -170), (186, -40), (186, -30), (176, 0), (130, -40),(100, -46), (50, -40), (40, -30), (0, -30)]
]

face_three = [
  [(-60, -220), (-80, -240), (-110, -220), (-120, -250), (-90, -280), (-60, -260), (-30, -260), (-20, -250),(0, -250)],
  
  [(0, -250), (20, -250), (30, -260), (60, -260), (90, -280), (120, -250), (110, -220), (80, -240), (60, -220),(0,-220)]
]

turtle.hideturtle()

turtle.bgcolor("#ba161e")

turtle.setup(500, 600)

face_one_start=(0,120)
face_two_start=(0, -30)
face_three_start=(0, -220)

turtle.speed(3)

def draw_face(face_details_list, start_point):
  turtle.penup()
  turtle.goto(start_point)
  turtle.pendown()
  turtle.color("#fab104")
turtle.begin_fill()

my_turtle = turtle.Turtle()

  for i in range(len(face_details_list[0])):
  x, y = face_details_list[0][i]
  my_turtle.goto(x, y)

for i in range(len(face_details_list[1])):
  x, y = face_details_list[1][i]
  my_turtle.goto(x, y)
  
turtle.done()

turtle.end_fill()

draw_face(face_one, face_one_start)
draw_face(face_two, face_two_start)
draw_face(face_three, face_three_start)

هذا الكود كامل الخطأ انو البرنامج بعمل ايرور وسبب الايرور انو face_details_listغير معرفة

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

صحيح، فأنت نسيت تعريف المتغير face_details_list في الكود، ويستخدم هذا المتغير في دالة draw_face التي تستقبل قائمة تفاصيل الوجه.

وتستطيع تعريف face_details_list بشكل منفصل قبل استدعاء الدالة draw_face وتمريره كوسيط للدالة عند استدعائها، كالتالي:

import turtle

face_one = [
  [(-40, 120), (-70, 260), (-130, 230), (-170, 200), (-170, 100), (-160, 40), (-170, 10), (-150, -10), (-140, 10),(-40, -20), (0, -20)],
  [(0, -20), (40, -20), (140, 10), (150, -10), (170, 10), (160, 40), (170, 100), (170, 200), (130, 230), (70, 260),(40, 120), (0, 120)]
]

face_two = [
  [(-40, -30), (-50, -40), (-100, -46), (-130, -40), (-176, 0), (-186, -30), (-186, -40), (-120, -170), (-110, -210),(-80, -230), (-64, -210), (0, -210)],
  [(0, -210), (64, -210), (80, -230), (110, -210), (120, -170), (186, -40), (186, -30), (176, 0), (130, -40),(100, -46), (50, -40), (40, -30), (0, -30)]
]

face_three = [
  [(-60, -220), (-80, -240), (-110, -220), (-120, -250), (-90, -280), (-60, -260), (-30, -260), (-20, -250),(0, -250)],
  [(0, -250), (20, -250), (30, -260), (60, -260), (90, -280), (120, -250), (110, -220), (80, -240), (60, -220),(0,-220)]
]

turtle.hideturtle()
turtle.bgcolor("#ba161e")
turtle.setup(500, 600)
turtle.speed(3)

def draw_face(face_details_list, start_point):
  my_turtle = turtle.Turtle()
  my_turtle.penup()
  my_turtle.goto(start_point)
  my_turtle.pendown()
  my_turtle.color("#fab104")
  my_turtle.begin_fill()

  for i in range(len(face_details_list[0])):
    x, y = face_details_list[0][i]
    my_turtle.goto(x, y)

  for i in range(len(face_details_list[1])):
    x, y = face_details_list[1][i]
    my_turtle.goto(x, y)
  
  my_turtle.end_fill()

face_one_start = (0, 120)
face_two_start = (0, -30)
face_three_start = (0, -220)

draw_face(face_one, face_one_start)
draw_face(face_two, face_two_start)
draw_face(face_three, face_three_start)

turtle.done()

ما تم تعديله هو تعريف face_details_list بشكل منفصل قبل استدعاء الدالة draw_face وتمريرها كوسيط للدالة عند استدعائها، وأيضًا نقل تعريف my_turtle داخل دالة draw_face لضمان إنشاء كائن Turtle جديد لكل وجه.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...