IF문
예시1)
dogs = ['andy', 'bob', 'merry', 'tom']
for dog in dogs:
if dog == 'bob': #1
print(dog.upper()) #2
else: #3
print(dog.title()) #4
결과 값
Andy
BOB
Merry
Tom
#1에서는 현재 값이 'bob'인지 확인합니다.
#2에서는 'bob'이 맞으면 모든 문자를 대문자로 출력합니다.
#3에서는 현재값이 'bob'이 아닐 경우에 해당합니다.
#4에서는 현재값이 'bob'이 아닐 경우 단어의 첫문자만 대문자로 출력합니다.
결과 값을 보면 if문에서 'bob'일 경우에만 대문자로 출력하라고 명령했기 때문에 'bob'만 대문자인 'BOB'으로 출력되고 나머지 이름들은 전부 맨 앞문자만 대문자로 출력되고 나머지 문자는 소문자로 출력되었습니다.
- if문
예시2)
age = 19
if age >= 18:
print("You are old")
결과 값
You are old
- if-else문
else문은 조건 테스트가 실패했을 때 실행할 동작을 정의 합니다.
예시3)
age = 17
if age >= 18:
print("you are old.")
else:
print("sorry")
결과 값
sorry
- if-elif-else문
조건 - 4세 미만이면 무료 / 4세부터 17세까지는 입장료 25 / 18세 이상이면 입장료 40
이 경우 예시4나 혹은 예시5처럼 코드를 작성할 수 있습니다.
예시4)
age = 12
if age < 4:
print("$0")
elif age < 18:
print("$25")
else:
print("$40")
결과 값
$25
예시5)
age = 12
if age < 4:
price = 0
elif age < 18:
price = 25
else:
price = 40
print(f"${price}")
결과 값
$25
- elif 여러개 사용하는 법
예제6)
age = 12
if age < 4:
price = 0
elif age < 18:
price = 25
elif age < 65:
price = 40
else:
price = 40
print(f"${price}")
결과 값
$25
- else 블록 생략하는 법
if-elif문 뒤에 else 블록을 반드시 사용해야 할 필요는 없습니다. 때로는 else블록 대신에 elif문으로 하나 더 테스트 하는 편이 더 쉬울 수도 있습니다.
예제7)
age = 35
if age < 4:
price = 0
elif age < 18:
price = 25
elif age < 65:
price = 40
elif age >= 65:
price = 20
print(f"${price}")
결과 값
$40
- 여러 조건 테스트하는 법
if-elif-else문은 강력하지만 통과 조건이 단 하나일 때만 어울립니다. 때문에 한 가지 테스트가 통과하는 즉시 다른 테스트는 모두 건너 뛰게 됩니다. 예제8과 예제9를 함께 비교해보세요.
예제8)
requested = ['mushrooms', 'extra cheese']
if 'mushrooms' in requested:
print("adding mushrooms.")
if 'pepperoni' in requested:
print("adding pepperoni.")
if 'extra cheese' in requested:
print("adding extra cheese")
print("\nfinished making your pizza.")
결과 값
adding mushrooms.
adding extra cheese
finished making your pizza.
예제9)
requested = ['mushrooms', 'extra cheese']
if 'mushrooms' in requested:
print("adding mushrooms.")
elif 'pepperoni' in requested:
print("adding pepperoni.")
elif 'extra cheese' in requested:
print("adding extra cheese")
print("\nfinished making your pizza.")
결과 값
adding mushrooms.
finished making your pizza.
예제9와 같이 if-elif-else 블록을 쓰면 테스트가 단 하나만 통과해도 멈추므로 제대로 동작하지 않습니다. 파이썬은 if-elif-else문의 첫 번째 테스트가 통과하면 나머지는 테스트하지 않기 때문입니다.
1) 리스트에서 if문 사용하는 법
- if문으로 리스트에 특별한 항목이 있는지 체크하는 법
예제10)
requested = ['mushrooms', 'green peppers', 'extra cheese']
for requested_topping in requested:
print(f"adding {requested_topping}")
print("\nFinished making your pizza.")
결과 값
adding mushrooms
adding green peppers
adding extra cheese
Finished making your pizza.
+ 피망(green peppers)이 떨어졌을 때 상황 처리하는 법
예제11)
requested = ['mushrooms', 'green peppers', 'extra cheese']
for requested_topping in requested:
if requested_topping == 'green peppers': #1
print("Sorry")
else: #2
print(f"adding {requested_topping}")
print("\nFinished making your pizza.")
결과 값
adding mushrooms
Sorry
adding extra cheese
Finished making your pizza.
#1은 피자에 피망 토핑을 주문했다면 피망이 다 떨어졌다는 메시지를 표시합니다.
#2는 else블록을 썼기 때문에 다른 토핑은 모두 피자에 추가 됩니다.
결과 값을 보면 주문 받은 토핑이 잘 처리된 것을 볼 수 있습니다.
- if문으로 리스트가 비어 있는지 확인하는 법
예제12)
requested_toppings = [] #1
if requested_toppings: #2
for requested_topping in requested_toppings:
print(f"Adding {requested_topping}.")
print("\nFinished")
else: #3
print("Are you sure you want a pizza?")
결과 값
Are you sure you want a pizza?
#1는 비어있는 토핑 주문 리스트에서 시작한다는 뜻입니다. 이후 for 루프를 바로 시작하지 않고, #2에서 간단히 체크 합니다. 파이썬에서 리스트 이름을 if문에 사용하면 리스트에 항목이 최소한 하나 이상이 있을 때는 true를 반환하고 그렇지 않다면 빈 리스트에 대해 false로 평가 합니다.
#3을 통해 조건 테스트에 실패하여 빈 리스트로 평가 되고 print에 입력된 메시지가 결과 값으로 출력 됩니다.
- if문으로 여러 리스트 다루는 법
예제13)
available_one = ['mushrooms', 'olives', 'green peppers',
'pepperoni', 'pineapple', 'extra cheese']
requested_one = ['mushrooms', 'french fries', 'extra cheese']
for requested_two in requested_one:
if requested_two in available_one:
print(f"adding {requested_two}")
else:
print(f"sorry")
print("\nFinish")
결과 값
adding mushrooms
sorry
adding extra cheese
Finish
'공부 > 코딩' 카테고리의 다른 글
⛷ [파이썬] 파이썬 예제 문제모음 : 리스트 내포 (List Comprehension) (0) | 2022.11.11 |
---|---|
⛷ [파이썬] 파이썬 기초 정리 (11) : 딕셔너리 (0) | 2022.11.10 |
⛷ [파이썬] 파이썬 기초 정리 (9) : 조건테스트 / 불리언 표현식 (0) | 2022.11.08 |
⛷ [파이썬] 파이썬 기초 정리 (8) : 리스트 _ 5 / 튜플 (0) | 2022.11.07 |
⛷ [파이썬] 파이썬 기초 정리 (7) : 리스트 _ 4 (0) | 2022.11.06 |
댓글