Найти - Пользователи
Полная версия: Что за ошибка?????
Начало » Python для новичков » Что за ошибка?????
1
ELVYY
Я не могу понять что тут за ошибка. Должна проходить проверка ести ли человек в словаре или нету. Если есть - вывести на экран, нету - написать, что нету.
Сам словарь:
Влад:+35455345
Лео:53455345

 class notebook(object):
	def __init__(self):
		self.base = {}
	#Поиск человека
	def find(self, result):
		with open('D:/python/bd.txt', 'r', encoding = 'utf-8') as file:
			self.base = {file.read()}
			try:
				print (self.base[result])
			except KeyError:
				print('Человека {} не существует'.format(self.result))
	#Запись человека
	#def getting(self, name):
p = notebook()
p.find('Влад')
FishHook
ELVYY
self.base = {file.read()}
Ну и что вы вот этим хотите получить? Если словарь, то нет, словарь вы так не получите.
marvellik
опять те же грабли с словарем
да брось эту затею тут спокойно можно списком обойтись и даже лучше потому что в списке может быть несколько человек с одинаковыми именами но разными данными а вот словарь такой вольности не позволит
ELVYY
Да я просто для себя разбираюсь. Уже все исправил.
 class notebook(object):
	def __init__(self, result, info):
		self.result = result
		self.info = info
		with open('D:/python/bd.txt', 'a', encoding = 'utf-8') as file:
			file.write('{}:{}\n'.format(self.result, self.info))
			print('Запись успешно завершена')
p = notebook('Влад', 'Ааав')
old_monty
ELVYY
Начинайте пока с более простых вещей. Попробуйте для начала сделать без словаря и даже без списка. Также для простоты пусть в вашем файле bd.txt с именами людей каждое имя будет уникальное (единственное). Тогда достаточно сделать простой поиск в строке:
 class notebook(object):
     def __init__(self):
         self.people = '' # сюда будем считывать файл bd.txt с именами людей
     def find(self, person):
         with open('bd.txt', 'r', encoding = 'utf-8') as f:
             self.people = f.read()
         if person in self.people:
             print('Да, {} есть в базе данных'.format(person))
         else:
             print('Нет, {} отсутствует в базе данных'.format(person))
 
p = notebook()
p.find('Влад')
# выведет "Да, Влад есть в базе данных"
p.find('Лео')
# выведет "Да, Лео есть в базе данных"
p.find('Обама')
# выведет "Нет, Обама отсутствует в базе данных"
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB