형식은
if 조건문:
으로 주의할 점은 파이썬은 들여쓰기로 함수를 묶기 때문에 들여쓰기를 주의할 것!
>>> a = 99
>>> if a<100: # a가 100보다 작으면 참, 아니면 거짓. 참일 때만 실행된다.
print("100보다 작군요")
100보다 작군요.
참(True)과 거짓(False)을 판단할 수 있는 기호들은 다음과 같다.
- 비교 연산 기호 (==, !=, <, >, <=, >=)
- 논리 기호 (and, or, not)
- 존재 여부 (in, not in)
- 자료형의 참과 거짓
이 중 값의 존재 여부와 자료형의 참과 거짓을 보겠다.
in : 값이 존재할 때 True
not in : 값이 존재하지 않을 때 True
>>> "Korean" in ["Korean", "English"] # list다
True
>>> list0 = [1,2,3]
>>> a = 1
>>> a in list0
True # a라는 변수가 가진 1이라는 값이 list0 에 존재하므로 참이다
>>> "Japanese" not in ["Korean", "English"]
True
숫자형의 경우
0은 False
, 나머지는 모두 True이다.
이처럼 자료형에도 참과 거짓이 있다.
문자열(str), 리스트(list), 딕셔너리(dict)는비어있으면 False
,하나라도 값이 있으면 True
다.
숫자 | 문자열 | 리스트 | 딕셔너리 | |
---|---|---|---|---|
참 | 0이 아닌 숫자 | "string" | [1,2,3] | {"X", "Y"} |
거짓 | 0 | "" | [] | {} |
>>> a = 200
>>> if a < 100:
print("100보다 작군요.")
print("거짓이므로 이 문장은 안 보이겠죠")
>>> print("프로그램 끝.")
거짓이므로 이 문장은 안 보이겠죠
프로그램 끝
만약 위의 코드에서 의도한 바가 a 값이 100보다 작으므로 "거짓이므로~보이겠죠" 문장이 나오지 않는 것이었다면
위의 코드는 틀린 출력 결과를 보여준 것이다. 왜일까?
>>> a = 200
>>> if a < 100:
print("100보다 작군요.")
print("거짓이므로 이 문장은 안보이겠죠.")
>>> print("프로그램 끝")
첫번째 코드와 다른점은 바로
들여쓰기
다.
파이썬은 앞서 말했듯이 들여쓰기로 함수의 범위를 인식하기 때문에 들여쓰기를 맞춰주는 것은 필수적이다.
조건문이 참일 때 실행할 코드와 아닐때(그 외, else) 실행할 코드를 따로 정해주는 함수이다.
>>> a = 200
>>> if a < 100:
print("100보다 작군요.")
else: # if의 조건문이 거짓(False)일 때!
print("100보다 크군요.")
100보다 크군요.
위의 코드는 조건문이 거짓이므로 그 외를 다루는 else로 빠져 print문을 실행했다.
중첩 If문이란 If문을 한 번 실행한 후
그 결과에서 다시 if문을 실행
하는 것이다.
If - If 도 가능하지만 If~~elseIf~else 형식도 가능하다.
또한 If~elif~else 형식도 가능한데, 여기서elif
란 else와 If를 결합한 것으로, If외 다른 조건을 제안한다.
score = int(input("점수를 입력하세요. :"))
if score >= 90:
print("A")
elif score >= 80: # 첫번째 거름망
print("B")
elif score >= 70: # 두번째 거름망
print("C")
elif score >= 60: # 세번째 거름망
print("D")
else:
print("F")
print("학점입니다!")
위의 코드는 if문과 else 사이에 총 3번의 거름망
이 있다고 보면 된다.
일반 If~else문에서는 If가 거짓이면 바로 그외를 다루는 else로 빠지지만,
If~elif~else 문에서는 elif가 거름망이 되어
If에서 거짓이 된 값을 받아 한번 더 참과 거짓을 가르는 것이다.
이런식으로 총 세번의 거름망에서 모두 False로 판단되면
드디어 원 If문과 짝인 else를 만나 코드를 실행한다.
다음과 같은 코드가 있다고 보자.
jumsu = 55
res = ''
if jumsu >= 60:
res = '합격'
esle :
res = '불합격'
print('res')
위의 코드는 아래의 코드와 같은 결과값을 가진다.
res = '합격' if jumsu >= 60 else '불합격'
삼항 연산자란 연산 대상자가 3개인 연산자이다.
앞서 배운 부호(+,-),not 등이 단항 연산자(연산 대상자가 1개)이며
+, -, * 등의 산술 연산자가 이항 연산자(연산 대상자가 2개)이다.
삼항 연산자는 한가지 유형만 존재한다.
형식은 다음과 같다.
- 값을 대입할 변수 =
(if조건이 참일 경우 값) if (조건문) else (if조건이 거짓일 경우 값)
주의할 점은 일반 if~else 문과 달리 사이에 ':'가 없다는 점이다.
print() 함수에서 사용할 수 있는 서식은 다음과 같다.
서식 | 값의 예 | 설명 |
---|---|---|
%d, %x, %o | 10,100,1234 | 정수(10진수, 16진수, 8진수) |
%f | 0.5, 1.0, 3.14 | 실수(소수점이 있음) |
%c | "b", '비' | 한 글자 |
%s | "안녕", "abcdefg", "a" | 두 글자 이상인 문자열(한 글자도 가능함) |
>>> print("%d / %d = %d" % (100,200,0.5))
100 / 200 = 0
# 뒤에 대입한 값은 0.5이지만 서식이 정수 형식이므로 0만 출력됨
서식을 활용할 때 %와 서식 사이에 숫자를 넣음으로써 확보할 자리를 정할 수 있다.
print("%5d" % 123)
과 같이 쓰게 되면, 정수 자리 5자리를 만들어 놓고
오른쪽 정렬로 값 123을 넣어 앞의 두자리는 공백으로 나타낸다.
>>> print("%d" % 123)
>>> print("%5d" % 123)
123
123 # 앞에 공백 2개가 존재한다.(5개 중에 3개 사용했으니까!)
이 공백에 채울 값을 따로 정하는 것도 가능하다.
print("%05d" % 123)
과 같이 하는 것이다.
우선 5자리를 확보하고, 오른쪽 정렬로 값을 대입한 다음, 남은 자리(2자리)에는 숫자 '0'을 넣는 것이다.
>>> print("%5d" % 123)
>>> print("%05d" % 123)
123
00123
실수의 경우 소수점 아래 자릿수를 정할 수 있다.
>>> print("%f" % 123.45) #그냥 f로 지정하면 소수점 아래 6자리까지 무조건! 출력됨
>>> print("%7.1f" % 123.45) #소수점을 포함해 7자리를 확보하고, 첫째자리 까지만 나타낸다.
>>> print("%7.3f" % 123.45) #소수점을 포함해 7자리를 확보하고, 셋째자리 까지 나타낸다. 빈 자리는 0으로!
123.450000
123.5 #첫째자리까지 나타내기 위해 둘째자리에서 반올림을 함.
123.450
문자열도 마찬가지이다.
>>> print("%s" % "Python")
>>> print("%10s" % "Python")
Python
Python
만약 문자
%
자체를 나타내고 싶다면 어떻게 해야할까?
%%로 입력하면 포맷 코드로 인식하지 않고 문자열 자체로 인식한다!
>>> print("Error is %d %% ." % 98)
Error is 98%.
print()함수에서 특수 문자를 표현하는 역슬래시()로 표현하는 특수 표기법을 말한다.
이스케이프 문자는 다음과 같다. 그대로 출력하는 방법도 포함한다.
이스케이프 문자 | 역할 | 설명 |
---|---|---|
\n | 새로운 줄로 이동 | Enter 을 누른 효과 |
\t | 다음 탭으로 이동 | Tap 을 누른 효과 |
\b | 뒤로 한 칸 이동 | Backspace 를 누른 효과 |
\\ | \출력 | |
\' | '출력 | |
\" | "출력 |
print("\n줄바꿈\n연습")
print("\t키\t연습")
print("\\\\\\역슬래시 3개 출력")
print("줄바꿈 기호 : \\n")
print("탭 키 기호 : \\t")
print(r"\n \t \" \\를 그대로 출력") #print문 안의 문자열이 시작전 'r'을 넣어 이스케이프 문자의 효과를 제거한다.
#결과값
줄바꿈
연습
키 연습
\\\역슬래시 3개 출력
줄바꿈 기호 : \n
탭 키 기호 : \t
\n \t \" \\를 그대로 출력
print() 함수는 일반적으로 문자열을 다 찍고 그 뒤에 새로운 줄에서 시작하게 하도록 하는
개행 문자
가 포함되어 있다.
print()를 사용하면서 자동 줄바꿈을 없애기 위해서는
문자열 뒤에','를 쓰고 end = '' 를 이용
하여 문자열을 다 출력하고 할 동작을 변경해 줄 수 있다.
즉, 기본으로 포함된 개행 문자를 빼고 할 동작을 지정해주는 것이다.
>>> print("Hello") ; print("Python")
Hello
Python
위와 같이 자동으로 줄바꿈 되는 개행 문자를
>>> print("Hello", end = '')
>>> print("Python")
Hello Python
end에 공백('')을 넣어 다음 print문을 이어서 출력할 수 있다.