чат бот новый сортировка ответа по длине фраз
# Функция для подсчета количества слов и букв в фразе
def count_words_and_letters(phrase):
words = phrase.split()
num_words = len(words)
num_letters = sum(len(word) for word in words)
return num_words, num_letters
# Функция для поиска фразы в файле, наиболее близкой по количеству слов и букв
def find_closest_phrase(input_phrase, filename):
input_words, input_letters = count_words_and_letters(input_phrase)
closest_phrase = None
closest_difference = float('inf')
with open(filename, 'r', encoding='utf-8') as file:
for line in file:
line = line.strip()
words, letters = count_words_and_letters(line)
difference = abs(words - input_words) + abs(letters - input_letters)
if difference < closest_difference:
closest_difference = difference
closest_phrase = line
return closest_phrase
# Функция для сохранения фразы в файл
def save_phrase(phrase, filename):
with open(filename, 'a', encoding='utf-8') as file:
file.write(phrase + '\n')
# Основной цикл ввода фраз
def main():
filename = 'фразы.txt' # один файл для хранения всех фраз
if not os.path.exists(filename):
print(f"Файл {filename} не найден, создается новый файл.")
open(filename, 'w').close() # создаем файл, если он не существует
while True:
input_phrase = input("Вы: ")
closest_phrase = find_closest_phrase(input_phrase, filename)
if closest_phrase:
print(f"бот: {closest_phrase}")
else:
print("Фраза не найдена.")
save_phrase(input_phrase, filename)
if __name__ == "__main__":
main()
**
import os
# Функция для подсчета количества слов и букв в фразе
def count_words_and_letters(phrase):
words = phrase.split()
num_words = len(words)
num_letters = sum(len(word) for word in words)
return num_words, num_letters
# Функция для поиска фразы в файле, наиболее близкой по количеству слов и букв
def find_closest_phrase(input_phrase, filename):
input_words, input_letters = count_words_and_letters(input_phrase)
closest_phrase = None
closest_difference = float('inf')
with open(filename, 'r', encoding='utf-8') as file:
for line in file:
line = line.strip()
words, letters = count_words_and_letters(line)
difference = abs(words - input_words) + abs(letters - input_letters)
if difference < closest_difference:
closest_difference = difference
closest_phrase = line
return closest_phrase
# Функция для сохранения фразы в файл
def save_phrase(phrase, filename):
with open(filename, 'a', encoding='utf-8') as file:
file.write(phrase + '\n')
# Основной цикл ввода фраз
def main():
filename = 'phrases.txt' # один файл для хранения всех фраз
if not os.path.exists(filename):
print(f"Файл {filename} не найден, создается новый файл.")
open(filename, 'w').close() # создаем файл, если он не существует
while True:
input_phrase = input("Введите фразу: ")
closest_phrase = find_closest_phrase(input_phrase, filename)
if closest_phrase:
print(f"Наиболее близкая фраза: {closest_phrase}")
else:
print("Фраза не найдена.")
save_phrase(input_phrase, filename)
print(f"Фраза '{input_phrase}' сохранена в файл {filename}.\n")
if __name__ == "__main__":
main()
**
import os
# Функция для подсчета количества слов и букв в фразе
def count_words_and_letters(phrase):
words = phrase.split()
num_words = len(words)
num_letters = sum(len(word) for word in words)
return num_words, num_letters
# Функция для поиска фразы в файле, наиболее близкой по количеству слов и букв
def find_closest_phrase(input_phrase, filename):
input_words, input_letters = count_words_and_letters(input_phrase)
closest_phrase = None
closest_difference = float('inf')
with open(filename, 'r', encoding='utf-8') as file:
for line in file:
line = line.strip()
words, letters = count_words_and_letters(line)
difference = abs(words - input_words) + abs(letters - input_letters)
if difference < closest_difference:
closest_difference = difference
closest_phrase = line
return closest_phrase
# Функция для сохранения фразы в файл
def save_phrase(phrase, filename):
with open(filename, 'a', encoding='utf-8') as file:
file.write(phrase + '\n')
# Основной цикл ввода фраз
def main():
filename = 'phrases.txt' # один файл для хранения всех фраз
if not os.path.exists(filename):
print(f"Файл {filename} не найден, создается новый файл.")
open(filename, 'w').close() # создаем файл, если он не существует
while True:
input_phrase = input("Введите фразу: ")
closest_phrase = find_closest_phrase(input_phrase, filename)
if closest_phrase:
print(f"Наиболее близкая фраза: {closest_phrase}")
else:
print("Фраза не найдена.")
save_phrase(input_phrase, filename)
print(f"Фраза '{input_phrase}' сохранена в файл {filename}.\n")
if __name__ == "__main__":
main()
Свидетельство о публикации №124080903963