파이썬 for문 1부터 100까지 더하기 - paisseon formun 1buteo 100kkaji deohagi

[파이썬/python] 반복문 - for 문(range 함수)

 이번 포스팅은 이전 포스팅에 이어 반복문에 대하여 알아보도록 하겠다. 이전 포스팅에서 알아본 while 문과 사용 방식이 거의 비슷하며 서로 대체하여 사용이 가능하다. 상황에 따라 개발자가 원하는 반복문(while, for)을 사용하면 되며, 일반적으로 for 문을 더 많이 사용한다. 

for 문

 위에서 설명하였듯이 for 문은 특정 코드를 조건에 따라 반복하기 위하여 사용된다. for 문의 기본적인 구조는 아래와 같다.

 while 문과 동일하게 들여 쓰기에 따라 for 문 하단의 실행될 블록이 결정된다. 
 for 문의 in 연산자는 in 뒤의 데이터가 있을 경우 True를 리턴하며, 변수는 반복에 따라 해당 데이터를 순차적으로 할당받게 된다. 더 이상 in 뒤의 데이터가 없을 경우 False를 리턴하며 for 문은 종료된다. 

 아직 리스트, 튜플에 대해서는 알아보지 않았기 때문에 사용하는 방법만 간단히 알아보고, 리스트, 튜플 등에 대한 포스팅에서 자세하게 알아보도록 하겠다.

list = [1, 2, 3, 4] for i in list: print(i) tuple = ('a', 'b', 'c', 'd') for i in tuple: print(i)

 다음은 이번 포스팅의 목적인 range 함수를 이용하여 for 문을 사용하는 방법에 대해서 알아보도록 하겠다. range 함수는 파이썬의 내장함수이며 숫자 리스트를 자동으로 만들어주는 함수이다.
 range 함수는 매개변수에 따라 크게 3가지 방식으로 사용이 가능하다. 우선 하나의 매개변수를 갖는 range 함수를 이용한 for 문의 예제를 알아보도록 하자.

for i in range(10) : # 0 ~ 9까지 반복 print('i = ', i)

 range 함수의 매개변수가 1개일 경우 초깃값이 0부터 시작하여 끝 번호는 해당 숫자보다 하나 적은 수까지 1씩 증가하면서 데이터를 저장하는 객체가 생성된다. 즉, range(10)은 0 ~ 9까지 데이터를 저장하게 되며 for ~ in에 의해 하나씩 반복되면서 변수에 데이터가 할당된다.

 다음은 매개변수가 2개인 경우에 대해서 알아보도록 하자.

for i in range(1, 10) : print('i = ', i)

 range 함수의 첫 번째 매개변수는 시작번호를 의미하며, 두 번째 매개변수는 끝번호를 의미한다. 이때 끝번호는 매개변수가 한 개일 경우와 같이 끝번호 보다 하나 적은 수까지 1씩 증가하며 객체에 저장된다. 즉, range(1, 10)은 1 ~ 9까지 데이터를 저장하며 for ~ in에 의해 하나씩 반복되며 변수에 데이터가 할당된다.

 다음은 매개변수가 3개인 경우에 대해서 알아보도록 하자.

for i in range(1, 10, 1): print('i = ', i) print("=" * 20) for i in range(1, 10, 2): print('i = ', i)

 매개변수의 첫 번째 및 두 번째는 매개변수가 두 개일 경우와 같다. 세 번째 매개변수는 증감을 의미하며 1씩 증가시키거나 2씩 증가시키는 것을 결정한다.(-를 이용하여 감소도 가능하다.) 즉, range(1, 10, 2)는 1부터 9까지 2씩 증가된 데이터를 for ~ in에 의해 데이터를 순차적으로 변수에 할당하게 된다. 

 다음은 while 문에서 알아본 몇몇 예제들을 for 문을 이용하여 작성해보도록 하자.
 우선 for 문을 이용하여 1부터 10까지의 합계를 구해보면 아래의 코드와 같다.

sum = 0 # 초기값 for i in range(1, 11) : # 1 ~ 10까지 반복 sum += i # sum에 i값 누적 print(sum)

 다음은 for 문 내부에 조건문을 추가하여 1~100까지의 짝수 및 홀수의 합계를 구하는 코드는 아래와 같다.

