3.0 If ( 조건문 )
control flow
조건문의 예를 들면
ATM에 카드를 넣으면, 비밀번호를 요구한다
ATM의 코드에는 '만약 비밀번호가 정확한다면, 사용자에게 돈을 줘' 라는 조건문이 있다.
'만약 그렇지 않으면, 사용자에게 에러를 보여줘' 이게 바로 조건문이다.
조건문은 우리가 다양한 시나리오를 처리할 수 있는 코드를 작성할 수 있게 해준다.
만약 비밀번호가 맞다면, 무언가를 하고, 그렇지않으면 다른 무언가를 한다.
조건문을 배우면 다양한 상황을 다룰 수 있는 더 복잡하고 유용한 프로그램을 작성할 수 있다.
a 변수에 10 이라는 값을 넣어서 a 와 10 이 같으면 ( True 이면 ) correct 를 출력한다
else를 사용하여 만약 a 변수에 9 라는 값을 넣어 a 10 이 같지않으면 ( false 이면) wrong 을 출력한다
a = 10
if a == 10:
print("correct")
출력값:
correct
a == 9
if a == 10:
print("correct")
else:
print("wrong")
출력값:
wrong
대문자와 소문자를 구분하기 때문에 Minsoo 와 minsoo 는 다르다
a = "minsoo"
if a == "minsoo":
print("correct")
a ="Minsoo"
if a == "minsoo":
print("correct")
else:
print("wrong")
출력값:
wrong
elif 사용
복권을 한다고 생각하고, 복권의 1등 당첨번호가 10이라고 한다
이번에는 2가지 조건을 확인한다
항상 if 로 시작한다. 매번,항상, 똑같이
첫번째 조건은 elif 로 시작( elif 는 코드에 또 다른 대안과 조건을 넣을 수 있도록 해준다 )
마지막은 else를 이용하여 마무리 ( else 는 조건이 true 가 아닐 때, 즉 오직 대안만 제공할 수 있도록 해준다 )
else 는 모든경우가 false 일 때 실행된다.
winner = 7
if winner > 10:
print("Winner is greater than 10")
elif winner < 10:
print("Winner is less than 10")
else:
print("Winner is 10")
여러개의 elif 를 사용할 수 있다.
python 은 앞부분이 조건문의 조건에 충족될 경우 뒤에 조건문을 무시한다.
winner = 50
if winner != 10:
print("if")
elif winner <=25:
print("elif")
elif winner == 0:
print("elif 2")
elif winner == 50:
print("elif 3")
else:
print("else")
winner 값이 50 이면 위 코드에서 if 와 elif 3 가 충족된다.
하지만 if 가 먼저 있기 때문에 출력값은 if 로 나온다
winner = 50
if winner <= 10:
print("if")
elif winner <=25:
print("elif")
elif winner == 0:
print("elif 2")
elif winner == 50:
print("elif 3")
else:
print("else")
elif 3 를 출력하기 위해 if 조건을 false 로 바꿔보았다.
python 은 위 부터 조건들의 true false 를 판별하여 내려오기 때문에
elif 3 가 true 이기 때문에 출력된다.
우리가 원하는 elif 3 값을 출력값으로 출력하게 되었다.
만약 winner = 500 인 경우에는 어떤 값을 출력할까?
winner = 500
if winner <= 10:
print("if")
elif winner <=25:
print("elif")
elif winner == 0:
print("elif 2")
elif winner == 50:
print("elif 3")
else:
print("else")
모든 조건이 false 인 경우에는 else 를 출력하게 된다.
위에서 부터 true false 를 판별했으나 true 에 만족하는 조건이 없기 때문에
모든 조건이 false 이기 때문에
else 는 true 가 아니면 출력되기 때문이다.
하지만 항상 else 를 사용할 필요가 없다.
if만 사용해도 괜찮다.
elif 도 항상 사용할 필요가 없다.
어떤 한 조건이 true 가 되는 순간 python은 즉시 그 안족 코드를 실행하고, 나머지는 확인하지 않는다.
(위에서 부터 조건이 true 인 것 1개만 출력한다 )
< 음주 가능 나이 계산기 만들기 >
user가 음주가 가능한 나이인지 아닌지를 계산하는 코드를 작성한다.
코드 작성 전에 3가지 기능을 추가로 배워보자
input()
input은 오직 하나의 argument 만 받는다. 오직 하나의 argument 만!
사용자에게 표시되는 질문이다.
input으로 user에게 질문을 할 수 있게 하고, 그러면 user는 우리에게 답을 한다.
user가 우리에게 무엇을 답하던지 그게 바로 이 함수의 return 값이다.
따라서 우리는 이 함수의 값을 저장하기 위해 변수에 넣어준다
age = input('how old are you?')
print('user answer', age )
출력값:
how old are you? 20 -> 20을 입력한다.
user answer 20 - > 20이 출력된다.
print() 함수와 같이 built-in 함수라 코드를 작성할 필요가 없다.
type() 함수가 있다.
변수의 type 을 알려준다.
age = input('how old are you?')
print(type(age))
출력값:
how old are you? 36 -> 36 입력시
<class 'str'> -> string (문자열) 이라고 출력된다
이 string 을 가져다가 숫자로 변환하고 싶다. ( age 가 20 보다 작은지 확인하고 싶기 때문에 )
string 인 경우에는 20 보다 작은지 큰지 비교할 수 가 없다.
그러기 위해서 input 함수를 int 함수로 감싸준다. ( int 함수 - 정수로 변환해주는 함수 )
user 가 string 형태로 되어있는 응답을 주면, 우리는 int 를 호출하고
int는 user가 작성한 string을 받고, int는 그 string을 숫자로 바꿔준다.
- how old are you 질문에 대답 → 20 엔터 치고 입력
- input 함수가 string(문자열)으로 받고
- int 함수가 string → int 정수 형태로 변환해준다
- 20이라는 숫자를 age 라는 변수에 넣어서
- print 함수로 출력
age = int(input('how old are you?'))
print(type(age))
how old are you? 52 → 52 입력시
<class 'int'> → int (정수) 출력됨
3.3 And & or
if, elif, else 를 사용해서 음주 가능 계산기 만들기
이렇게 부등호를 직관적으로 만들거나
age = int(input('how old are you?'))
if age < 20:
print("You can't drink")
elif 20 < age < 35:
print('You drink beer!')
else:
print('Go ahead!')
And 를 사용해서 만들수 있다.
age = int(input('how old are you?'))
if age < 20:
print("You can't drink")
elif age > 20 and age < 35:
print('You drink beer!')
else:
print('Go ahead!')
elif 앞부분이 false 면 전체가 false 다.
and 는 양쪽 모두가 true 여야 한다.
앞부분이 true 고 뒷부분이 true 면 전체가 true
뒷부분이 false 고 앞부분이 true 면 전체는 false
age = int(input('how old are you?'))
if age < 20:
print("You can't drink")
elif age >= 20 and age <= 35:
print('You drink beer!')
else:
print('Go ahead!')
20을 입력하면 elif 조건에 모두 만족하므로 You drink beer! 구문이 나온다
36을 입력하면 elif 앞조건에는 true 지만 뒷조건에는 false 이므로
else 로 넘어가서 Go ahead! 구문이 나온다
or 는 앞조건과 뒷조건 둘 중 하나만 true 면 된다.
age = int(input('how old are you?'))
if age < 20:
print("You can't drink")
elif age >= 20 and age <= 35:
print('You drink beer!')
elif age == 60 or age == 70:
print("Birthday party!")
else:
print('Go ahead!')
60 을 입력하거나 70을 입력하면
Birthday party 라는 구문이 나온다.
and & or 에서 True False 구분하기
True and True == True
False and True == False
True and False == False
False and False == False
True or True == True
True or False == True
False or True == True
False or False == False
몇가지 구문을 더 넣어서 제작
age = int(input('how old are you?'))
if age < 20:
print("You can't drink")
elif age >= 20 and age <= 35:
print('You drink beer!')
elif 35 < age < 60:
print("You drink soju!")
elif age >= 90:
print("You need to care your health!")
elif age == 60 or 70 or 80:
print("Birthday party!")
else:
print('Go ahead!')
'Programming > Python 웹 스크래퍼 만들기' 카테고리의 다른 글
Python Method (0) | 2022.11.07 |
---|---|
Python while 문 사용해서 랜덤 숫자 맞추기 (0) | 2022.11.04 |
Python 랜덤 숫자 맞추기 (0) | 2022.11.03 |
Python return 키워드 (0) | 2022.11.01 |
Python 함수(def) 문법 (0) | 2022.10.31 |