Некорректно обрабатываются условия 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("Нет такой валюты в этом калькуляторе")
→ Ссылка