неправильная работа операторов сравнения

только учусь программировать, решил сделать программу в которой пользователь вводит число и она бронирует номер в указанные дни но с понедельника по четверг номер стоит дешевле, ошибка происходит при сравнении, if(day != mon | tue | wed | thu | fri | sat | sun |0): в этой строке, работает только с числом 31, остальные сравнивает неправильно вот код:

def ch():
    mon=31
    tue=1
    wed=2
    thu=3
    fri=4
    sat=5
    sun=6
    sum1=2100
    sum2=2850
    result=0
    day=1
    print("input the day. enter 0 if you want to stop\n")
    while(day != 0):
        day = int(input())
        if(day != mon | tue | wed | thu | fri | sat | sun |0):
            print("wrong day")
        else:
            if(day == mon|tue|wed|thu):
                result = result + sum1
                print(result)
            else:
                if(day !=0):
                    print("it will cost",result)
                else:
                    result = result+ sum2
                    print(result)
ch ()

Ответы (1 шт):

Автор решения: Sergey

Я бы сделал так:

#! /usr/bin/python

# Печать стоимости проживания в зависимости от дня недели

rest_day = 2850 # баксов, к примеру
reg_day = 2100 # В обычные дни - дешевле

# Задаём связь между днём недели и стоимостью

price = {
   "mon" : rest_day,
   "tue" : reg_day,
   "wed" : reg_day,
   "thu" : reg_day,
   "fri" : reg_day,
   "sat" : reg_day,
   "sun" : rest_day,
   "quit": 77
}

# Основной цикл работы программы
while True:
    day = input("Day of week: ") # Ввод названия дня недели
    
    # Пытаемся обработать введённое значение
    try:
       pay = price[day]
       if pay == 77:
           break
       print(pay)
    except:
       print("Error day: ", day)

print("End...")
→ Ссылка