CHAPTER 07 True, False 그리고 if와 그 형제들

유동헌·2021년 9월 4일
0

열혈파이썬_기초편

목록 보기
7/14

01 참과 거짓을 의미하는 값(데이터)

>>> 3 > 10
False
>>>= 3 > 10
>>>False
>>> type()
<class 'bool'>
>>>

int형 데이터

float형 데이터

리스트형 데이터

스트링형 데이터

bool형 데이터

02 소스파일에 main 함수 만들기

연산자의 기능이나 함수 호출의 결과 정도는 프롬프트상에서 확인하는 것이 편리하다. 그러나 코드가 길어지면 이것이 오히려 불편할 수 있다. 그래서 앞으로는 필요에 따라 다음 구조에 코드를 채워 넣는 방식으로 예제를 작성하려고 한다.

def main():
	print("simple frame")

main()

위의 코드를 소스파일에 담아서 실행하면 먼저 main 함수가 정의되고 이어서 그 만들어진 main 함수의 호출까지 진행이 된다.

03 if문 : 조건이 맞으면 실행을 해라.

if = 분기문!, 흐름의 분기. 조건이 True이면 사각형 안에 있는 if에 속하는 문장들이 실행되고, 조건이 false이면 이를 건너뛰게 됨을 위의 순서도에서 보이고 있다.

04 if ~ else 문 : 이쪽 길! 아니면 저쪽 길!

이어서 소개할 if else문은 조건에 True가 오는 경우에 실행할 코드와 False가 오는 경우에 실행할 코드를 구분해야 할 때 사용하는 문장.

05 if ~ else ~ else 문 : 여러 길 중에서 하나의 길만 선택!

06 True 또는 False를 반환하는 연산들

def main():
    num = int(input("숫자를 입력하세요 :  "))
    if num == 1:
        print("1을 입력하였습니다")
    elif num == 2:
        print("2를 입력하였습니다")
    elif num == 3:
        print("3을 입력하였습니다")
    else:
        print("1,2,3이 아닌 다른 숫자가 입력이 되었습니다")

main()
def main():
    num = int(input("입력 :  "))
    if num % 2 == 0:
        if num % 3 == 0:
            print("2, 3인 수")
        else:
            print("NO")
    else:
        print("NO")

main()

A and Z : A와 Z가 모두 True이면 True, 그렇지 않으면 False 반환

A or Z : A와 Z 둘 중 하나라도 True이면 True, 그렇지 않으면 False 반환

not A : A가 True이면 False, A가 False이면 True

def main():
    num = int(input("입력 :  "))
    if (num % 2) == 0 and (num % 3) == 0:
        print("2의 배수이거나 3의 배수이다")
    else:
        print("2, 3이 아니다")
        
main()

연습문제

07 리스트와 문자열을 대상으로도 동작ㅈ하는 ≥, ≤, ==, ≠

>>> "abc" == "abc"
True
>>> "abc" == "abq"
False
>>> [1,2,3] != [1,2]
True

08 True 또는 False로 답하는 함수들

문자열 관련 함수들 추가 소개

>>> "abc" == "abc"
True
>>> "abc" == "abq"
False
>>> [1,2,3] != [1,2]
True
>>> st1 = "123"
>>> st2 = "onetwothree"
>>> st1.isdigit()
True
>>> st2.isdigit()
False
>>> st2.isalpha()
True
>>> str = "supersprint"
>>> str.startswith("super")
True
>>> str.endswich("int")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'endswich'
>>> str.endswich("int")
def main():
    phone_number = input("번호 입력 :  ")
    if phone_number.isdigit() and phone_number.startswith("010"):
        print("정상적인 입력")
    else:
        print("다시 입력")
        
main()

09 in, not in

찾는 내용의 존재 유무만 확인하고자 한다면 in 연산자를 사용하는 것도 좋다. 물론 찾는 내용의 위치 정보가 필요하다면 find 함수를 사용해야 한다. 그런데 문자열만을 대상으로 하는 find 함수와 달리 in 연산자는 다음과 같이 리스트를 대상으로도 사용할 수 있다. 튜플도 가능하다

연습문제

다음과 같이 동작하는 코드를 만들어보자.

프로그램 사용자가 정수를 입력하면 그 수의 거듭제곱 값을 출력한다.

프로그램 사용자가 정수가 아닌 것을 입력하면 정수가 아닙니다를 출력한다

10 수(Number)를 True와 False로 인식하는 방식

profile
지뢰찾기 개발자

0개의 댓글