2013-11-20 2 views
3

누군가이 코드를 확인해 주시겠습니까? 대부분은 작동하지만 'admin'을 입력하면 새 비밀번호 '새 비밀번호 입력'을 설정해야하지만 새 비밀번호는 저장하지 않아도됩니다. 아무도 내가 고칠 수 있도록 도와 줄 수 있습니까?프로그램 내에서 변수를 변경하는 방법

program = ("live") 
password = ("Python") 
while program ==("live"): 
    question=input("What is the password? ") 
    if question == password: 
     print ("well done") 
    if question == ("admin"): 
     n_password = input("What is the new password? ") 
     password=n_password 
     question=input("What is the password? ") 
    else: 
     question=input("What is the password? ") 

이 암호 주위 Python 처음을 보장하지만, 그 후에는 새 값을 사용합니다 : 감사

program = ("live") 
while program == ("live"): 
    password = ("Python") 
    question = input("What is the password? ") 
    if question == password: 
     print ("well done") 
    if question == ("admin"): 
     n_password = input("What is the new password? ") 
     password = n_password 
     question = input("What is the password? ") 
    else: 
     question = input("What is the password? ") 
+0

'("라이브")'의 유형은 무엇입니까? – itdxer

+0

참고 사항 : 비밀번호를 평문으로 '저장'하지 마십시오. 사용자가 암호를 설정하면 해당 암호의 해시를 저장하기 만하면됩니다. 다음 번에 '로그인'하면 해시가 동일한 지 확인합니다. – FeinesFabi

+0

@itdxer'basestring' – Fabian

답변

9

당신은 루프에서 첫 password = ... 라인을 이동해야 password. 또한 몇 input() 호출을 제거 할 수 있습니다 :

program = ("live") 
password = ("Python") 
while program ==("live"): 
    question=input("What is the password? ") 
    if question == password: 
     print ("well done") 
    if question == ("admin"): 
     n_password = input("What is the new password? ") 
     password=n_password 
+0

많은 도움을 주셨습니다. –

+0

답변에서 불필요한 괄호를 제거하십시오. – Matthias

2

당신은 당신의 while 루프의 시작 전에 password = ("Python")을 넣어해야합니다.

관련 문제