This commit is contained in:
vitaliy 2025-10-09 11:27:29 +03:00
parent f238c8e59f
commit 56394b7aec
10 changed files with 203 additions and 36 deletions

4
.gitignore vendored
View File

@ -159,8 +159,6 @@ cython_debug/
# and can be added to the global gitignore or merged into this file. For a more nuclear # and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder. # option (not recommended) you can uncomment the following to ignore the entire idea folder.
.idea/ .idea/
dict.py tmp/
repo.py repo.py
remark.py
guess_.py

View File

@ -1,33 +0,0 @@
import itertools
def all_combinations(alphabet, max_length):
"""Генерирует все комбинации длиной от 1 до max_length"""
all_combos = []
for length in range(1, max_length + 1):
combos = itertools.product(alphabet, repeat=length)
all_combos.extend([''.join(combo) for combo in combos])
return all_combos
russian_lower = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя'
def vectorize(word, combinations):
vector = []
if len(word) == 1:
return None
last = None
for curr in word:
if not last:
last = curr
continue
pair = last + curr
indx = combinations.index(pair)
vector.append(indx)
return vector
word = 'маме'
combinations = all_combinations(russian_lower, 2)
result = vectorize(word, combinations)
print("Все комбинации длиной 1-2:")
print(combinations)
print("Вектор:", result)

2
lesson_5/code/db.py Normal file
View File

@ -0,0 +1,2 @@
DICT_DEFENITION_WORD = {'инкапсуляция': 'сокрытие реализации',
'полиморфизм': 'изменение поведение при наследовании' }

102
lesson_5/code/ya_kube.py Normal file
View File

@ -0,0 +1,102 @@
import random
import uuid
import datetime
from lesson_5.code.db import DICT_DEFENITION_WORD
name = input("Введите имя:")
def print_menu():
print("""
1. Начать игру
2. Сохранить игру
3. Загрузить игру
4. Выход из игры
5. Настройки
""")
print_menu()
num = int(input("Пункт меню:"))
def generate_key() -> str:
keys = list(DICT_DEFENITION_WORD.keys())
random.shuffle(keys)
return keys.pop()
def save_game(id_session, word, mask):
# dt, id_session, name, word, mask
f = open("save_game.csv", "at")
dt = datetime.datetime.now()
mask = "".join(mask)
str = f"{dt}|{id_session}|{name}|{word}|{mask}"
f.write(str)
f.close()
print("Сохранил игру!")
def load_game():
f = open("save_game.csv", "tr")
indx = 0
list_str= f.readlines()
for csv_str in list_str:
if name in csv_str:
print(indx, ") ", csv_str)
indx += 1
indx_load = int(input("Введите номер:"))
sg = list_str[indx_load].split("|")
key = sg[3]
mask = sg[4]
session_uuid = sg[1]
print(session_uuid,key, list(mask))
start_game(session_uuid,key.strip(), list(mask))
exit(0)
def start_game(session_uuid, key, mask ):
print(DICT_DEFENITION_WORD[key])
print(mask)
while '#' in mask:
alfa = input("Введите букву:")
if alfa == "2":
print("Сохранение игры!")
save_game(session_uuid, key, mask)
cnt = 0
for i in list_word:
if alfa == i:
mask[cnt] = alfa
cnt += 1
continue
cnt += 1
else:
print(mask)
match num:
case 1:
key = generate_key()
list_word = list(key)
mask = ['#'] * len(key)
session_uuid = uuid.uuid4()
start_game(session_uuid,key,mask)
# print('The UUID is: ' + str(session_uuid))
case 2:
pass
case 3:
load_game()
case 4:
print(f"Спасибо {name} за игру! Заходи еще! ")
pass

View File

@ -0,0 +1,13 @@
#todo: Требуется создать csv-файл «algoritm.csv» со следующими столбцами:
# id) - номер по порядку (от 1 до 10);
# значение из списка algoritm
algoritm = [ "C4.5" , "k - means" , "Метод опорных векторов" ,
"Apriori", "EM", "PageRank" , "AdaBoost", "kNN" ,
"Наивный байесовский классификатор", "CART" ]
# Каждое значение из списка должно находится на отдельной строке.
# Пример файла algoritm.csv:
1) "C4.5"
2) "k - means"
.....

View File

@ -0,0 +1,14 @@
#todo: Выведите все строки данного файла в обратном порядке, допишите их в этот же файл.
# Для этого считайте список всех строк при помощи метода readlines().
#Содержимое файла inverted_sort.txt
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
# Результат
Complex is better than complicated.
Simple is better than complex.
Explicit is better than implicit.
Beautiful is better than ugly.

View File

@ -0,0 +1,58 @@
#todo: Задан шаблон config_default.txt, где каждому в текстовом файле параметру
# нужно сопоставить данные для подстановки.
# Содержимое файла config_default.txt
# Конфигурация приложения.
app_name = ?
version = ?
debug = ?
# Настройки базы данных
db_host = ?
db_port = ?
db_name = ?
db_user = ?
db_password = ?
# Настройки API
api_key = ?
api_secret = ?
base_url = ?
# Пути
log_file = ?
data_dir = ?
temp_dir = ?
# Данные для подстановки
config_values = {
'app_name': 'NextGen',
'version': '1.0.0',
'debug': True,
'db_host': 'localhost',
'db_port': 5432,
'db_name': 'my_database',
'db_user': 'admin',
'db_password': 'secret123',
'api_key': 'ak_123456789',
'api_secret': 'sk_987654321',
'base_url': 'https://api.example.com',
'log_file': '/var/log/app.log',
'data_dir': '/opt/app/data',
'temp_dir': '/tmp/app',
'max_workers': 10,
'timeout': 30,
'retry_attempts': 3
}
# В итоге вместо "?" должны подставиться значения и получиться файл config.txt:
# Конфигурация приложения
app_name = "NextGen"
version = '1.0.0'
debug = True
# Настройки базы данных
db_host = 5432
.....

View File

@ -0,0 +1,8 @@
#todo: Модифицировать программу таким образом чтобы она выводила
# приветствие "Hello", которое только что записали в файл text.txt
f = open("text.txt", "w+t")
f.write("Hello\n")
# Ваше решение.
f.close()

View File

@ -0,0 +1,5 @@
# todo: Исправить ошибку в коде игры ../code/ya_kube.py
from lesson_5.code import ya_kube

Binary file not shown.