Найти - Пользователи
Полная версия: Программа для сейфа
Начало » Python для новичков » Программа для сейфа
1
Viktoria7
. Напишите программу для сейфа:
1) дверцу сейфа можно открыть только по понедельникам, средам и пятницам с 8 до 17 часов;
2) для идентификации пользователя применяется двухфакторная аутентификация – сначала пользователь вводит логин и пароль, затем программа сравнивает введенные данные с исходными и, если все верно, генерирует четырехзначный код (случайный набор цифр), который пользователь после получения вводит с клавиатуры;
3) после проверки правильности ввода кода дверь сейфа открывается;
4) при ошибке на любом этапе проверки происходит вывод сообщения о блокировке и выход из программы.
py.user.next
Раздели задачу на составляющие части.
Потом возьми одну часть и раздели эту часть на составляющие части.
Потом возьми одну часть части и раздели эту часть части на составляющие части.
Делай так, пока не получится такое разделение на части, что эти части становится возможно выполнить.

Вот мы от всей задачи отделяем одну часть
Viktoria7
1) дверцу сейфа можно открыть только по понедельникам, средам и пятницам с 8 до 17 часов;
Простая ли она?

Если она не простая, надо её снова разделить, уже на части этой части.

Вот мы от этой части отделяем одну часть
Viktoria7
1) дверцу сейфа можно открыть только по понедельникам, средам и пятницам
Простая ли она?

Если она не простая, надо её снова разделить, уже на части этой части.

Вот мы от этой части отделяем одну часть
Viktoria7
1) дверцу сейфа можно открыть только по понедельникам
Простая ли она?

Если она простая, то можно её сделать. Когда она будет сделана, можно будет скопировать это решение на другие части, которые находятся рядом с ней на одном уровне разбиения.


tags: complexity decompose
py.user.next
Viktoria7
1) дверцу сейфа можно открыть только по понедельникам
  
>>> import datetime
>>> 
>>> dt = datetime.datetime.now()
>>> 
>>> day_of_week = dt.isoweekday()
>>> day_of_week
1
>>> 
>>> day_of_week_str = '{:%a}'.format(dt)
>>> day_of_week_str
'Mon'
>>>

  
>>> import datetime
>>> 
>>> def get_week_day():
...     return datetime.datetime.now().isoweekday()
... 
>>> week_day = get_week_day()
>>> 
>>> if week_day == 1:
...     print('Понедельник')
...     print('открыто')
... else:
...     print('закрыто')
... 
Понедельник
открыто
>>>
Viktoria7
import random
import datetime
def get_week_day():
return datetime.datetime.now().isoweekday()
week_day=get_week_day()
d1,3,5)
def hourofday():
return datetime.datetime.now().hour
hour = hourofday()
if week_day==d and hourofday()>=8 and hourofday()<=17:
print('пн, ср, пт')
print('open')
if week_day!=d and hourofday()<=8 and hourofday()>17:
print('вт,чт,сб')
print('close')

a=input('Введите логин:')
b=input('Введите пароль:')
login='12345'
parol='123'
if a=='12345' and b=='123':
print('',())
c=input('Введите код из четырёх цифр:')
print('Вы вошли в систему')
if a!=login and b!=parol:
print(“Неверный логин или пароль”)
print(“Сейф закрыт”)

Здравствуйте. Помогите пожалуйста. код не работает .
. Напишите программу для сейфа:
1) дверцу сейфа можно открыть только по понедельникам, средам и пятницам с 8 до 17 часов;
2) для идентификации пользователя применяется двухфакторная аутентификация – сначала пользователь вводит логин и пароль, затем программа сравнивает введенные данные с исходными и, если все верно, генерирует четырехзначный код (случайный набор цифр), который пользователь после получения вводит с клавиатуры;
3) после проверки правильности ввода кода дверь сейфа открывается;
4) при ошибке на любом этапе проверки происходит вывод сообщения о блокировке и выход из программы.

Онлайн








py.user.next
  
>>> import datetime
>>> import random
>>> 
>>> def get_week_day():
...     return datetime.datetime.now().isoweekday()
... 
>>> def get_hour():
...     return datetime.datetime.now().hour
... 
>>> def get_login():
...     out = ''
...     while out == '':
...         out = input('Enter login: ')
...     return out
... 
>>> def get_password():
...     out = ''
...     while out == '':
...         out = input('Enter password: ')
...     return out
... 
>>> def check_user(login, password):
...     secret_login = 'abc'
...     secret_password = '!@#$%'
...     out = (login == secret_login and
...            password == secret_password)
...     return out
... 
>>> def print_number():
...     number = random.randint(1000, 9999)
...     print('Your number is', number)
...     return number
... 
>>> def get_number():
...     text = ''
...     while text == '' or not text.isdigit():
...         text = input('Enter number: ')
...     out = int(text)
...     return out
... 
>>> def check_number(number, store):
...     return number == store
... 
>>> def grant_access():
...     print('The door is opened.')
... 
>>> def block_access():
...     print('The door is closed.')
... 
>>> def runall():
...     week_day = get_week_day()
...     hour = get_hour()
...     if not (week_day in (1, 3, 5) and 8 <= hour <= 17):
...         block_access()
...         return
...     login = get_login()
...     password = get_password()
...     if not check_user(login, password):
...         block_access()
...         return
...     number_stored = print_number()
...     number = get_number()
...     if not check_number(number, number_stored):
...         block_access()
...         return
...     grant_access()
... 
>>> runall()
Enter login: abc
Enter password: !@#$%
Your number is 8790
Enter number: 8790
The door is opened.
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB