
Python!!! помогите решить так сказать ошибку в коде, если вставить это то получится что он не
реагирует на выбор (Треугольник и Четырехугольник), не смотря на то что ввожу при выборе (Треугольник), он приводит формулы из (Ромба) import math nach = str(input("Введите название фигуры для вычисления площади\nТреугольник\nРомб\nЧетырехугольник\nВведите название фигуры: ")) #Ромб if nach == "Ромб" or "ромб" or "2": print("1. S = a^2 * sin(a)\n2. S = a * h\n3. S = (d1 * d2) / 2") tip1 = str(input("Выберите формулу: ")) if tip1 == "1": a = float(input("Введите значение а: ")) a1 = float(input("Введите сколько градусов угол а: ")) a2 = round(math.radians(a1), 5) otvet = a**2 * math.sin(a2) print("S=", round(otvet, 3) ,"см\м^2") if tip1 == "2": a = float(input("Введите значение а: ")) h = float(input("Введите значение h: ")) print("S=", a * h , "см\м^2") if tip1 == "3": d1 = float(input("Введите первую диагональ(d1): ")) d2 = float(input("Введите вторую диагональ(d2): ")) print("S=", (d1 * d2) / 2 , "см\м^2") # Треугольник if nach == "Треугольник" or "треугольник" or "1": print("1. 1/2 *a*b* sin(a)\n2. 1/2 *a*h\n3. (a*b*c)/4*R\n4. R*(a+b+c)/2\n5. корень p*(p-a)(p-b)(p-c)\n6. 1/2 *a*b") tip2 = str(input("Выберите формулу: "))

Ответы на вопрос

Ответ:
import math
while True:
nach = input("Введите название фигуры для вычисления площади\nТреугольник\nРомб\nЧетырехугольник\nВведите название фигуры: ").lower ()
try:
#Ромб
if "ромб" in nach:
print ("Формулы ромба:\n")
print("1. S = a^2 * sin(a)\n2. S = a * h\n3. S = (d1 * d2) / 2")
tip = str(input("Выберите формулу: "))
if tip == "1":
a = float(input("\nВведите значение а: "))
a1 = float(input("Введите сколько градусов угол а: "))
print("угол а в радианах =", round(math.radians(a1), 1))
a1 = float(input("Введите сколько в радианах угол а: "))
otvet = a**2 * math.sin(a1)
print("S=", math.ceil(otvet), "см\м^2")
if tip == "2":
a = float(input("Введите значение а: "))
h = float(input("Введите значение h: "))
print("S=", a * h , "см\м^2")
if tip == "3":
d1 = float(input("Введите первую диагональ(d1): "))
d2 = float(input("Введите вторую диагональ(d2): "))
print("S=", (d1 * d2) / 2 , "см\м^2")
else:
throw ()
# Треугольник
elif "треугольник" in nach:
print ("Формулы треугольника:\n")
print("1. 1/2 a*b sin(a)\n2. 1/2 a*h\n3. (a*b*c)/4*R\n4. R(a+b+c)/2\n5. корень p*(p-a)(p-b)(p-c)\n6. 1/2 *a*b")
tip = str(input("Выберите формулу: "))
#Логика треугольника
#Четырехугольник
elif "четырехугольник" in nach:
print ("Формулы четырехугольника:\n")
#Логика четырехугольника
else:
throw ()
except:
print ("\n Введено неверное значение!!! \n")
#Выйти если надо
if (input ("Введите 'q' если хотите выйти: ") == 'q'):
break
Объяснение:
Лови брат



Проблема в вашем коде связана с условиями в операторах if
для выбора фигуры (Ромба или Треугольника). У вас ошибка в логике условий. В Python условие or
не работает так, как вы, возможно, ожидаете. Каждое условие должно быть выражено полностью, и проверка должна быть выполнена для каждого значения переменной nach
.
Используйте следующий код:
pythonimport math
nach = str(input("Введите название фигуры для вычисления площади\nТреугольник\nРомб\nЧетырехугольник\nВведите название фигуры: "))
# Ромб
if nach.lower() == "ромб" or nach == "2":
print("1. S = a^2 * sin(a)\n2. S = a * h\n3. S = (d1 * d2) / 2")
tip1 = str(input("Выберите формулу: "))
if tip1 == "1":
a = float(input("Введите значение а: "))
a1 = float(input("Введите сколько градусов угол а: "))
a2 = round(math.radians(a1), 5)
otvet = a**2 * math.sin(a2)
print("S=", round(otvet, 3), "см\м^2")
elif tip1 == "2":
a = float(input("Введите значение а: "))
h = float(input("Введите значение h: "))
print("S=", a * h, "см\м^2")
elif tip1 == "3":
d1 = float(input("Введите первую диагональ(d1): "))
d2 = float(input("Введите вторую диагональ(d2): "))
print("S=", (d1 * d2) / 2, "см\м^2")
# Треугольник
elif nach.lower() == "треугольник" or nach == "1":
print("1. 1/2 *a*b* sin(a)\n2. 1/2 *a*h\n3. (a*b*c)/4*R\n4. R*(a+b+c)/2\n5. корень p*(p-a)(p-b)(p-c)\n6. 1/2 *a*b")
tip2 = str(input("Выберите формулу: "))
# Ваш код для треугольника
# ...
else:
print("Некорректный выбор фигуры")
Обратите внимание, что я использовал .lower()
для преобразования ввода пользователя в нижний регистр, чтобы обеспечить корректное сравнение. Также, я исправил логику условий для проверки ввода пользователя.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili