2010-03-01 3 views
2

나는 초보자이며, 사용자가 암호를 잘못 입력 한 횟수를 추적하기 위해 암호 추측 프로그램을 수정하는 방법을 알아야합니다. 3 번 이상 입력하면 "This is Completion"이라고 인쇄되고 프로그램을 종료해야합니다. 암호 추측 프로그램은파이썬에서 카운트를 만들어 특정 카운트 횟수 후에 프로그램이 끝나는 방법?

password="abcd" 
while password != "password" 
     password = raw_input("Password:") 
print "Welcome in" 

내가 앞에서 언급 한 바와 같이 하나를 얻기 위해이 프로그램을 수정해야 어떻게? 아무도 나를 안내 할 수 있을까요? 고맙습니다.

답변

0

카운트 변수를 0으로 초기화하고 루프 내에서 증가시킵니다. 그런 다음 while 루프 조건에서 카운트를 사용한 다음 루프 이후에 시도 횟수를 확인하고 메시지를 인쇄 할 수 있습니다. Tendayi Mawushe 제안으로 이전 포스터가 제안 내가 sys 모듈을 사용하여 싫어하기 때문에

+0

감사합니다 귀하의 회신 아칸소 할 수 있었다. 이 비밀번호와 같은 프로그램을 수정 = "ABCD" CURRENT_COUNT = 0 동안 암호 = "비밀번호"! 암호 = raw_input을 ("게스 패스워드") CURRENT_COUNT = CURRENT_COUNT + 1 경우 CURRENT_COUNT> 2 : 프린트 "그것은 복잡 했음에 틀림 없다." 인쇄 "WELCOME IN" 일단 내가 잘못 입력 한 후에 프로그램을 실행하면 "추측 암호?"라는 메시지가 계속 표시됩니다. 일단 올바른 비밀번호를 입력하면 메시지가 "복잡 할 것임에 틀림 없습니다."라는 메시지가 표시되고 "환영"메시지 만 표시됩니다. "암호 추측"을 종료 할 수있는 방법이 있습니까? 3 번 잘못 시도한 후에? – Satish

+0

@Satish. 여기에 힌트가 있습니다 : 코멘트에 코드를 게시하지 마십시오. 질문에 추가하고 싶을 수도 있습니다. –

1
import sys 
counter = 0; 
while counter < 3: 
    counter += 1 
    password = raw_input("Password:") 
    if password == "password": 
     print "Welcome in" 
     break 
else: 
    print "This seems to be complicated" 
    sys.exit(0) 
+0

감사합니다 Tendayi. 그러나 내가 초보자 인 이래로 내가 언급하고있는 책에서 이것은 운동으로 주어진다. 나는 "in for"명령의 무대에 가지 않았다. 그래서 이것을 컴파일하는 "if, while"명령을 사용하여 다른 방법이 있습니까? – Satish

+0

대신 while 루프를 사용하는 대답이 업데이트되었습니다. –

+0

감사합니다 Tendayi. else 부분은 위에 주어진 코드에서 작동하지 않는 것 같습니다. 프로그램은 올바른 암호를 제공 할 때만 종료됩니다. – Satish

4
for trial in range(3): 
    if raw_input('Password:') == 'password': 
     break 
else: 
    # didn't find password after 3 attempts 
    sys.exit(10) 
print 'Welcome in' 
+0

들여 쓰기를 수정해야 할 수도 있습니다. – inspectorG4dget

+0

폴 감사합니다. 정말 유용했습니다. – Satish

+3

@ inspectorG4dget 아니요, 들여 쓰기가 적합합니다. else는 for에 연결됩니다. –

0

이전 가능성의 일부보다 조금 더 간단, 나는 아마이 방법을 선호 할 것입니다. 또한 주목할 점은 이전 프로그램이 올바른 암호를 얻었는지 여부에 대한 환영을 표시합니다. 간단한 if 문으로이 문제를 해결했습니다.

password="abcd" 
trials = 0 
while password != "password": 
     if trials==3: 
       break; 
     else: 
       password = raw_input("Password:") 
       trials+=1 
if password == "password": 
    print "Welcome in" 
0
print("To start program please login") 
Validusername = "Trollman" 
ValidPassword ="1337" 
UserInput=input("Enter Username") 
PassInput=input("Enter Password") 
trials = 0 
while (PassInput != ValidPassword or UserInput != Validusername): 
     if trials==3: 
       break; 
     else: 
       UserInput=input("Login Failed: Re-Enter Username") 
       PassInput=input("Re-Enter Password") 

       trials+=1 
if (PassInput == ValidPassword and Validusername == UserInput): 
    print("welcome " + UserInput) 

덕분에 나는이

관련 문제