스토리지

[07.14] 파이썬 2일차 - 반복문 본문

Python

[07.14] 파이썬 2일차 - 반복문

ljw4104 2021. 7. 14. 01:18

1. for문

for 반복변수 in 범위:
    동작

 

예제 1

for x in range(10):
    print(x)

0,1,2,3,...,8,9 가 결과로 나온다. 여기서 알 수 있는 점이 몇 개 있다.

  1. range(x) 함수는 0≤Number<x 의 범위를 나타낸다. 즉 range(10)이면 0부터 9까지이다.
  2. print()함수는 자동개행이다.
  3. 자동개행을 피하기 위해서 print(x, end = ' ')라고 적으면 된다.

예제 2: 1~10까지의 합 구하기

sum = 0
for x in range(1, 11):
    sum += x

print(sum)

range함수에 인자가 두 개 들어갈 때, 시작위치를 정할 수 있다.

여기서 range(1,11)은 1부터 10까지를 의미한다.

 

for x in range(1, 11, 2):
    print(x, end=' ')

다음의 for문은 c계열 언어로 바꾸었을때 다음과 같이 표현된다.

for(int i = 1; i < 11; i += 2)
{
    std::cout << i << " ";
}

range함수의 3번째 인자는 증감을 결정한다.

 

 

예제 3: 1~100까지의 정수 중에서 3의 배수의 합을 구하기

sum = 0

for x in range(1,101):
    if x % 3 == 0:
        sum += x

print('1부터 100까지의 3의 배수의 합 : %d' % sum)

 

예제 4: -20도에서 30도(5도씩 증가)의 섭씨 온도를 화씨 온도로 환산하는 표 만들기

화씨 온도 = 섭씨 온도 * 9/5 + 32
for x in range(-20, 31, 5):
    f = x * 9 / 5 + 32
    print('%4d %.2f' %(x,f))

%가 여러개 있을 때, %뒤에 괄호로 묶어서 처리.

 

이중 for문

예제 5: 2단부터 9단까지 구구단 출력

for i in range(2, 10):
    for j in range(1, 10):
        print('%d x %d = %d' % (i, j, i*j))

 

 

while문

while 조건문:
    수행문

 

예제 6: 200~600의 수 중 3의 배수가 아닌 수를 출력하되, 한 줄에 8개씩 출력.

count = 0
for i in range(200, 601):
    if i % 3 != 0:
        print('%d' %i, end=' ')
        count += 1
    if count % 8 == 0:
        print()

* 파이썬에는 증감연산자가 존재하지 않는다 (++나 --). 그래서 count++ 가 에러가 나서 한참을 찾았다...

 

예제 7: 문장 역순으로 출력

1. while문 사용

sentense = input('문장을 입력하세요: ')
i = len(sentense) - 1

while i >= 0:
    if sentense[i] == ' ':
        print('-', end='')
    else:
        print('%s' %sentense[i], end='')
    i -= 1

2. for문 사용

sentense = input('문장을 입력하세요: ')

for i in range(len(sentense)-1, -1, -1):
    if sentense[i] == ' ':
        print('-', end='')
    else:
        print('%s'%sentense[i], end='')

여느 언어처럼 break 를 사용할 수 있다.

Comments