我正在做類的簡單數據庫,我有密碼功能的問題。我無法弄清楚爲什麼它每次都要求設置密碼。我認爲問題在於閱讀是否已經在基礎之內,但我不知道如何解決。Python,數據庫密碼
import shelve
global base,pas
global magazine_base
def load_data():
global base
global magazine_base
magazine_base = shelve.open('magazine_base')
if magazine_base.has_key('base'):
base = magazine_base['base']
if not base:
base = []
else:
base = []
magazine_base['base'] = base
def enterpass():
global base,pas
epas=raw_input("Enter password to acces database")
for entry in base:
while True:
if epas == entry['pas']:
break
else:
print "Password incorrect"
def password():
global base,pas
global magazine_base
load_data()
is_firstopen = True
if 'pas' in base:
is_firstopen = False
enterpass()
if is_firstopen:
while True:
pas=raw_input("This is the first start of database.\nPlease enter the password, min. 5 characters: ")
if len(pas)>5:
break
base += [{'pas':pas}]
magazine_base['base'] = base
magazine_base.close()
print "Password set"
else:
print "Password too short"
我把它簡化爲: 如果「PAS」在基地: enterpass( ) 否則: 打印 「這是數據庫的第一起始\ n請輸入密碼,分5個字符:」 而真: PAS =的raw_input() 如果len(PAS)> 5: 破 基地+ = [{ 'PAS':PAS}] magazine_base [ '基礎'] =鹼 magazine_base.close() 打印 「密碼設定」 否則: 打印 「密碼太短,請再輸入一次」 但仍然相同,可能通過不讀取或保存不正確 – sh4rkyy