неправильная работа операторов сравнения
только учусь программировать, решил сделать программу в которой пользователь вводит число и она бронирует номер в указанные дни
но с понедельника по четверг номер стоит дешевле, ошибка происходит при сравнении, 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...")