파이썬 기초 도움좀요 ㅠㅠ

조회수 1120회

사용자 10명의 아이디가 주어졌고, 이들의 패스워드는 아직 지정되지 않았다. 시스템이 공개되면서 각 사용자는 처음 로긴 시에는 패스워드를 입력하라고 요청을 받게 되며, 두 번재 로긴부터는 등록된 패스워드와 동일한 패스워드를 입력하여 정상적인 로긴을 하도록 지원한다. 이번 문제는 이와 같이 로긴의 성공, 또는 실패의 결과를 출력한다. 프로그램은 무한루프로 계속 아이디와 패스워드를 확인하며, 아이디가 ‘quit’으로 입력되면 종료한다. 이게 과제인데 각아이디마다 비번을 지정해줘야되는데 하나도 감이 안잡혀요 힌트좀 주세요 ㅠㅠ

print("=============================================================")       

login_list = ["민수","영희","철수","감자","수박","사과","호박","문어","강아지","고양이"] 
psw_list = []
민수 = 0
while True:  # 게속 반복시키기위해 true사용
    login = input("Login :") #login 입력받는곳
    if login in login_list: 
        if login == 0:
            check = input(" setting password Enter  :")
            login +=1

        else:
            password = input(" 비밀번호를 입력해주세요.. :")
            if check == password:
                print("로그인에 성공하셨습니다..")
            elif check != password:
                print("로그인에 실패하셨습니다..")
    elif login == "quit":
        break;    #반복문을 종료합니다       
    elif login not in login_list: 
        print("확인불가능한 아이디 입니다")

1 답변

  • 리스트 말고도 딕셔너리라는 자료형이 있습니다. 해쉬테이블이라고도 하는 이 자료형은 key&value형태의 자료형으로, 예를들어 리스트에선 "민수"가 하나의 엘리먼트였다면 딕셔너리에서는 "민수" : "1234" 이렇게 한 쌍이 하나의 엘리먼트가 됩니다. 첫 로그인인지(pws setting) 이미 존재하는 pw를 입력해서 로그인해야 하는지 구분하기 위해서는, 처음에 login_list 를 만들 때 딕셔너리를 이용해서 { "민수" : 0, "영희" : 0, ....} 이런식으로 각 key의 value를 0으로 설정해준 다음에, if login_list["민수"] == 0일때 초기 pw를 입력받으면 됩니다. 참고로 특정 key에 대한 value는 login_list["영희"] 이런 식으로 접근하면 됩니다. 이것저것 설명드리는 것보다 파이썬 딕셔너리를 검색해서 공부하시는게 더 효율적일 수도 있어요! 절대 어려운 개념이 아니니까요

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)