본문으로 바로가기

Python #3 (기본 문법 - 제어문)

category Python 2020. 7. 24. 14:52

안녕하세요 문쑹입니다 :) 이번 시간은 제어문에 관하여 포스팅을 해보겠습니다!!!

 

먼저, 제어문이란 프로그램의 실행여부, 순서, 방식을 제어하는 문장입니다. 파이썬도 다른 언어들과 같이 동일하게 제어문이 있지만 같은 점도 있고 다른 점도 몇 가지가 있습니다.

 

if문

파이썬에서 if문은 영어 뜻 그대로 '만약 지정한 조건에 맞아 떨어지면 지정한 코드를 실행' 이라는 의미를 가지고 있습니다.

 

아래의 예제는 if, else, elif 문 설명을 위한 예제입니다.

#if문
a = 23
if a < 50:			#if문을 선언
	print('50보다 작습니다')	#if문 조건이 맞으면 출력

#if else문
if a < 20:
	print('20보다 작습니다')
else:
	print('20보다 큽니다')

#elif문
age = int(intput('현재 나이를 입력하세요 : '))	#사용자가 입력한 값을 정수로 리턴
if age < 10:
	print('유년층 입니다.')
elif age < 20:
	print('10대 입니다.')
elif age < 30:
	print('20대 입니다.')
elif age < 40:
	print('30대 입니다.')
else:
	print('장년층 입니다.')

위의 예제를 살펴보면 이전에 배웠던 C#과는 조금 다른 문법입니다. 먼저 다른 언어들은 중괄호를 사용하여 블록을 구분하지만 파이썬들여쓰기를 통해서 블록을 구분하는 독특한 문법입니다. 그리고 대부분의 언어에서는 else if문으로 사용이 되지만 파이썬에서는 elif문으로 사용하였습니다.

 

for문

특정 코드를 지정한 횟수만큼 반복하는 문장입니다. 반복하는 기준은 변수의 크기나 숫자, 문자열의 길이 등 다양한 기준이 사용될 수 있습니다.

 

아래의 예제는 for문을 다양한 형태로 선언한 예제입니다.

for i in range(0, 5, 1):		#for문 선언 변수 i의 초기값은 0이고 범위는 5이고 1씩 증가
	print(i)			#for문 조건이 맞으면 반복되는 코드
print("-----")

for j in [1,3,5,7,9]:			#for문 처리할 목록에는 리스트 변수 선언
	print(j)
print("-----")

for k in range(0, 3, 1):
	print("취업할 수 있다!")

 

 

더 많은 예제를 살펴보겠습니다.

#for문을 이용하여 1~10까지의 합을 구하시오
sum = 0
for i in range(1, 11, 1):			#초기값 1, 증감값 1, 조건값 11로 for문 선언
	sum+=1					#i변수 값을 sum변수에 더함
print("sum : %d" % sum)				#1~10까지의 합을 출력
print("--------------")

#for문을 이용하여 1~10까지 식과 합을 구하시오
sum = 0						#sum변수를 0으로 초기화
for j in range(1,11,1):				#초기값은 1, 증감값은 1, 조건값 11로 for문 선언
	if j < 10:				#j가 10보다 작은 조건으로 if문 선언
		print("%d + " %j, end="")
	elif j==10:				#j가 10인 조건으로 if문 선언
		print("%d = " %j, end="")
	sum+=j
print("%d" %sum)				#1~10까지의 합을 출력

 

while문

조건부 반복문입니다. if문의 반복문 형태라고 할 수 있습니다. 실행방법은 조건을 지정하고 조건이 true일 때 실행되며, 조건이 false가 될 때까지 반복합니다. 만약, 조건이 false가 되지 않으면 무한반복이 발생하게 됩니다.

 

str = "꿈은 이루어 진다."	#반복하고 싶은 문자열 선언
i = 0
while i<3:			#while문 선언
	print(str)
	i = i + 1		#i값을 1씩 증가
print("-------------------")

#while문으로 입력한 숫자만큼 str을 반복 출력하시오.
i = int(input("반복 횟수 숫자를 입력하세요 : "))	#사용자가 입력한 값을 정수로 리턴
j=1
flag=True
while flag:
	j=j+1					#j갑 1씩 증가
	if i < j:				#j가 i보다 크다는 조건의 if문 선언
		flag = False			#flag 변수에 False값 대입
	print(str)

위의 코드는 while문을 선언하고 파이썬의 특징인 들여쓰기를 통해서 중괄호 없이 사용하는 블록까지 while문을 실행합니다. while문을 선언하고 조건을 boolean 타입의 변수로 지정했습니다.

 

break문

반복문을 종료시키는 명령어입니다. 반복문에 break를 기술할 경우 해당 반복문 코드는 실행되지 않고 반복문을 빠져 나오게 됩니다.

 

아래의 예제는 for문과 while문에 break를 사용하여 반복문을 종료하는 예제입니다.

#for문과 break문을 이용하여 1~20까지 합이 100보다 가장 가깝고 작은 합을 구하시오.
sum, i = 0, 0				#sum과 i에 변수를 각각선언
for i in range(1, 20, 1):		#초기값이 1이고 증감값이 1이면 19까지 반복
	sum += i
	if sum > 100:
		break;			#break 뒤에 ;(세미콜론) 사용
sum -= i				#현재의 i값을 마이너스
print("%d" % sum)
print("------------")

#while문과 break문을 이용하여 입력한 1에서 숫자만큼 합을 구하시오.
sum , i =0, 0
j = int(input("숫자를 입력하세요 : "))	#사용자가 입력한 값을 정수로 리턴
while True:
	if i<j:
		i = i+1
		sum += i
	elif i==j:
		break
print("1에서 %d까지의 합은 %d입니다." %(j,sum))

 

간단한 예제로 4~7단까지 나오는 구구단을 for문을 이용해 만들어 보겠습니다.

sum , i , j = 0, 0, 0

for i in range(4, 8, 1):			#C#일때, for(int i=4; i<8; i++)과 같은 문법
	print("===== %d단 =====" % i)
	for j in range(1, 10, 1):		
		sum = i*j
		print("%d * %d = %d" % (i,j,sum))

 

다음 포스팅에서는 함수 및 클래스에 대하여 포스팅하겠습니다 :) 감사합니다!

Hasta Luego~!