even = odd = 0 # 초기값 for i in range(1, 101): # 1 ~ 100까지 반복 if i % 2 == 0: # i가 짝수일 경우 even += i else: # i가 홀수일 경우 odd += i print('짝수 합 : ', even) print('홀수 합 : ', odd)

 물론 위의 내용은 for 문을 두 번 사용해서도 작성이 가능하다.

even = odd = 0 # 초기값 for i in range(0, 101, 2): # 0 ~ 100까지 2씩 증가(짝수) even += i for i in range(1, 101, 2): # 1 ~ 100까지 2씩 증가(홀수) odd += i print('짝수 합 :', even) print('홀수 합 :', odd)

 다음은 for 문 내부에 for 문을 중첩하여 사용하여 구구단을 출력하는 예제를 알아보자.

for i in range(2, 10): # 2 ~ 9 까지 반복 print(' [', i, '단]') for j in range(1, 10): # 1 ~ 9 까지 반복 print('%d * %d = %d' % (i, j, i * j)) print()

 while 문과 비교하였을 때 초기값, 끝번호, 증감값이 있기 때문에 더 직관적으로 코드의 이해가 가능하고 작성할 수 있다는 것을 알 수 있다. 개발자의 판단에 따라 편리하고 적절할 반복문을 사용하면 된다.

 다음 포스팅에서는 보조 제어문에 대해서 알아보도록 하겠다.

 스타트 파이썬 : 반복문(1)

 Python에서 사용하는 반복문과 반복문을 빠져가가는 것에 대해 공부해보도록 하겠습니다.

1. 반복문이란

 반복문은 코드를 작성하여 같은 블록을 계속해서 반복해서 작업하게 하는데 사용합니다. 반복문에는 for문과 while문 두 종류가 있습니다.

print('안녕하세요') print('안녕하세요') print('안녕하세요') print('안녕하세요') print('안녕하세요')for i in range(5): print('안녕하세요')

 출력창에 '안녕하세요'라는 글을 5번 출력하게 하기 위해서는 위와 같이 다섯 번 print() 문을 사용해도 되지만 반복문을 이용하면 간단하게 5번 출력이 가능합니다.

2. for문

 for은 '~하는 동안'이라는 의미를 가지며 for문은 주어진 범위에서 문장들을 반복 수행하도록 도와줍니다.

#2.예제 sum = 0 for i in range(1,11) : sum = sum + i print('i의 값 : %d => 합계 : %d'%(i,sum))
2. 예제 결과값

 1에서 10까지 수를 모두 더하는 for문 코드를 작성해보았습니다. 우선 sum 변수에 초기값(0)을 넣어줍니다. 그다음 for 문을 총 10번 반복시키기 위해 반복 범위를 (1, 11)로 잡습니다. 여기서 범위를 정할 때는 range(처음 값, 마지막 값 + 1) 형태로 잡아주셔야 합니다.

2.1 range() 함수 활용

#2.1 예제 for i in range(10): print(i, end = ' ') # end = ' ' 사용으로 결과값들을 한줄로 이어붙여줌 print() # sep은 한 print안에 나타나는 값들 사이 연결을 나타냄 for i in range(1,11): print(i, end = ' ') print('\n') # \n : 줄바꿈 for i in range(1,10,2): # 반복되는 값이 2씩 증가 print(i,end = ' ') print() for i in range(20,2,-2): # 반복되는 값이 2씩 감소 print(i,end = ' ')
2.1 예제 결과값

 range() 함수를 사용하는 4가지 방법을 예제로 표현하였습니다. 여기서 주의할 점은 range(시작값, 종료 값)에서 시작 값을 따로 지정해주지 않으면 0부터 시작하고 종료값은 실제로 결과창에 출력될 때 종료 값 - 1 만큼의 범위에서 출력됩니다.

# 2.1.1 예제 sum = 0 for i in range(100,301,5): sum = sum + i print('100에서 300까지의 정수 중 5의 배수의 합 : %d'%sum)
2.1.1 예제 결과

 range() 함수를 이용하여 시작 값과 종료 값을 지정해준 다음 5의 배수의 합을 더하기 위해 증가폭을 5로 설정해주었습니다. 또한 전체 합을 저장해 줄 변수를 지정해주기 위해 sum을 처음에 초기값(0) 지정도 해주었습니다. 여기서 헷갈리기 쉬운 종료 값은 301로 (300까지니까 300+1) 지정해주어야 합니다.

