1. 조건문 if
조건문 if는 오른쪽의 식이 참이면 들여 쓰기 된 아래 코드가 실행되며, 만약 식이 거짓이라면 들여 쓰기 된 아래 코드들을 실행하지 않고 건너뛰게 된다.
x = 5
if x < 10:
print('Smaller') # 참이므로 실행
if x > 20:
print('Bigger') #거짓이므로 건너뜀
print('Finis')
2. 비교 연산자(Comparison Operators)
Python | Meaning |
< | 작다(Less than) |
<= | 작거나 같다(Less than or Equal to) |
== | 같다(Equal to) |
>= | 크거나 같다(Greater than or Equal to) |
> | 크다(Grater than) |
!= | 같지 않다(Not equal) |
3. 들여 쓰기(Indentation)
들여 쓰기는 위 코드에 소속됨을 의미하며, 보통 4칸의 공백으로 표시한다.
들여 쓴 줄은 1줄이 아니어도 된다.
소속을 끝내고 싶으면 꼭 내어 써줘야 한다.
if x = 5: # 콜론은 필수
print('F') # 꼭
print('i') # 한 줄일
print('v') # 필요는
print('e') # 없다.
print('Finish') # if문을 끝내고 싶으면 꼭 내어써줘야 한다.
4. 갈림길 else
갈림길을 놓고 싶으면 if와 함께 else를 사용하면 된다. else는 조건의 입력 없이 if가 거짓일 경우에만 실행된다.
물론 else는 없어도 되지만, 그렇게 되면 조건문의 어떠한 코드도 실행되지 않을 수 있다.
if x > 2:
print('Bigger than 2')
else:
print('Smaller than 2')
print('Done')
5. 여러 개의 갈림길을 만들고 싶을 때 elif
복수의 조건들을 두고 조건문을 만들고 싶을 경우엔 if와 elif를 사용하면 된다. elif는 if가 거짓이며, elif가 참일 경우에만 실행된다.
if x < 2:
print('small') # x가 2보다 작을 때 실행
elif x < 10:
print('Medium') # if의 조건과 겹치는 부분이 있지만, if가 거짓일 경우에만 실행
else:
print('Large') # if와 elif의 조건을 모두 충족하지 못 할 경우 실행
print('Done')
6. 주의점
Python은 위에서부터 아래로 차례대로 실행되는 스크립트 언어이기 때문에 조건문에서 절대로 실행되지 않는 코드가 생길 수 있다.
if x < 2:
print('Below 2')
elif x >= 2:
print('Two or more')
else:
print('Something else') # 모든 수는 2보다 작거나 크거나 같기 때문에 실행되지 않음
if x < 2:
print('Below 2')
elif x < 20:
print('Below 20')
elif x < 10:
print('Below 10') # 20보다 작은 수는 10보다도 작으므로 실행되지 않음
else:
print('Something else')
7. 디버깅 코드 try/except
try에 속해있는 코드를 순차적으로 실행한 뒤 에러가 뜰 경우 아래 코드를 모두 스킵하고 except를 실행한다.
잘못되지 않았을 경우 except는 무시된다.
그렇기 때문에 코드 전체를 try/except블록에 넣기보단 중단될 것 같은 단락만 넣는 것이 좋다.
astr = 'Bob'
try:
print('Hello') # Hello 출력
istr = int(astr) # 에러
print('There') # 실행되지 않음
except:
istr = -1 # 실행
print('Done', istr) # Done -1 출력
Assignment
Assignment 3.1은 이전에 제작했던 2.3의 급여 계산기를 조건문을 사용해 개량해서 40시간까지의 시간에는 시간당 요금을 지불하고 40시간 이상의 모든 시간에는 시간당 비율의 1.5배를 지불하도록 만드는 프로그램을 작성하는 것이었다. 테스트를 통과하기 위해서는 hours와 rate에 각각 45, 10.50을 입력해야했고, 급여는 498.75여야 했다. 2.3의 경우와 동일하게 입력을 사용하여 받은 값은 항상 문자열(string)타입이기 때문에 float()함수를 사용하여 유리수(float) 타입으로 변환해야 했으며 원하는 출력과 일치하도록 print()함수 또한 작성해야 했다.
나의 풀이는 아래와 같다.
# ex_03_01
hrs = input("Enter Hours:")
rat = input("Enter rate:")
h = float(hrs)
r = float(rat)
if h > 40:
h = 40 + float(h - 40) * 1.5
print(h * r)
두 번째 assignment인 3.3은 학점을 계산하는 프로그램을 작성하는 것이었다. 점수가 범위를 벗어나면 오류가 났다는 것을 출력해야 했으며, 점수가 0.0과 1.0 사이이면 문제 지문의 조건대로 등급을 출력해야 했다. 테스트시 0.85의 점수를 입력해야 했다.
나의 풀이는 아래와 같다.
# ex_03_03
score = input("Enter Score: ")
score = float(score)
try:
if score >= 0.9:
print('A')
elif score >= 0.8:
print('B')
elif score >= 0.7:
print('C')
elif score >= 0.6:
print('D')
elif score < 0.6:
print('F')
except:
print('error')
quit()
'Python > PY4E' 카테고리의 다른 글
PY4E Chapter 5. Loops and Iterations (0) | 2022.08.05 |
---|---|
PY4E Chapter 4. Functions (0) | 2022.08.02 |
PY4E Chapter 2. Variables, expressions and statements (0) | 2022.08.02 |
PY4E Chapter 1. Why Program (0) | 2022.08.01 |
Python for Everybody 후기 (0) | 2022.07.28 |
댓글