Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 11, 2024 21:45:29

Viktoria7
Зарегистрирован: 2024-08-11
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Программа для сейфа

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

Офлайн

#2 Авг. 12, 2024 02:50:51

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9796
Репутация: +  849  -
Профиль   Отправить e-mail  

Программа для сейфа

Раздели задачу на составляющие части.
Потом возьми одну часть и раздели эту часть на составляющие части.
Потом возьми одну часть части и раздели эту часть части на составляющие части.
Делай так, пока не получится такое разделение на части, что эти части становится возможно выполнить.

Вот мы от всей задачи отделяем одну часть

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

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

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

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

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

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


tags: complexity decompose



Отредактировано py.user.next (Авг. 12, 2024 03:06:16)

Офлайн

#3 Авг. 12, 2024 02:56:35

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9796
Репутация: +  849  -
Профиль   Отправить e-mail  

Программа для сейфа

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('закрыто')
... 
Понедельник
открыто
>>>



Отредактировано py.user.next (Авг. 12, 2024 03:02:09)

Офлайн

#4 Авг. 22, 2024 22:11:23

Viktoria7
Зарегистрирован: 2024-08-11
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Программа для сейфа

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) при ошибке на любом этапе проверки происходит вывод сообщения о блокировке и выход из программы.

Онлайн








Офлайн

#5 Авг. 23, 2024 01:01:29

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9796
Репутация: +  849  -
Профиль   Отправить e-mail  

Программа для сейфа

  
>>> 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.
>>>



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version