@destinyheart
Начинающий программист.

Как исправить косяк в Python скрипте?

Вообщем, переменной figure нужно задать string значение через input, а потом, условным оператором проверить далось ли оно, почему переменной не присваивается значение? Код внизу. P.s Выдает случай else

figure = str(input("Площадь какой фигуры нужно рассчитать? Треугольник - triangle. Квадрат - square. Прямоугольник - rectangle ."))
if figure == "triangle":
    def trifunc(width, height):
        width=int(input("Введи ширину треугольника!"))
        height=int(input("Введи высоту треугольника!"))
        return width * height
    trifunc()
else:
    print("Что-то пошло не так. В оригинале скрипта тут я был более эмоционален.")
  • Вопрос задан
  • 192 просмотра
Решения вопроса 1
AlexSetup
@AlexSetup
Python
def trifunc(width, height):
    a=width*height/2
    return a
figure = input("Площадь какой фигуры нужно рассчитать? Треугольник - triangle. Квадрат - square. Прямоугольник - rectangle .\n")
if figure == "triangle":
    width=int(input("Введи ширину треугольника!\n"))
    height=int(input("Введи высоту треугольника!\n"))
    print(trifunc(width,height))
else:
    print("Что-то пошло не так. В оригинале скрипта тут я был более эмоционален.\n")

P.S. Да и формула площади треугольника s=1/2*a*h
Ваша ошибка:
1. Вы написали "криво" код
2. Вы не отправляете функции значения width и height
3. Что то у Вас с отступами не так
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@artem78
Возможно опечатались при вводе? У меня ваш код при вводе triangle переходит на нужную ветку.

Дальше проблема в том, что у вас при вызове trifunc() не переданы обязательные аргументы width и height. Вы уж определитесь с чем-то одним: либо вы их передаёте в функцию, либо запрашиваете внутри неё с помощью input().

Ксати, зачем вы поместили определение функции в блок if и там же её вызываете единственный раз?

И напоследок совет - пользуйтесь тегом code.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы