- 위의 코드를 소스파일에 담아서 실행하면 main함수가 먼저 정의되고, 이어서 main함수의 호출이 진행됨
[7-3. if문 : 조건이 맞으면 실행을 해라.]
- 특정 조건이 True인 경우에만 실행함
If <조건> : <if에 속하는 문장 1> <if에 속하는 문장 2> . . . .
- 화살표는 실행의 흐름을 의미함
- 동그란 조건 : 흐름의 분기(나뉨), 즉 조건이 True이면 사각형 안에 있는 if의 문자들이 실행되고, 조건이 False면 이를 건너뛰게 됨
[7-4. if ~ else문 : 이쪽 길! 아니면 저쪽 길!]
- if ~ else문은 <조건>에 True가 오는 경우에 실행할 코드와 False가 오는 경우에 실행할 코드를 구분해야 할 때 사용하는 문장
if <조건> : <True시 실행할 문장들> else : <False시 실행할 문장들>
[7-5. if ~ elif ~ else문 : 여러 길 중에서 하나의 길만 선택!]
- if ~ else문 : 조건에 따라 둘 중 하나를 선택해서 실행하는 경우
- if ~ elif ~ else문 : 조건에 따라 셋 또는 그 이상 중에서 하나를 선택하여 실행하는 경우
if <조건 1> : <조건 1이 True인 경우 실행할 문장들> elif <조건 2> : <조건 2가 True인 경우 실행할 문장들> else: <모든 조건 False인 경우 실행할 문장들>
[7-6. True 또는 False를 반환하는 연산들]
1) True, False 연산
A > Z : A가 Z보다 크면 True, 크지 않으면 False 반환 A < Z : A가 Z보다 작으면 True, 작지 않으면 False 반환 A >= Z : A가 Z보다 크거나 같으면 True, 그렇지 않으면 False 반환 A <= Z : A가 Z보다 작거나 같으면 True, 그렇지 않으면 False 반환 A == Z : A와 Z가 같으면 True, 같지 않으면 False 반환 A != Z : A와 Z가 같지 않으면 True, 같으면 False 반환
2) and 연산
A and Z : A와 Z가 모두 True이면 True, 그렇지 않으면 False 반환 A or Z : A와 Z 둘 중 하나라도 True이면 True, 그렇지 않으면 False 반환 not A : A가 True이면 False, A가 False이면 True 반환
- True, False : 값, and : 연산자
- True and True : 모두 True를 만족하므로 결과값은 True
- True, False : 값, or : 연산자
- True or False : 둘 중 하나가 True이므로 True (왼쪽에 오든 오른쪽에 오든 상관 없음)
- False or False : 어느 쪽도 True가 없으므로 False
- True, False : 값, not : 연산자
- True가 아니므로 False, False가 아니므로 True
3) and 연산 결과 정리
P1
P1
P1 and p2
True
True
True
True
False
False
False
True
False
False
False
False
4) or 연산 결과 정리
P1
P1
P1 and p2
True
True
True
True
False
True
False
True
True
False
False
False
5) not 연산 결과 정리
P
Not p
True
True
False
False
- 이러한 연사자를 사용하는 방법 : True와 False를 반환하는 연산으로 가져다 놓기
<연습문제 07-1> ▶ 문제 1. 프로그램 사용자로부터 정수를 하나 입력받아서, 그 값에 대해 다음 중 한가지 답변을 하도록 코드를 만들어보자.
입력한 값은 0이거나 0보다 큽니다. 입력한 값은 0보다 작습니다.
▶ 문제 2. num에 저장된 값이 '1보다 크면서 동시에 5보다 작은가?'를 묻는 문장을 만들어서 다음 빈 공간을 채워보자.
>>> num = 3 >>> ___________________________________ True
▶ 문제 3. 다음과 같이 변수를 선언하자.
>>> num = 12
"num에 저장된 값은 3보다 작거나 10보다 큰가?"를 묻는 문장을 만들어보자.
▶ 문제 4. 다음과 같이 변수를 선언하자. >>> num = 4
그리고 다음과 같이 묻는 문장을 만들어보자. "num에 저장된 값은 2의 배수이지만 3의 배수는 아니다. 맞는가?"
▶ 문제 5. 프로그램 사용자로부터 정수를 하나 입력받아서 그 값에 대해 다음 중 한가지 답변을 하도록 코드를 만들어보자. 입력한 값은 0보다 작습니다. 입력한 값은 0 이상 10 미만입니다. 입력한 값은 10 이상 20 미만입니다. 입력한 값은 20 이상입니다.
[7-7. 리스트와 문자열을 대상으로도 동작하는 >=, <=, ==, !=
- A >= Z : A가 Z와 같거나 크니? - A <= Z : A와 Z가 같거나 작으니? - A == Z : A와 Z가 같으니? - A != Z : A와 Z가 다르니?
- == : 두 문자가 같으니? => True
- != : 두 문자가 다르니? => False
[7-8. True 또는 False로 답하는 함수들]
- s.isdigit() : 문자열 s가 숫자로만 이루어져 있으면 True, 아니면 False 반환 - s.isalpha() : 문자열 s가 알파벳으로만 이루어져 있으면 True, 아니면 False 반환 - s.startswith(prefix) : 문자열 s가 prefix로 시작하면 True, 아니면 False 반환 - s.endswith(suffix) : 문자열 s가 suffix로 끝나면 True, 아니면 False 반환
- if s.find(“ghe”) != -1 : s에 “ghe”가 없으면 find 함수는 -1을 반환해라
- 굳이 저 연산자를 안 쓰고, in 함수를 사용해도 됨
- 그냥 문자열이 있는지 없는지만 확인하고 싶다 = in 함수
- 그 문자열의 존재 유무와 함께 위치 정보를 알고 싶다 = find 함수
- e in S : S에 e가 있으면 True, 없으면 False 반환 - e not in S : S에 e 가 없으면 True, 있으면 False 반환
<연습문제 07-2>
▶ 문제1. 다음과 같이 동작하는 코드를 만들어보자. 프로그램 사용자가 정수를 입력하면, 그 수의 거듭제곱의 값을 출력한다. 프로그램 사용자가 정수가 아닌 것을 입력하면 "정수가 아닙니다."를 출력한다. 코드는 다음의 구조로 작성하자. (main 함수를 만들고 이를 호출하는 방식) def main(): main()