Найти - Пользователи
Полная версия: Нужно реализовать проверку никнейма
Начало » Python для новичков » Нужно реализовать проверку никнейма
1
Morronel
Привет форумчане! Я начал учить питон пару недель назад, до этого пинал пяткой джаву и паскаль. Уткнулся в нерешаемую проблему при реализации практической задачи.

Дело вот какое - есть программа. Она делает всякую хрень. При каждом исполнении программы она записывает один никнейм, и добавляет его в файл nickbase.txt. Сейчас там уже под 200 никнеймов скопилось, они записаны через одну строчку (\r\n). Теперь надо добавить проверку никнейма. То есть в начале работы программа принимает никнейм с консоли, а потом нужно чтобы она сравнила его со всеми никами в nickbase.txt и если обнаружится совпадение то программа должна это как-то обозначить (это уже легко). Условным оператором я знаю как пользоваться, не могу никак выстроить нужный цикл. Надеюсь что вопрос легкий и кто-то подскажет, заранее спасибо.
Romissevd
for nickname in open('nickbase.txt'):
    if nickname == nickname_console:
        pass # произвести те действия, что нужно
Конец строк и пустые строки уж сами убирайте
doza_and
Morronel
Она делает всякую хрень.
Если это ваша программа делает хрень выкиньте на помойку ‘nickbase.txt’. Замените его пиклом.
import cPickle
import os
# типа чтение базы
if os.path.exists("a.pkl")
    with open("a.pkl","rb") as f:
        a=cPickle.load(f)
else:
    a=set()
....
some_nick="kuku"
if some_nick in a:
    ....
else:
    ....
# типа запись базы после изменений
with open("a.pkl","wb") as f:
    cPickle.dump(a,f)

При этом чтение и запись делаются одной командой (исключая открытие файла). Кросплатформенно. Хранилище приспособлено для проверки наличия ника. Если ников будут миллионы, то будет заметно что этот подход быстрее.

Morronel
не могу никак выстроить нужный цикл
С этим не помогу. Цикл тут вообще не нужен.

p.s.
вообще обычно хранят пары ник - хеш пароля и прочие конфигурационные данные. Код чтения и записи при этом не изменятся.
  a=dict()
  a["вася"]={"passw_hash":123,"cfg":"file1"}
 
Romissevd
doza_and
Я не задавал вопрос, я пытался помочь.
doza_and
Romissevd
Я не задавал вопрос,
Извините поправил.
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