• [파이썬 기초]제어문 - 조건문(if)과 논리연산자(and,or)

    2021. 3. 14.

    by. 웰시코더

    반응형

    -파이썬에서 조건에 따라 명령을 해석하는 조건문에 대해 알아본다.

    -논리연산자 and,or에 대해 알아본다.

    -생활코딩 파이썬 강의를 기반으로 학습 및 보충 학습하였다.

    -파이썬은 3.9.2 ver를 사용한다.


    조건문 사용 방법 및 예제

     조건문이란 조건에 따라 원하는 코드를 수행할 수 있도록 해주는 문법이다. Java 등의 언어에서 그렇듯이 파이썬도 if가 기본적인 조건문 명령어이다. 차이점은 else if인데 else if는 elif라고 표현한다.

     

     예제를 보면 더 쉽게 이해된다. 예제는 아이디가 'kim'이면 Hello Kim을 출력하고 kim이 아니면 Who are you?를 출력하는 간단한 프로그램이다.

     

    우선 입력값을 받는 방법에 대해 먼저 알아야 한다. 다음과 같이 사용한다.

     

    user_id = input('id?')  #실행시 id?라는 질의에 입력하면 user_id에 값이 담김
    user_pwd = input('password?') #실행시 password?라는 질의에 입력하면 user_Pwd에 값이 담김
    

     

     input()을 사용하면 사용자가 입력한 값을 변수에 저장할 수 있다. ()안에 인자로 문자열을 넣으면 안내문자가 출력되고 입력할 수 있다. 위와 같은 경우는 실행하면 id?라는 안내문이 나오고 입력 후 password?라는 안내문이 나온다.

     

     

     저 부분을 먼저 선언하였으면 다음으로 if문을 작성한다. if문은 if, elif, else 3가지 명령어가 있다.

    • if 조건 : 조건이 True이면 if를 실행한다.
    • elif 조건 : 위의 if조건이 False인 경우 다음 elif가 실행되는데, elif의 조건이 True이면 elif가 실행된다.
    • else 조건 : 모든 if, elif 등이 False인 경우 마지막에 else 조건문이 실행된다.
    user_id  = input('id?')  
    user_pwd = input('password?')
    
    if user_id == 'kim' : #입력값이 kim이면 True로 반환되어 if가 실행
    	print('hello kim')
    else #입력값이 kim이 아니면 False가 반환되어 else가 실행
    	print('who are you?')

     

     if문 안에 if문 조건을 또 넣을 수 있으며 다음과 같다. 다음의 예제는 user_id는 kim이고 user_pwd가 1234이면 Hello kim을 출력하고, user_id가 틀리면 check your id를 출력, user_pwd가 틀리면 check your password를 출력한다.

     

    if user_id == 'kim' :
        if user_pwd == '1234' :
            print('Hello kim')
        else :
            print('check your password')
    else :
        print('check your id')

     

    논리연산자(Logical Operator) 사용하기

     if문을 더 유연하게 사용하기 위해 논리 연산자(and,or)를 사용한다. 위의 예제를 살펴보면 user_id가 kim'이고' user_pwd가 1234이면 Hello kim을 출력한다. 반면 user_id가 kim'이고' user_pwd가 1234가 아니면 check your password를 출력한다. 여기서 살펴봐야할 것은 '이고'이다. 영어로는 and인데 실제로 and를 사용하여 if문 안에 if문을 작성할 필요 없이 연결해서 다음과 같이 사용할 수 있다.

     

    if user_id == 'kim' and user_pwd == '1234' : #user_id가 'kim'이고(and) user_pwd가 1234인 경우
        print('Hello kim')
    elif user_id =='park' and user_pwd == '1234' :	#user_id가 'park'이고(and) user_pwd가 1234인 경우
        print('Hello park')
    else :
        print('Who are you?')

     예제를 좀 변형하였다. 위와 같이 조건문1 and 조건문2 방식을 사용하여 조건문1과 조건문2가 모두 True이면 조건문 자체가 True가 되어 if문이 실행된다.  and는 조건문1,2,3..모든 조건문을 만족해야 True가 된다.

     

     반면 and가 아니라 or 조건을 사용할 수도 있다. user_id가 kim'이거나' park이면 hello kim,park이라고 출력하고 그밖에는 who are you를 출력하려면 or을 사용하면 된다. 저기서 '이거나'가 or이다. 다음과 같이 작성할 수 있다.

     

    user_id = input('id?')  #id만 입력받기 위해 user_pwd는 사용 안 함
    
    if user_id =='kim' or user_id =='park' : #user_id가 kim이거나(or) park인 경우
        print('hello kim,park')
    else :
        print('Who are you?')
    

    g위와 같이 or 조건을 사용하며 조건문을 사용할 수 있다. or은 조건문1 or 조건문2에서 1,2중 하나만 만족하면 True를 반환한다. 즉 조건문 안에 여러 조건이 같이 있는 경우, 한 조건만 만족하면 True를 반환한다.

     

    참고로 파이썬에서 boolean의 경우 True,False가 예약어이고 true,false는 사용할 수 없다. 대소문자를 주의하자.

     

     

    반응형

    댓글