개발자 하고 싶다!!!

7. 논리 연산자

1_Python2018. 11. 11. 16:46

1. 공부한 내용

 1) 반복되는 조건문을 좀 더 간결하게 정리할 수 있는 논리 연산자에 대한 이해 (or, and, not)

 2) or 논리 연산자를 통해 각각의 다른 유저 정보 확인하는 어플 작성

 3) and 논리 연산자를 통해 같은 유저의 아이디 비밀번호 정보 확인하는 어플 작성


2. 실습 내용 

 입력 코드

결과 

 설명

in_str=input("아이디를 입력해주세요. \n")

real_har="har"

real_space="space"

if real_har == in_str or real_space == in_str:

    print("Hello!, "+in_str)

else:

    print("Who are you?")

아이디를 입력해주세요

(입력) har

(출력) Hello!, har

아이디를 입력해주세요

(입력) space

(출력) Hello!, space

아이디를 입력해주세요

(입력) asdjsald
(출력) Who are you?

조건문에서 2개의 조건 중 하나가 True일 때,

같은 출력값을 나오게 하더라도 if, elif, else를 사용해야 하지만,

논리 연산자 OR를 통해 elif 부분을 생략,

if 조건문에 2개 이상의 조건 중 1개만 True 일 때의 출력값을

나오게 할 수 있음

(즉, OR를 사용하면 조건은 2가지, 출력은 1가지)

input_id=input("아이디를 입력해주세요. \n")

input_pwd=input("비밀번호를 입력해주세요. \n")

real_id="har"

real_pwd="11"

if real_id == input_id and real_pwd == input_pwd:

    print("Hello!")

else:

    print("로그인에 실패했습니다.")

1. 정상 로그인

아이디를 입력해주세요.

(입력) har

비밀번호를 입력해주세요.

(입력) 11

(출력) Hello!


2. 아이디 혹은 비밀번호가 잘못된 경우

아이디를 입력해주세요.

(입력) asdsads

비밀번호를 입력해주세요.

(입력) 11

(출력) 로그인에 실패했습니다.


아이디를 입력해주세요.

(입력) har

비밀번호를 입력해주세요.

(입력) asdasd

(출력) 로그인에 실패했습니다.

조건문에서 2개의 조건을 둘 다 True일 때,

보통 조건문으로는 하나의 if문 안에 또 다른 if문이 필요하지만,

논리 연산자 AND를 통해 2개인 if문을 1개로 생략하여

조건문 전체를 짧게 만들 수 있음


단, 출력값은 1개이기 때문에 로그인 어플의 경우,

아이디, 비밀번호 둘 중 어떤 것이 잘못됐는지는 알 수 없음


if문을 2개로 설정할 경우, 각각의 출력값을 설정 가능


input_id=input("아이디를 입력해주세요. \n")

input_pwd=input("비밀번호를 입력해주세요. \n")

real_id="har"

real_pwd="11"

if real_id == input_id:

    if real_pwd == input_pwd:

        print("Hello!")

    else:

        print("잘못된 비밀번호입니다.")

else:

    print("잘못된 아이디입니다.")


3. 의미/중요한 부분

 1) AND 연산자는 2개의 조건이 모두 다 True일 때, True의 결과를 출력

 2) OR 연산자는 2개의 조건 중 1개만 True일 때, True의 결과를 출력

 3)논리 연산자를 통해 if문을 줄이는 것은 가능하나, 결과는 1개 밖에 출력하지 못함 

   즉, 다른 2개 이상의 조건을 통해 같은 1개의 결과를 출력하게 할 때 유용할 듯? 


4. 궁금점/감상

 1) NOT 논리 연산자의 역할은 무엇인지 따로 공부할 필요가 있을 듯

 2) 로그인 어플리케이션과 같이, 입력값(유저)은 다르나 동일 결과(로그인)를 위한 코딩을 할 때 유용할 듯 

'1_Python' 카테고리의 다른 글

9. 컨테이너 (Container)  (0) 2018.12.15
8. 주석  (0) 2018.11.17
6. 입력과 출력  (0) 2018.11.11
5. 조건문  (0) 2018.10.14
4. 비교와 Boolean (블리언)  (0) 2018.10.14