if 문의 조건식은 결국 참이나 거짓을 결정하여 내용 실행 여부 판단
숫자 비교 예시
=> 0<10 (True)
=> 23>=30 (False)
=> 5==5 (True) #좌변과 우변이 같으면 참('='과는 다르다)
=> 10!=5 (False) #좌변과 우변이 다르면 참
사용예시)
사용예시)
from datetime import datetime
hour = datetime.now().hour
if hour<12: #12시 전에만 '오전입니다.' 출력하도록 하는 문제
print('오전입니다.')
오전입니다.
#3의 배수가 맞으면 조건에 맞게 출력하는 문제
number = 15
if number % 3 == 0: #15는 3의 배수 이므로 True
print("{}는 3의 배수입니다.".format(number))#실행 됨
number = 16
if number % 3 == 0: #16은 3의 배수가 아니므로 False
print("{}는 3의 배수입니다.".format(number))#실행 안됨
15는 3의 배수입니다.
#hour 가 6의 배수일때만 특정 문장 실행되도록 하기
from datetime import datetime
hour = datetime.now().hour
if hour%6==0:
print('종이 울립니다.')
#아래 결과는 실제 시간이 6의 배수일 때만 출력
종이 울립니다.
if mine==yours:
result= DRAW
else:
if mine==SCISSOR:
if yours==ROCK:
result =LOSE
else:
result = WIN
#반드시 else 문은 if 문과 함께 나와야 하며 들여 쓴 부분이 일치한 if else 문이 서로 관계를 가진다.
(else와 if 블럭 2개를 합쳐 간략하게 표현 가능)
(전)
if 조건 :
<코드>
else:
if 조건 :
<코드>
(후)
if 조건 :
<코드>
elif 조건:
<코드>
if mine==yours:
result= DRAW
elif mine==SCISSOR:
if yours==ROCK:
result =LOSE
else:
result = WIN
mine = '가위'
yours = '바위'
if mine == yours:
print("비겼습니다.")
else:
print("비기지 않았습니다.")
비기지 않았습니다.
gender = "남자"
if gender=="남자":
print("남자입니다.")
elif gender=="여자":
print("여자입니다.")
else:
print("논바이너리입니다")
남자입니다.
mine = "가위"
yours = "바위"
if mine == yours:
print("비김")
elif mine == "가위":
if yours == "보":
print("이겼다")
else:
print("졌다")
elif mine == "바위":
if yours == "가위":
print("이겼다")
else:
print("졌다")
elif mine == "보":
if yours == "바위":
print("이겼다")
else:
print("졌다")
졌다.
=> 함수를 만들고 나면 그 내부 코드를 생각할 필요는 없다.
(함수의 사용예시)
def function(): #def 는 함수 키워드, function은 함수 이름(임의 설정 가능)
def function():
print('안녕,함수!')
function() #이런 식으로 호출을 해야만 함수가 실행됨
안녕, 함수!
a = 5
b = 7
def add(): #함수 정의
result = a + b
print(result)
add();#함수를 호출하여 사용
12
def print_root():
r1=(-b+(b**2-4*a*c)**0.5)/(2*a)
r2=(-b-(b**2-4*a*c)**0.5)/(2*a)
print('해는 {} 또는 {}'.format(r1,r2))
a=1
b=2
d=-8
print_root()
오류 발생
=>오류 발생의 이유 : 함수 내부의 변수가 먼저 정의 되지 않았기 때문
(이러면 프로그래머가 복잡한 경우 오류 발견하기 힘듬, 매개변수의 필요성)
def print_root(a,b,c): # 매개변수(parameter) a,b,c : 함수 정의 시 사용하는 이름
r1=(-b+(b**2-4*a*c)**0.5)/(2*a)
r2=(-b-(b**2-4*a*c)**0.5)/(2*a)
print('해는 {} 또는 {}'.format(r1,r2))
x=1
y=2
z=-8
print_root(x,y,z) # 실행인자(argument) x,y,z : 함수 실행 시 넘기는 값
해는 2.0 또는 -4.0
def print_round(number):
rounded=round(number)# round() 함수는 파이썬에서 반올림 하는 함수
print(rounded)
print_round(4.6)
print_round(2.2)
print_round(3.6)
5
2
4
def add(a,b): #add() 함수 정의
result = a+b
print( "{} + {} = {}".format(a,b,result) )
add(10,5) # add() 함수 실행
10 + 5 = 15
def add_10(value):
result = value +10
return result
n=add_10(42)
print(n)
n=round(1.5)
print(n)
52
2
def add_10(value):
print('return 앞')
return 10 #value 관계 없이 10 리턴
print('return 뒤')
result = value +10
return result
n=add_10(42)
print(n)
n=round(1.5)
print(n)
return 앞
10
2
def add_10(value):
"""value에 10을 더한 값을 돌려주는 함수"""
if value<10: # 조건문을 통해 원할때 함수 종료 가능
return 10
result = value +10
return result
n=add_10(5)
print(n)
n=add_10(42)
print(n)
10
52
def root(a,b,c):
r1=(-b+(b**2-4*a*c)**0.5)/(2*a)
r2=(-b-(b**2-4*a*c)**0.5)/(2*a)
return r1,r2 # r1과 r2 값 2개의 값을 리턴
x=1
y=2
z=-8
r1,r2=root(x,y,z)#r1, r2 변수에 함수의 리턴값 순서대로 대입
print('근은 {} {}'.format(r1,r2))
근은 2.0 4.0
def add(a,b):
return a+b
n=add(2,10)
print(n)
12
print('가위 바위 보 중에 하나 입력>')#사용자가 입력해야 할 정보를 알려준다.
mine=input()
print('mine : ',mine)
가위 바위 보 중에 하나 입력>
가위
#사용자 입력값
mine : 가위
#결과
위 결과에서 입력시 '가위'와 출력시의 '가위'는 다르다.
print('가위 바위 보 중에 하나 입력>',end=' ')# 같은줄에서 입력 가능
mine=input()
print('mine : ',mine)
가위 바위 보 중에 하나 입력>가위
mine : 가위
mine= input('가위 바위 보 중에 하나 입력>')
=> 위와 같이 입력과 동시에 mine 에 입력받은 정보를 저장하는 것도 가능
input() 사용시 사용자가 입력하지 않는 한 무한 대기 상태일 수 있음
Crrl+c 를 이용해 종료 가능
->Ctrl+c 를 이용해 입력 종료를 한 후의 결과