Некорректно обрабатываются условия if-else
Не корректно корректно код: что бы я не писал, у меня все равно умножает на 92.55, а не уводит в else. Помогите, пожалуйста:
from pyfiglet import Figlet
f = Figlet(font='slant')
print(f.renderText('Currency Calculator'))
name = input("Введите название валюты: ")
summa = int(input("Введите количество: "))
if name == "Доллары" or "доллары" or "Доллар" or "доллар":
rezylt = summa * 92.55
print(rezylt, "рубл(ь/я/ей)")
elif name == "Евро" or "евро":
rezylt = summa * 99.35
print(rezylt, "рубл(ь/я/ей)")
elif name == "Юани" or "юани" or "Юань" or "юань":
rezylt = summa * 12.74
print(rezylt, "рубл(ь/я/ей)")
else:
from pyfiglet import Figlet
f = Figlet(font='slant')
print(f.renderText('ERROR'))
print("Нет такой валюты в этом калькуляторе")
Ответы (1 шт):
Автор решения: Amgarak
→ Ссылка
Проблема в вашем условии, or "доллары" - оценивается как True так как строка не пустая и непосредственного сравнения с name вы не делаете.
Нужно писать каждое условие полностью:
if name == "Доллары" or name == "доллары" or name == "Доллар" or name == "доллар":
Или сделать так:
name = input("Введите название валюты: ")
summa = int(input("Введите количество: "))
if name in ["Доллары", "доллары" , "Доллар" , "доллар"]:
rezylt = summa * 92.55
print(rezylt, "рубл(ь/я/ей)")
elif name in ["Евро" ,"евро"]:
rezylt = summa * 99.35
print(rezylt, "рубл(ь/я/ей)")
elif name in ["Юани" , "юани" , "Юань" , "юань"]:
rezylt = summa * 12.74
print(rezylt, "рубл(ь/я/ей)")
else:
print("Нет такой валюты в этом калькуляторе")