chipkkang9's story

[CodingDojang] Python 반복문 사용하기 본문

Language/Python

[CodingDojang] Python 반복문 사용하기

chipkkang 2022. 2. 22. 04:27

for문 사용하기

range 사용하기

C언어에서는 for문을 아래와 같이 사용해준다.

for(int i = 0; i < N; i++){
    실행할 문장;
}

이와 같은 동작을 하는 코드를 아래와 같이 작성해줄 수 있다.

for i in range(100):
    실행할 문장

range를 이용하는 for문은 기존에 작성했던 range문의 이용법을 따라 이용하면 된다.

  • for 변수 in range(시작, 끝):
>>> for i in range(5, 12):    # 5부터 11까지 반복
...     print('Hello, world!', i)
...
Hello, world! 5
Hello, world! 6
Hello, world! 7
Hello, world! 8
Hello, world! 9
Hello, world! 10
Hello, world! 11
  • for 변수 in range(시작, 끝, 증가폭):
>>> for i in range(0, 10, 2):    # 0부터 8까지 2씩 증가
...     print('Hello, world!', i)
...
Hello, world! 0
Hello, world! 2
Hello, world! 4
Hello, world! 6
Hello, world! 8

이 밖에도 for문의 결합된 range문을 거꾸로 돌리는 방법이 있다.

  • for 변수 in reversed(range(횟수))
  • for 변수 in reversed(range(시작, 끝))
  • for 변수 in reversed(range(시작, 끝, 증가폭))
>>> for i in reversed(range(10)):    
...     print('Hello, world!', i)    # 9부터 0까지 10번 반복
...
Hello, world! 9
Hello, world! 8
Hello, world! 7
... (생략)
Hello, world! 1
Hello, world! 0

그리고 range문 안에 있는 횟수를 지정하는 위치에 input()를 통해서 원하는 횟수를 받아주고 실행하면 입력한 횟수대로 명령어를 반복할 수 있다.

 

이때, input()으로 받는 숫자는 int(input())의 형식으로 받아야한다.

시퀀스 객체를 반복하기

리스트의 객체 반복하기

>>> a = [10, 20, 30, 40, 50]
>>> for i in a:
...     print(i)
...
10
20
30
40
50

튜플의 객체 반복하기

>>> fruits = ('apple', 'orange', 'grape')
>>> for fruit in fruits:
...     print(fruit)
...
apple
orange
grape

문자열 객체 반복하기

>>> for letter in 'Python':
...     print(letter, end=' ')
...
P y t h o n

그러면 앞서 언급한 reversed라는 명령어를 사용해주면 어떻게 될까?

당연히 출력할 수 있는 반복 시퀀스 객체가 거꾸로 출력될 것이다.

while 문 사용하기

while문의 경우에는 C언어와 파이썬이 크게 다르지 않다.

마찬가지로 초기식, 조건식, 변화식으로 이루어진다.

i = 0                     # 초기식
while i < 100:            # while 조건식
     print('Hello, world!')    # 반복할 코드
     i += 1                    # 변화식

이 이상의 사용 방법은 for문과, C언어에서의 문법과 매우 유사하기 때문에 언급하지는 않겠다.

random 모듈 사용하기

파이썬에서 난수를 생성하려면 ramdom 모듈이 필요하다.

  • import 모듈

이렇게 코드를 작성해주면 파이썬의 모듈을 호출할 수 있다.

random.random() 함수는 난수를 생성하는 함수이고,

>>> random.random()
0.002383731799935007
>>> random.random()
0.3297914484498006
>>> random.random()
0.6923390064955324

random.randint(a, b) 함수는 a와 b 사이의 난수를 생성하는 함수이다.

>>> random.randint(1, 6)
4
>>> random.randint(1, 6)
1
>>> random.randint(1, 6)
5

또한 random.choice() 함수는 시퀀스 객체에서 요소를 무작위로 선택하는 함수이다.

>>> dice = [1, 2, 3, 4, 5, 6]
>>> random.choice(dice)
1
>>> random.choice(dice)
4
>>> random.choice(dice)
3

while문의 장점은 무한 루프를 만들어 사용할 수 있다는 것인데, 이전 포스팅에서 언급한 참과 거짓을 적절히 이용해서 while문을 이용해주면 된다.

break, continue문 사용하기

무한 루프를 사용한다면 당연히 그 중단점을 걸어주는 코드도 넣어줄 필요가 있을 것이다.

 

파이썬에도 C언어와 마찬가지로 break문을 통해 제어흐름을 중단할 수 있고, continue문을 이용하여 제어흐름을 유지하며 코드 실행만 건너뛰는 역할을 하게 할 수 있다.

i = 0
while True:    # 무한 루프
    print(i)
    i += 1          # i를 1씩 증가시킴
    if i == 100:    # i가 100일 때
        break       # 반복문을 끝냄. while의 제어흐름을 벗어남
for i in range(100):       # 0부터 99까지 증가하면서 100번 반복
    if i % 2 == 0:         # i를 2로 나누었을 때 나머지가 0면 짝수
        continue           # 아래 코드를 실행하지 않고 건너뜀
    print(i)
Comments