728x90
반응형
SMALL
1. 제어문 이란 ❓
- 프로그램의 흐름을 제어하는 문장
- 프로그램의 흐름을 효율적으로 이용하기 위해 사용
- 조건문 : if문
- 반복문: while문, for문
2. 조건문
2-1. 비교 연산자
- 참인지 거짓인지 판단하기 위해 사용되며 참일 경우 True, 거짓일 경우 False 반환한다.
비교연산자 | 설명 |
x > y | x 는 y 보다 크다 |
x >= y | x 는 y 보다 크거나 같다 |
x < y | x 는 y 보다 작다 |
x <= y | x 는 y 보다 작거나 같다 |
x == y | x 는 y랑 같다 |
x != y | x 는 y랑 같지 않다 |
print(10 > 5)
>>> True
print(10 < 5)
>>> False
print(10 >= 5)
>>> True
print(10 <= 5)
>>> False
print(10 == 5)
>>> False
print(10 != 5 )
>>> True
2-2. if 문
- if 문의 형식
if 조건식(결과가 True 또는 False로 반환하는 문장):
조건식이 True인 경우 실행할 문장
...
bool1 = True
if bool1:
print('결과는 참 입니다')
print('프로그램을 종료합니다')
>>> 결과는 참 입니다
프로그램을 종료합니다
- if 문 + False가 반환될 때 문장일 경우 True일 때 실행되는 문장을 건너 뛴다.
bool2 = False
if bool2: # False
print('결과는 참 입니다')
print('프로그램을 종료합니다')
- 나이를 입력받아 성인인지를 판별하는 코드를 만들어보자.
age = int(input('나이를 입력하세요: '))
if age > 19:
print('성인입니다')
print('넷플릭스 성인영화를 감상할 수 있습니다')
print('입력한나이: ', age)
>>> 나이를 입력하세요: 20
성인입니다
넷플릭스 성인영화를 감상할 수 있습니다
입력한나이: 20
- 세미콜론 옆에 실행할 문장을 작성할 수 있다. 하나의 문장만 실행한다.
- tab으로 들여쓰면 여러문장을 if 구문안에서 같이 처리할 수 있다.
age = int(input('나이를 입력하세요: '))
if age > 19: print('성인입니다')
print('입력한나이: ', age)
>>>나이를 입력하세요: 10
입력한나이: 10
2-3. if ~ else 문
if 조건식(결과가 True 또는 False로 반환하는 문장):
조건식이 True인 경우 실행할 문장
...
else:
조건식이 False인 경우 실행할 문장
...
- 나이를 입력받아 성인이면 넷플릭스 영화감상을, 성인이 아니면 디즈니를 보라는 문구가 나오는 프로그램을 작성하여보자.
age = int(input('나이를 입력하세요: '))
if age > 19:
print('성인입니다')
print('넷플릭스 성인영화를 감상할 수 있습니다')
else:
print('성인이 아닙니다')
print('디즈니를 보세요')
print('입력한나이: ', age)
>>> 나이를 입력하세요: 5
성인이 아닙니다
디즈니를 보세요
입력한나이: 5
age = int(input('나이를 입력하세요: '))
if age > 19:
print('성인입니다')
print('넷플릭스 성인영화를 감상할 수 있습니다')
else:
print('성인이 아닙니다')
print('디즈니를 보세요')
print('입력한나이: ', age)
>>> 나이를 입력하세요: 20
성인입니다
넷플릭스 성인영화를 감상할 수 있습니다
입력한나이: 20
2-4. if ~ elif ~ else 문
- if ~ elif ~ else 문의 형식
if 조건식1(결과가 True 또는 False로 반환하는 문장):
조건식1이 True인 경우 실행할 문장
...
elif 조건식2:
조건식2가 True인 경우 실행할 문장
...
elif 조건식3:
조건식3이 True인 경우 실행할 문장
...
else:
위의 모든 조건식이 False인 경우 실행할 문장
...
> else는 필수문장이 아님!
- 나이를 입력받아 성인 또는 청소년 또는 어린이 또는 유아가 출력되는 프로그램을 작성해보자.
age = int(input('나이를 입력하세요: '))
if age > 19:
print('성인입니다')
elif age > 14:
print('청소년입니다')
elif age > 6:
print('어린이입니다')
elif age > 0 :
print('유아입니다')
else:
print('잘못 입력되었습니다')
print('입력한나이: ', age)
>>> 나이를 입력하세요: 20
성인입니다
입력한나이: 20
>>> 나이를 입력하세요: -1
잘못 입력되었습니다
입력한나이: -1
2-5. 산술 연산자
산술 연산자 | 설명 |
+ | 덧셈 연산 |
- | 뺄셈 연산 |
* | 곱셈 연산 |
/ | 나누기 연산 |
// | 몫 연산 |
% | 나머지 연산 |
** |
print(10 + 3)
>>> 13
print(10 - 3)
>>> 7
print(10 * 3)
>>> 30
print(10 / 3)
>>> 3.3333333333333335
print(10 // 3)
>>> 3
print(10 % 3)
>>> 1
print(10 ** 3)
>>> 1000
- 10 / 3 에 대한 연산의 결과는 부동소수점 오차에 의한 결과이다.
2-6. 삼항 연산자
결과가 True일 경우 실행할 문장 if 조건식 else 결과가 False일 경우 실행할 문장
num = int(input('숫자를 입력하세요: '))
if num % 2 == 0:
print('짝수입니다')
else:
print('홀수입니다')
>>> 숫자를 입력하세요: 11
홀수입니다
- 위의 if ~ else 문을 삼항 연산자로 표현해보자.
num = int(input('숫자를 입력하세요: '))
print('짝수입니다') if num % 2 == 0 else print('홀수입니다')
>>> 숫자를 입력하세요: 11
홀수입니다
📌문제1
- 국어점수, 영어점수, 수학점수를 입력받아 총점, 평균, 학점을 구하는 프로그램을 작성해보자.
- 단, 학점은 평균 기준이며 90점 이상은 A, 80점 이상은 B, 70점 이상은 C, 60점 이상은 D, 나머지는 F
kor, eng, math = input('국어, 영어, 수학점수를 차례대로 입력하세요: ').split(' ')
total = int(kor) + int(eng) + int(math)
avg = total / 3
if avg >= 90:
grade = 'A'
elif avg >= 80:
grade = 'B'
elif avg >= 70:
grade = 'C'
elif avg >= 60:
grade = 'D'
else:
grade = 'F'
print('총점은 %3.0f점 입니다' %total)
print('평균은 %4.2f점 입니다' %avg)
print('학점은 %s 입니다' %grade)
>>> 국어, 영어, 수학점수를 차례대로 입력하세요: 100 80 55
총점은 235점 입니다
평균은 78.33점 입니다
학점은 C 입니다
위 구문을 삼항 연산자를 사용하여 작성하여 보자.
kor, eng, math = input('국어, 영어, 수학점수를 차례대로 입력하세요: ').split(' ')
total = int(kor) + int(eng) + int(math)
avg = total / 3
print('총점은 %3.0f점 입니다' %total)
print('평균은 %4.2f점 입니다' %avg)
print('학점은 A입니다') if avg >= 90 else print('학점은 B입니다') if avg >= 80 else print('학점은 C입니다') if avg >= 70 else print('학점은 D입니다') if avg >= 60 else print('학점은 F입니다')
>>> 국어, 영어, 수학점수를 차례대로 입력하세요: 100 80 55
총점은 235점 입니다
평균은 78.33점 입니다
학점은 C입니다
삼항연산자를 사용할 경우 실행될 문장이 많아질 수록 가독성이 좋지 않다.
📌문제2
- 숫자를 입력받아 2의 배수인지, 3의 배수인지 아니면 2, 3의 배수가 모두 아닌지를 판단하는 프로그램을 작성해보자.
num = int(input('숫자를 입력하세요: '))
if num % 2 == 0:
print(f'{num}은/는 2의 배수입니다')
elif num % 3 == 0:
print(f'{num}은/는 3의 배수입니다')
else:
print(f'{num}은/는 2와3의 배수가 모두 아닙니다')
>>> 숫자를 입력하세요: 5
5은 2와3의 배수가 모두 아닙니다
num = int(input('숫자를 입력하세요: '))
if num % 2 == 0:
if num % 3 == 0:
print(f'{num}은/는 2와 3의 배수')
else:
print(f'{num}은/는 2의 배수입니다')
elif num % 3 == 0:
print(f'{num}은/는 3의 배수입니다')
else:
print(f'{num}은/는 2와3의 배수가 모두 아닙니다')
>>> 숫자를 입력하세요: 22
22은/는 2의 배수입니다
위 구문을 삼항 연산자를 사용하여 작성하여 보자.
num = int(input('숫자를 입력하세요: '))
print('2의 배수입니다') if num % 2 == 0 else print('3의 배수입니다') if num % 3 == 0 else print('2와3의 배수가 모두 아닙니다')
>>> 숫자를 입력하세요: 20
2의 배수입니다
2-7. 논리 연산자
1) AND
- 양쪽 두 식의 값이 모두 True인 경우 결과가 True가 되는 연산자
- 정보처리 기사 자격을 취득하기 위해서는 모든 과목이 40점 이상이고 평균이 60점 이상이 되어야 함.
A | B | 결과 |
True | True | True |
True | False | False |
False | True | False |
False | False | False |
간단한 로그인 프로그램을 만들어보자.
user_id = input('아이디를 입력하세요')
user_pw = input('비밀번호를 입력하세요')
if user_id == 'admin' and user_pw == '1234':
print('로그인 성공!')
else:
print('아이디 또는 비밀번호를 확인하세요')
>>> 아이디를 입력하세요: admin
비밀번호를 입력하세요: 1234
로그인 성공!
>>> 아이디를 입력하세요: admin
비밀번호를 입력하세요: 1111
아이디 또는 비밀번호를 확인하세요
2) OR
- 양쪽 두 식의 값이 하나라도 True인 경우 결과가 True가 되는 연산자
A | B | 결과 |
True | True | True |
True | False | True |
False | True | True |
False | False | False |
주민등록번호를 입력받아 성별을 판별하는 프로그램을 작성해보자.
jm_num = input('주민등록번호 13자리를 "-" 없이 입력하세요: ')
if jm_num[6] == '1' or jm_num[6] == '3' or jm_num[6] == '5' or jm_num[6] == '7' or jm_num[6] == '9':
print('남자입니다')
else:
print('여자입니다')
>>> 주민등록번호 13자리를 "-" 없이 입력하세요: 0010113068515
남자입니다
3) NOT
- bool 의 값을 반대로 변경해주는 연산자
- True → False , False → True
bool1 = True
if bool1:
print('결과는 참 입니다')
else:
print('결과는 거짓 입니다')
>>> 결과는 참 입니다
bool1 = True
if not bool1:
print('결과는 참 입니다')
else:
print('결과는 거짓 입니다')
>>> 결과는 거짓 입니다
728x90
반응형
LIST
'Python > Basic' 카테고리의 다른 글
[파이썬, Python] 제어문 - 2️⃣ 반복문(2)_다중반복문, 컴프리헨션(Comprehension) (0) | 2023.03.08 |
---|---|
[파이썬, Python] 제어문 - 2️⃣ 반복문(1)_bool(), 대입연산자, while문, for in 문, zip함수, enumerate함수 (0) | 2023.03.08 |
[파이썬, Python] 부동 소수점(floating point number) - 실수의 연산, 부동 소수점 오차, 실수의 비교 (0) | 2023.03.07 |
[파이썬, Python] 자료구조(Data Structure) - 2️⃣튜플(tuple) (0) | 2023.03.07 |
[파이썬, Python] 자료구조(Data Structure) - 1️⃣ 리스트(list) (0) | 2023.03.06 |