Вопрос Подскажите пожалуйста что не так в коде на python

Регистрация
9 Дек 2013
Сообщения
82
Репутация
0
Спасибо
0
Монет
0
import math



x = (float(0.5))



bal = (float(0.0))







a = input("ты готов?:")

if a == (str("нет")) or (str("Нет")):

print("не боись, всё будет хорошо")

print("надо будет отвечать только один, два, восемь, пять, и т.д.")

elif a == (str("Да")) or (str("да")):

print("отлично! погнали!")

print("надо будет отвечать только один, два, восемь, пять и т.д.")

else:

print("отвечай да или нет")

o1 = input("сколько ноздрей у носорога?:")

if o1 == "две" or "Две":

print("отлично!")

print("один балл к вам в копилку!")

balli = bal + x

else:

print("хорошо")

print("но балл не идёт к вам в копилку")



o2 = input("V в периодической таблице(менделеева) это: \n 1)Ванадий \n 2)Вольфрам \n ответ:")



if o2 == "один" or "Один":

print("отлично!")

print("добавляем балл вам в копилочку")

balli = balli + x

elif o2 == "два" or "Два":

print("ну вы почти молодец")

print("главное не расстраивайтесь")

else:

print("эээ брат давай без этого")

print("ну молодец блин взял сломал всё к хренам")

print("давай теперь заново всё")

print("давай проверим сколько у тебя баллов")

if balli == "0.0":

print("спешу тебя расстроить")

print("вы набрали слишком мало баллов и признанны отсталым")

print("BAD END")

print("нам придётся вас утилизировать")

print("BAD END")

elif(balli == "0.5"):

print("вы набрали почти удовлетворительное количество баллов")

print("вы будете направленны на исправительные работы")

print("по истичению срока вы будете направленны на это задание заново, но прежде мы обработаем вас амнезиаком")

print("NEUTRAL END")

else:

print("вы более чем удовлетворительно прошли этот тест")

print("вы будете перенаправленны в комплекс к таким же людям как вы")

print("удачи")

print("GOOD END")

k = input()



чты бы я не писал когда проверял программу, получается один и тот же результат
 
Невозможно сказать по коду без отступов. Под текстом вопроса есть специальная кнопка для вставки кода - используй ее.
 
Проблема в том, что условия if и elif неправильно написаны. Например, в строке if a == (str("нет")) or (str("Нет")): условие всегда будет истинным, потому что (str("Нет")) всегда возвращает True. Вместо этого, условие должно быть написано как if a == "нет" or a == "Нет":. Такая же проблема есть и в других условиях if и elif. Попробуйте исправить эти ошибки и запустить программу снова.
 
Во-первых, зачем в str("Да") и str("Нет") приводить строки к строке? "Да" и "Нет" будет достаточно.
Во-вторых, a == str("Да") or str("да") замени на a in ("Да", "да"). По аналогии переделай все условия.
В-третьих, используй метод lower() у строк. Он переводит все буквы в строке в нижний регистр. Пример использования lower() a = input()
print(a.lower())

#Ввод: Да, Вывод: да
#Ввод: да, Вывод: да
#Ввод: ДА, Вывод: да
 
Назад
Сверху