[서초 AI 칼리지] - (3)

hi_rice·2025년 4월 26일

서초AI칼리지

목록 보기
3/4

반복문 - for문 기초

코드를 n 번 반복하고 싶다면 for문을 사용하면 된다.

여기서 주의할 점은 들여쓰기(indentation)
반복하는 줄들(for문 안에 넣을 코드)은 for문 만든 줄에 있는 들여쓰기 칸 수보다 많아야 하고, 같은 for문 아래에 있는 줄들의 들여쓰기 칸 수가 같아야 한다.

for i in range(5)
	print("Hello world!")

자료형 - range

range 자료형은 정수를 순서대로 반환할 수 있는 자료형이다.
range(n)으로 만든 객체는 0부터 n-1까지의 정수를 하나씩 반환하는 기능을 갖고 있다.
객체를 하나씩 반환하는 기능을 갖고 있는 자료형을 iterable 자료형이라고 부른다.

range()를 여러 방법으로 호출 할 수 있다.

  • range(start, end): start부터 end-1까지의 정수를 하나씩 반환한다.
range(1, 3)

>>> 1, 2
  • range(start, end, step): start부터 end-1까지의 정수를 step씩 증가시키면서 하나씩 반환한다.
range(1, 6, 2)

>>> 1, 3, 5
  • start가 end 보다 크면 range 객체가 아무것도 반환하지 않아 아예 반복이 안 된다.
for i in range(1, 0)
  • 음수인 step도 가능하다.
range(10, 8, -1)

>>> 10, 9
  • step이 음수면 start가 end보다 커야 반복이 된다.

i는 그냥 변수 이름이다. 다른 이름을 적어도 상관 없다. for문이 돌아가면서 i라는 변수에 range 객체가 반환하는 요소를 대입시킨다.

반복문 안의 i의 값을 사용할 수 있다.

for i in range(5):
	print(i)
    
>>>
0
1
2
3
4

for문에서 꼭 range() 함수를 쓸 필요가 없다.
in 오른쪽에 있는 객체는 아무 iterable이면 된다.
문자열도 iterable 자료형이다.


반복문 - while문 기초

n번 돌리는 것보다 어떤 조건이 계속 충족되고 있을 때 코드를 계속 반복하고 싶을 수도 있다.
while condition: 으로 while문을 활용할 수 있다.

while문이 처음 들어갈 때, 그리고 반복할 코드의 실행이 끝날 때 condition의 진리값이 확인된다.

  • condition의 진리값이 True면 반복할 코드를 실행한다.
  • False면 멈추고 while문에서 탈출한다.

while문도 들여쓰기를 신경써야 한다.

# while 문

i = 5
while i > 0:
    print("Hello!")
    i -= 1

강의 문제 풀이

문제 | 자연수 n을 input() 함수로 받은 다음, 1부터 n까지 차례대로 출력하는 코드를 작성하세요.
예시 입력
5

예시 출력
1
2
3
4
5

답.

n = int(input())

for i in range(1, 6):
    print(i)

문제 | 35개의 파이썬 과제를 구현하고 있는데, “과제1.doc”, “과제2.doc” 등 “과제n.doc” 파일 이름 형식으로 제출해야 합니다. 35개의 과제 파일 이름을 출력하는 코드를 작성하세요.
입력
없음

출력
과제1.doc
과제2.doc
과제3.doc

(중략)
과제35.doc

답.

for i in range(1, 36):
    print(f"과제{i}.doc")

문제 | input() 함수로 두 자연수 n1, n2를 받은 후 n1 ** n2 거듭제곱 연산을 반복문으로 계산하는 코드를 구현하세요.
입출력 예시 (볼드체: 프롬프트 및 출력)
What is number 1? 2
What is number 2? 7
128

답.

n1 = int(input("What is number 1? "))
n2 = int(input("What is number 2? "))

print(n1**n2)

문제 | 입력된 숫자만큼 숫자 1, 2, 3이 반복되는 규칙적인 수열을 출력하세요.
입출력 예시 (볼드체: 프롬프트 및 출력)
What is n? 11
1
2
3
1
2
3
1
2
3
1
2

답.

n = int(input("What is n? "))

for i in range(n):
    print((i % 3)+1)

문제 | 문자열을 입력받은 후 거꾸로된 문자열을 출력하는 코드를 작성하세요.
입출력 예시 (볼드체: 프롬프트 및 출력)
Give me a string: hello world
dlrow olleh

답.

string = input("Give me a string: ")

print(string[::-1])

문제 | nn단을 출력하는 반복문 코드를 작성하세요.
여기서 nn단이란 구구단에서 1 x 1에서 n x n까지만 나타낸 것입니다.

입출력 예시 (볼드체: 프롬프트 및 출력)
What is n? 4
1 X 1 = 1
1 X 2 = 2
1 X 3 = 3
1 X 4 = 4
2 X 1 = 2
2 X 2 = 4
2 X 3 = 6
2 X 4 = 8
3 X 1 = 3
3 X 2 = 6
3 X 3 = 9
3 X 4 = 12
4 X 1 = 4
4 X 2 = 8
4 X 3 = 12
4 X 4 = 16

답.

n = int(input("What is n? "))

for i in range(1, n + 1):       # 1단, 2단, ... n단
    for j in range(1, n + 1):   # 1부터 n까지 곱하기
        print(f"{i} X {j} = {i * j}")

문제 | input 함수로 자연수를 받은 다음에 그 자연수에 해당되는 크기의 삼각형을 그리세요.
입출력 예시 (볼드체: 프롬프트)
What is n? 5

    *
   * *
  *   *
 *     *
*********

답.

n = int(input("What is n? "))

for i in range(1, n):  # 위쪽 (1 ~ n-1줄)
    print(' ' * (n - i), end='')  # 왼쪽 공백
    if i == 1:
        print('*')  # 첫 줄은 별 하나만
    else:
        print('*' + ' ' * (2 * i - 3) + '*')  # 별-공백-별

print('*' * (2 * n - 1))  # 마지막 줄

문제 | 자연수 n을 input() 함수로 받은 다음, 반복문을 사용하여 1부터 입력값(n)까지 2씩 증가하며 숫자를 출력하세요.
예시 입력
5

예시 출력
1
3
5

답.

# 사용자 입력 받기
n = int(input("양의 정수를 입력하세요: "))

# TODO : 1부터 입력된 숫자까지 2 간격으로 출력하세요.
for i in range(1, n+1, 2):
    print(i)

문제 | 1부터 사용자가 입력한 양의 정수까지 숫자를 세면서, 현재 숫자와 누적 합을 출력하는 프로그램을 작성하세요.
예시 입력
5

예시 출력
현재 숫자: 1, 누적 합계: 1

현재 숫자: 2, 누적 합계: 3

현재 숫자: 3, 누적 합계: 6

현재 숫자: 4, 누적 합계: 10

현재 숫자: 5, 누적 합계: 15

답.

# Step 1: 사용자 입력 받기
n = int(input("양의 정수를 입력하세요: "))

# Step 2: 변수 초기화
i = 1
total = 0

# Step 3: while문 작성
while i <= n:
    total += i  # 누적 합계에 현재 숫자 더하기
    print(f"현재 숫자: {i}, 누적 합계: {total}")
    i += 1  # 다음 숫자로 이동

0개의 댓글