#python #turtle-graphics
Вопрос:
Я пытался создать код, который определяет, является ли прямоугольный треугольник триплетом пифагора или нет. Затем я попытался нарисовать треугольник в черепахе. Однако, когда я пытаюсь получить градусы между основанием и гипотенузой, я получаю это:
TypeError: unsupported operand type(s) for *=: 'function' and 'float'
Это мой код:
import math
isrightangled = int(input('is your triangle right-angled? enter 1 for no. if it is, press any other number'))
if isrightangled == 1:
print('your triangle is not a pythagorean triplet.')
else:
a = int(input('Please enter the perpendicular height of your triangle.'))
b = int(input('please enter the base length of your triangle.'))
apowerof2 = a * a
bpowerof2 = b * b
cpowerof2 = apowerof2 bpowerof2
c = math.sqrt(cpowerof2)
degrees = int(math.degrees(math.atan(a/b)))
print(degrees)
cinput = int(input('Please enter the length of the hypotenuse of the triangle.'))
if c == cinput:
print ('your triangle is a pythagorean triplet')
from turtle import *
drawing_area = Screen()
drawing_area.setup(width=750, height=900)
shape('circle')
left(90)
forward(a * 100)
backward(a*100)
right(90)
forward(b*100)
left(degrees)
forward(c*100)
done()
else:
print ('your triangle is not a pythagorean triplet.')
Любая помощь будет очень признательна!
Комментарии:
1. Пожалуйста, обновите свой вопрос с помощью полной обратной трассировки ошибок.
Ответ №1:
Проблема заключается в имени переменной degrees, она сталкивается с функцией turtle.degrees (). (https://www.geeksforgeeks.org/turtle-degrees-function-in-python/)
Просто измените имя переменной
Кроме того, вот две заметки:
- нет необходимости создавать такое количество переменных для вычисления c. вы можете просто написать
c = math.sqrt(a * a b * b)
left(degrees)
этого недостаточно, вам нужно сделатьleft(180-degrees)
вот код после этих изменений:
import math
from turtle import *
isrightangled = int(input('is your triangle right-angled? enter 1 for no. if it is, press any other number'))
if isrightangled == 1:
print('your triangle is not a pythagorean triplet.')
else:
a = int(input('Please enter the perpendicular height of your triangle.'))
b = int(input('please enter the base length of your triangle.'))
c = math.sqrt(a * a b * b)
degs = int(math.degrees(math.atan(a/b)))
cinput = int(input('Please enter the length of the hypotenuse of the triangle.'))
if c == cinput:
print ('your triangle is a pythagorean triplet')
drawing_area = Screen()
drawing_area.setup(width=750, height=900)
shape('circle')
left(90)
forward(a * 100)
backward(a*100)
right(90)
forward(b*100)
left(180-degs)
forward(c*100)
done()
else:
print ('your triangle is not a pythagorean triplet.')
Комментарии:
1. кстати, о какой
degrees()
функции вы думаете?2. @quamrana черепаха.градусы(), отредактированный ответ
3. Ладно, я понял. Итак, это то
from turtle import *
, что перезаписываетdegrees
имя в публикации из ОП.