로그인 성공? - Python

2023. 9. 30. 19:21공부/📝 프로그래머스

def solution(id_pw, db):
    for item in db:
        if item[0] == id_pw[0]:
            if item[1] == id_pw[1]:
                return "login"
            else:
                return "wrong pw"
    return "fail"


# Test Cases
print(solution(["meosseugi", "1234"], [["rardss", "123"],
      ["yyoom", "1234"], ["meosseugi", "1234"]]))
print("="*50)
print(solution(["programmer01", "15789"], [["programmer02", "111111"], [
      "programmer00", "134"], ["programmer01", "1145"]]))
print("="*50)
print(solution(["rabbit04", "98761"], [["jaja11", "98761"],
      ["krong0313", "29440"], ["rabbit00", "111333"]]))
print("="*50)

  위와 같이 풀었습니다.

 


def solution(id_pw, db):
    if db_pw := dict(db).get(id_pw[0]):
        return "login" if db_pw == id_pw[1] else "wrong pw"
    return "fail"

  := 연산자는 처음 봅니다. 공부할거리가 늘었네요.

 

  아래는 := 연산자에 대해 ChatGPT에게 물어본 답변입니다.

이 코드에서 ":=" 연산자는 Python 3.8 이상에서 도입된 "walrus 연산자"라고 불리는 표현입니다. 이 연산자는 대입과 동시에 값을 반환하는 데 사용됩니다.

여기서 db_pw := dict(db).get(id_pw[0])라는 줄을 살펴보면, 다음과 같은 작업을 수행합니다:

dict(db)는 db라는 변수를 사전(dictionary)으로 변환합니다. 이 작업은 db가 이전에 다른 데이터 형식이었을 경우를 대비한 것으로 보입니다.
.get(id_pw[0])는 변환된 사전에서 id_pw[0]에 해당하는 키(key)를 검색하고, 해당하는 값을 반환합니다.
:= 연산자는 이 값을 db_pw에 할당하면서 동시에 이 값을 반환합니다.
이러한 방식으로 db_pw 변수에 id_pw[0]에 해당하는 값이 할당되고, 동시에 이 값을 조건식에서 사용할 수 있도록 반환됩니다. 코드에서 if db_pw := dict(db).get(id_pw[0])라는 조건식은 db라는 사전에서 id_pw[0]에 해당하는 값이 있는지 확인하고, 있으면 db_pw 변수에 할당합니다. 이렇게 할당된 db_pw 변수는 조건식 내에서 사용되어 로그인 여부를 확인하는 데 활용됩니다.

요약하면, := 연산자는 변수에 값을 할당하면서 동시에 그 값을 반환하는 역할을 합니다. 이것은 특히 조건문에서 변수를 선언하고 값을 할당하고자 할 때 유용합니다.

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

'공부 > 📝 프로그래머스' 카테고리의 다른 글

치킨 쿠폰 - Python  (0) 2023.09.30
등수 매기기 - Python  (0) 2023.09.30
캐릭터의 좌표 - Python  (0) 2023.09.30
외계어 사전 - Python  (0) 2023.09.30
문자열 계산하기 - Python  (0) 2023.09.30