본문 바로가기

교육/[Codeit] 프로그래밍 기초 in Python

range 함수

반응형

# for 반복문 사용해서 1부터 10까지 출력하는 프로그램 만들어보자
# for 문에 쓰일 변수 이름은 i 라고 하자
for i in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
print(i) # 수행 부분
# 1에서 100까지 쓰려면?!

# range 함수 가 해결해 준다.
# 파라미터를 1개 쓰는 함수, 2개 쓰는 함수, 3개 쓰는 함수가 있다
# ex) range()
# range( , )
# range( , , )

# 파라미터 2개 버전
for i in range(start, stop):
print(i)
# start 부터 stop-1 까지의 범위

# 파라미터 1개 버전
for i in range(stop):
print(i)
# 0부터 stop-1 까지의 범위

#파라미터 3개 버전
for i in range(start, stop, step):
print(i)
#start부터 stop-1까지의 범위, 간격 step
# ex) for i in ragne(3, 17, 3):
# print(i)
# 3
# 6
# 9
# 12
# 15


range 함수의 장점
간편함
깔끔함
메모리 효율성

 

 

실습문제

numbers라는 리스트가 주어졌습니다.

for문과 range 함수를 사용하여, numbers의 인덱스와 원소를 출력해 보세요.

numbers = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31]

# 인덱스와 원소 출력
# 코드를 입력하세요.
실행하면 콘솔에 아래와 같이 출력됩니다.

0 2
1 3
2 5
3 7
4 11
5 13
6 17
7 19
8 23
9 29
10 31

 

 

과제 해설
리스트의 길이가 20이라고 가정하면, 해당 리스트의 인덱스 목록은 range(20)으로 받아올 수 있습니다. 리스트 numbers의 인덱스 목록을 받아오려면 range(len(numbers))를 하면 되겠죠?

우선 인덱스만 순서대로 출력해 봅시다.

for i in range(len(numbers)):
print(i)
인덱스 i에 있는 원소를 받아오려면 numbers[i]를 하면 되는데요. 그러면 inumbers[i]를 함께 출력하면 되겠죠?

모범 답안
numbers = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31]

# 인덱스와 원소 출력
for i in range(len(numbers)):
print(i, numbers[i])

 

 

다른 답

numbers = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31]

# 인덱스와 원소 출력
# 코드를 입력하세요.
for index, value in enumerate(numbers):
print(index, value)

 

 

 

 

실습과제
"2의 n제곱"을 출력하는 프로그램을 만들려고 합니다.

코드를 실행하면 아래와 같이 2^0 = 1부터 2^10 = 1024까지 출력되어야 합니다.

2^0 = 1
2^1 = 2
2^2 = 4
.
.
.
2^10 = 1024

 

 

    과제 해설
"2의 0제곱"부터 "2의 10제곱"까지 출력하고 싶으니까, 0부터 10까지 반복문을 돌리면 되겠죠? 그러면 range(11)을 사용하면 됩니다.

for i in range(11):
혹시 잊으셨다면, 거듭제곱 연산은 파이썬에서 **인데요. 2 ** 3을 하면 "2의 3제곱"이기 때문에 8이 나오는 거죠.

이제 거듭 제곱 연산과 문자열 포맷팅을 사용하면 코드를 완성할 수 있습니다.

모범 답안
for i in range(11):
    print("{}^{} = {}".format(2, i, 2 ** i))
2^0 = 1
2^1 = 2
2^2 = 4
.
.
.
2^10 = 1024

 

 

 

다른 답안

for i in range(11):
    print(f"2^{i}={2**i}")
    

728x90
반응형

'교육 > [Codeit] 프로그래밍 기초 in Python' 카테고리의 다른 글

피타고라스 삼조  (0) 2020.11.23
실습과제 구구단 만들기  (0) 2020.11.18
for 반복문  (0) 2020.11.18
리스트 꿀팁  (0) 2020.11.17
리스트 함수 활용하기  (0) 2020.11.17