Я пробовал все вышеперечисленные ответы, никто не работал для меня. Поэтому перед добавлением нового элемента в список старого общего pref, я сделал следующие шаги
public static void addCalcsToSharedPrefSet(Context ctx,Set<String> favoriteCalcList) {
ctx.getSharedPreferences(FAV_PREFERENCES, 0).edit().clear().commit();
SharedPreferences sharedpreferences = ctx.getSharedPreferences(FAV_PREFERENCES, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putStringSet(FAV_CALC_NAME, favoriteCalcList);
editor.apply(); }
Я столкнулся с проблемой, когда значения не были постоянными, если я снова открываю приложение после очистки приложения из фона, был показан только первый элемент, добавленный в список.
Если вы храните логины и пароли так, как вы это делаете, то один пользователь может использовать пароль другого пользователя и наоборот. Лучше хранить пару логин-пароль вместе:
Файл credentials.json
:
{"Fof": "tog"}
Код:
import json
with open('credentials.json') as f:
credentials = json.load(f)
username = input('Please enter your username: ')
if credentials.get(username):
print('Welcome {}'.format(username))
password = input('Please enter your password: ')
if credentials[username] == password:
print('success!')
else:
print('Username incorrect!')
Давайте попробуем взломать:
[ 112]Успешный вход:
Please enter your username: Fof
Welcome Fof
Please enter your password: tog
success!
Объяснение того, что вам нужно:
Вам нужно искать точное совпадение слова в файле, а не только in
, потому что это всегда будет возвращать True
и, следовательно, он будет обходить:
Пример:
NamesList:
Fof
Abc
Def
и затем:
import re
text = input("enter Name to be searched:")
NamesFile = open("NamesList.txt", "r")
for line in NamesFile:
if re.search(r"\b" + text + r"\b", line):
print(line)
else:
print("Name not found")
break
OUTPUT ]:
enter Name to be searched:Fof
Fof
В другом случае :
enter Name to be searched:f
Name not found