#2.1.2 예제 sum = 0 for i in range(300,901): if i % 3 != 0: sum = sum + i print('300에서 900까지의 정수 중 3의 배수가 아닌 값들의 합 : %d'%sum)
2.1.2 예제 결과

 range() 함수를 이용하여 범위를 300에서 900까지로 지정한 다음 3의 배수가 아닌 값들만 골라내기 위해 조건문인 if문을 사용해줍니다. 여기서 3의 배수가 아닌 값들만 빼오기 위한 조건으로 나머지가 3이 아닌 값들을 조건으로 걸어줍니다 ( != 는 같지 않다는 기호입니다). 그다음 조건에 걸리는 수만 계속해서 더해주고 최종 값을 결과창에 출력해줍니다.

2.2 문자열 처리

#2.2 예제 word = input('영어 문장을 입력하세요 : ') print('\n') for x in word : print(x) # end를 따로 지정해주지 않았기 때문에 하나씩만 출력됩니다
2.2 예제 결과

 input() 함수를 통해 영어문장을 입력받고 for 문을 이용하여 입력받은 문장을 한 단어씩 출력하는 코드입니다.

# 2.2.1 예제 number = input('하이픈(-)을 포함한 휴대폰 전화를 입력하세요 : ') for x in number : if x != '-' : print(x,end='')
2.2.1 예제 결과

 문자열을 사용한 for문에 앞에서 배운 if문을 같이 연결시켜 코드를 작성하였습니다. 결과값을 보기 쉽게 print()문에 end = ''을 사용하였습니다.

2.3 환산표 만들기

# 2.3 예제 # 화씨온도 = 섭씨온도 * 9/5 + 32 print('-' * 30) print('%7s \t %7s'%('섭씨','화씨')) #\t : tap (띄어쓰기) print('-' * 30) for c in range(-20,31,5) : # c:섭씨, f:화씨 f = c * 9/5 + 32 print('%8d \t %8.1f'%(c,f)) print('-' * 30)
2.3 에제 결과

 화씨온도와 섭씨온도를 구하는 식을 가지고 for문을 사용하여 코드를 작성하였습니다. 여기서 \t 은 tap을 한 것만큼 띄어쓰기를 해주어 출력창에 글씨끼리 보기 좋게 만들어줍니다.

코드 의미
\n 줄바꿈
\t
\\ 역 슬래시(\) 자체를 출력
\' 단 따옴표(') 출력
\" 쌍 따옴표(") 출력

 \를 사용한 코드를 이스케이프 코드라고 합니다. 이 코드들은 출력할 때 자주 사용하므로 알아놓으시면 좋을 것 같습니다. 특히 줄 바꿈과 탭 같은 경우 출력 창을 보기 좋게 만들어주어 자주 사용합니다.

2.4 구구단 표 만들기

# 2.4예제 a = 2 for b in range(1,10) : c = a * b print('%d x %d = %d'%(a,b,c))
2.4 예제 결과

 for 문을 이용하여 구구단 표를 만들어 주었습니다. 간단하게 연속되는 수인 2는 a 변수에 지정해주고 그 이후 곱해지는 수는 range() 에 범위를 지정해 줍니다. 곱셈의 결과는 새로운 변수 c에 저장해 주고 결과창에 출력해줄때 정수형 포맷팅 %d를 이용해줍니다.

# 2.4.1 예제 print('-' * 15) for a in range(2,10) : for b in range(1,10) : c = a * b print('%d x %d = %d'%(a,b,c)) print('-' * 15)
2.4.1 예제 결과

 이 예제는 이중 for문을 사용하여 코드를 작성하였습니다. 2단, 3단과 같이 9번씩 반복되는 부분을 첫 번째 for문에 9번 모두 반복해줘야 하는 x1, x2 ... 는 두 번째 for문에 넣어주었습니다.

다음 시간에는 다른 반복문인 while 문에 대해 공부해보도록 하겠습니다. 끝까지 봐주셔서 감사합니다 :)

'Python > 스타트파이썬' 카테고리의 다른 글

[스타트파이썬] 리스트 : list, append, remove  (0) [스타트파이썬] 반복문(2) : while문, break  (0) [스타트파이썬] 조건문(2) : if ~, if ~ else ~, if ~ elif ~ else ~, 중첩문  (0) [스타트파이썬] 조건문(1) : if, 비교 연산자, 논리 연산자  (0) [스타트파이썬] 파이썬의 기본 문법 : 변수,숫자,문자,입출력,주석  (5)
2019.10.08
2019.10.07
2019.10.06
2019.10.06
2019.10.06

Toplist

최신 우편물

태그