Упражнение по json из книги Эрика Мэтиза
Проблема с упр. 10.12 из книги. 10.11 выполнить получилось, но вот в этом задание - объединить две программы из 10.11 в один файл и, если число уже сохранено, то вывести сообщение об этом ("Я помню это число!"). Проблемы с проверкой на сохранение: в файле все сохраняется в одну строчку и никакой проверки не происходит, 5 раз ввел одно и то же число и вот так это выглядит "1""1""1""1""1". Просто дважды выводится просьба ввести число. Никак не пойму, что упускаю
import json
def fav_num_writer():
"""Запрашивает любимое число пользователя"""
fav_num = input('Введите ваше любимое число: ')
filename = 'text_files/fav_num.json'
with open(filename, 'a') as f:
json.dump(fav_num, f)
return fav_num
def fav_num_reader():
filename = 'text_files/fav_num.json'
fav_num = fav_num_writer()
if fav_num in filename:
print(f'Я знаю ваше любимое число! Это {fav_num}')
else:
fav_num_writer()
fav_num_reader()
Ответы (1 шт):
Автор решения: Valera Strike
→ Ссылка
Вот как я это записал, я еще новичек, не судите строго, но зато работает! Первый раз если не был создан файл, то просит ввести число, при повторном выполнении программы выдает сохраненное число.
import json
name = 'kol.json'
def plok():
"""Выводит число пользователя из файла"""
try:
with open (name) as lol:
suk = json.load (lol)
except FileNotFoundError:
print ("К сожалению не обнаружено файла с вашим числом :(")
a = input ("Введите ваше любимое число: ")
with open (name, 'w') as chel:
json.dump (a, chel)
else:
print ("Урааа :-), твое любимое число: " + suk)