Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с кодом

Петя Пипкин Ученик (108), на голосовании 3 дня назад
(ошибка в f.write, но я не могу понять, в чём дело)

path='mozgovnet.txt'
name=input('AI Hitler приветствует вас, как тебя зовут пупсик?')
raz=';'
d={}
f=open(path,'r')



for line in f:
(key,val)=line.split(raz)
d[key]=val
f.close()


for i in d:
print(d[i])



AI=True
while AI==True:
s=input('chto vi hotite')
if s in d.keys():
text=d[s].replace("name",name)
text=d[s].replace("[i]",name)
print(d[s])
elif s=='exit' or s=='выход':
AI=False
print ('прощай пупсик ,я офаюсь')
else:
o=input('ты додик? обьясни по человечески ,а точно ')
d[s]=o
f=open(path,'a')
f.write('\n 's+';'+o)
f.close()
print ('спасибо полуфабрикат кожанный ,я теперь более умный'+s+'')
Голосование за лучший ответ
Давид Лебедев Знаток (418) 1 месяц назад
path = 'mozgovnet.txt'
name = input('AI Hitler приветствует вас, как тебя зовут пупсик?')
raz = ';'
d = {}

# Открываем файл для чтения
with open(path, 'r') as f:
for line in f:
(key, val) = line.strip().split(raz) # Удаляем пробелы и переносы
d[key] = val

# Печатаем значения из словаря
for i in d:
print(d[i])

AI = True
while AI:
s = input('chto vi hotite: ')
if s in d.keys():
text = d[s].replace("name", name)
text = text.replace("[i]", name)
print(text) # Исправлено на text, чтобы выводить измененный текст
elif s == 'exit' or s == 'выход':
AI = False
print('прощай пупсик, я офаюсь')
else:
o = input('ты додик? обьясни по человечески, а точно: ')
d[s] = o
with open(path, 'a') as f:
f.write('\n' + s + ';' + o) # Исправлено объединение строк
print('спасибо полуфабрикат кожанный, я теперь более умный: ' + s)
Петя ПипкинУченик (108) 1 месяц назад
Спасибо, легенда
TheDarkGhostIvan Мудрец (13798) 1 месяц назад
  
path = 'mozgovnet.txt'
name = input('Привет! Как тебя зовут? ')
raz = ';'
d = {}

# Чтение файла
with open(path, 'r', encoding='utf-8') as f:
for line in f:
line = line.strip()
key, val = line.split(raz)
d[key] = val

for i in d:
print(d[i])

AI = True
while AI:
s = input('Что вы хотите? ')
if s in d:
text = d[s].replace("name", name)
text = text.replace("[i]", name)
print(text)
elif s.lower() in ('exit', 'выход'):
AI = False
print('До свидания, я отключаюсь.')
else:
o = input('Объясните по-человечески, а именно: ')
d[s] = o
with open(path, 'a', encoding='utf-8') as f:
f.write(f'\n{s};{o}')
print(f'Спасибо, я теперь умнее по поводу "{s}"!')
Рустам Абдрашитов Мудрец (10467) 1 месяц назад
На
 import json 
import os
import logging
from argparse import ArgumentParser

class AIChatBot:
def __init__(self, data_path='mozgovnet.json'):
self.data_path = data_path
self.data = self.load_data()

def load_data(self):
if not os.path.exists(self.data_path):
return {}
try:
with open(self.data_path, 'r', encoding='utf-8') as file:
return json.load(file)
except (IOError, json.JSONDecodeError) as e:
logging.error(f"Ошибка при загрузке данных: {e}")
return {}

def save_data(self):
try:
with open(self.data_path, 'w', encoding='utf-8') as file:
json.dump(self.data, file, ensure_ascii=False, indent=4)
except IOError as e:
logging.error(f"Ошибка при записи в файл: {e}")

def run(self):
name = input('AI приветствует вас, как вас зовут? ').strip()

while True:
try:
command = input('Что вы хотите? ').lower().strip()
if command in ('exit', 'выход'):
print('Прощай, я отключаюсь.')
break
if response := self.data.get(command):
print(response.replace("name", name))
else:
explanation = input('Не понимаю, объясните подробнее: ').strip()
if explanation:
self.data[command] = explanation
self.save_data()
print(f'Спасибо, теперь я знаю: "{command}" это "{explanation}".')
except Exception as e:
logging.error(f"Произошла ошибка: {e}")
print("Произошла ошибка. Пожалуйста, попробуйте снова.")

def main():
logging.basicConfig(level=logging.INFO)
parser = ArgumentParser(description='AI ChatBot')
parser.add_argument('--data-path', default='mozgovnet.json', help='Путь к файлу данных')
bot = AIChatBot(data_path=parser.parse_args().data_path)
bot.run()

if __name__ == "__main__":
main()
Похожие вопросы