조건문과 print() 함수

Jess·2021년 3월 27일
0

Python

목록 보기
3/3
post-thumbnail

조건문

If문

형식은 if 조건문: 으로 주의할 점은 파이썬은 들여쓰기로 함수를 묶기 때문에 들여쓰기를 주의할 것!

>>> a = 99
>>> if a<100: 	# a가 100보다 작으면 참, 아니면 거짓. 참일 때만 실행된다.
	print("100보다 작군요")
100보다 작군요.

조건의 참과 거짓

참(True)과 거짓(False)을 판단할 수 있는 기호들은 다음과 같다.

  • 비교 연산 기호 (==, !=, <, >, <=, >=)
  • 논리 기호 (and, or, not)
  • 존재 여부 (in, not in)
  • 자료형의 참과 거짓
    이 중 값의 존재 여부와 자료형의 참과 거짓을 보겠다.

값의 존재 여부(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""[]{}

If문에서 들여쓰기의 중요성

>>> a = 200
>>> if a < 100:
	print("100보다 작군요.")
   print("거짓이므로 이 문장은 안 보이겠죠")
>>> print("프로그램 끝.")

거짓이므로 이 문장은 안 보이겠죠
프로그램 끝

만약 위의 코드에서 의도한 바가 a 값이 100보다 작으므로 "거짓이므로~보이겠죠" 문장이 나오지 않는 것이었다면
위의 코드는 틀린 출력 결과를 보여준 것이다. 왜일까?

>>> a = 200
>>> if a < 100:
	print("100보다 작군요.")
    	print("거짓이므로 이 문장은 안보이겠죠.")
>>> print("프로그램 끝")

첫번째 코드와 다른점은 바로 들여쓰기다.
파이썬은 앞서 말했듯이 들여쓰기로 함수의 범위를 인식하기 때문에 들여쓰기를 맞춰주는 것은 필수적이다.

If-else문

조건문이 참일 때 실행할 코드와 아닐때(그 외, else) 실행할 코드를 따로 정해주는 함수이다.

>>> a = 200
>>> if a < 100:
	print("100보다 작군요.")
    else: 	# if의 조건문이 거짓(False)일 때!
    	print("100보다 크군요.")
100보다 크군요.

위의 코드는 조건문이 거짓이므로 그 외를 다루는 else로 빠져 print문을 실행했다.

중첩 If문

중첩 If문이란 If문을 한 번 실행한 후 그 결과에서 다시 if문을 실행하는 것이다.
If - If 도 가능하지만 If~~elseIf~else 형식도 가능하다.
또한 If~elif~else 형식도 가능한데, 여기서 elifelse와 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에서 거짓이 된 값을 받아 한번 더 참과 거짓을 가르는 것이다.

  • elif의 조건이 True이면 해당되는 코드를 실행하고,
  • False가 되면 다음 elif 혹은 마지막 else로 빠진다.

이런식으로 총 세번의 거름망에서 모두 False로 판단되면
드디어 원 If문과 짝인 else를 만나 코드를 실행한다.

삼항 연산자를 사용한 if 문

다음과 같은 코드가 있다고 보자.

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() 함수

print() 함수에서 사용할 수 있는 서식은 다음과 같다.

서식값의 예설명
%d, %x, %o10,100,1234정수(10진수, 16진수, 8진수)
%f0.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%.

이스케이프 문자(Escape Sequence)

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() 함수는 일반적으로 문자열을 다 찍고 그 뒤에 새로운 줄에서 시작하게 하도록 하는 개행 문자가 포함되어 있다.
print()를 사용하면서 자동 줄바꿈을 없애기 위해서는
문자열 뒤에 ','를 쓰고 end = '' 를 이용하여 문자열을 다 출력하고 할 동작을 변경해 줄 수 있다.
즉, 기본으로 포함된 개행 문자를 빼고 할 동작을 지정해주는 것이다.

>>> print("Hello") ; print("Python")
Hello
Python

위와 같이 자동으로 줄바꿈 되는 개행 문자를

>>> print("Hello", end = '')
>>> print("Python")
Hello Python

end에 공백('')을 넣어 다음 print문을 이어서 출력할 수 있다.

profile
시작

0개의 댓글