← 파이썬 강의 목록으로
🌱
기초 (Basic)
if / elif / else · 들여쓰기 · 삼항 · Truthy/Falsy · for · range · while · break · continue · 중첩 · 리스트 · 슬라이싱 · 메서드 · 튜플 · 언패킹

4~6주차 — 조건문 · 반복문 · 리스트와 튜플

조건에 따라 다른 코드를 실행시키는 if/elif/else, 들여쓰기 규칙(4칸 공백), 중첩 조건문, 삼항 표현식, 그리고 진리값(Truthy/Falsy) 개념을 익힙니다. for + range() 로 정해진 횟수, while 로 조건이 참인 동안, break/continue 로 흐름 제어, 그리고 중첩 반복문으로 구구단·별 찍기 같은 2차원 패턴을 출력합니다. 여러 값을 순서대로 담는 리스트와 변경 불가능한 튜플, 슬라이싱 [start:stop:step], 자주 쓰는 메서드(append/pop/sort), 그리고 튜플 언패킹을 익힙니다.

조건문if/elif/else들여쓰기Truthyforwhilerangebreakcontinuelisttupleslicingenumerate
소요 시간
⏱ 2시간 + 2시간 + 2시간
난이도
📊 완전 초보
선수 조건
🎯 3주차
결과물
여러 분기 의사결정 프로그램(학점·윤년·가위바위보) / 구구단·별 찍기·숫자 맞추기 게임을 직접 구현 / 점수 통계·로또 생성기 같은 리스트 활용 프로그램

이 강의에서 배우는 것

  • 1if, elif, else 의 흐름을 이해한다
  • 2들여쓰기(indentation) 규칙을 지킨다
  • 3중첩 조건문을 사용한다
  • 4진리값(Truthy / Falsy)의 개념을 안다
  • 5for 와 range() 로 정해진 횟수만큼 반복한다
  • 6while 로 조건이 참인 동안 반복한다
  • 7break, continue 로 흐름을 제어한다
  • 8중첩 반복문을 이해한다
  • 9리스트 생성·인덱싱·슬라이싱을 자유롭게 한다
  • 10자주 쓰는 리스트 메서드(append/pop/sort 등)를 활용한다
  • 11튜플의 특징과 언패킹을 이해한다
  • 12리스트 vs 튜플 의 차이와 용도를 안다

4주차 — 조건문

조건에 따라 다른 코드를 실행시키는 if/elif/else, 들여쓰기 규칙(4칸 공백), 중첩 조건문, 삼항 표현식, 그리고 진리값(Truthy/Falsy) 개념을 익힙니다.

1. if 문

조건이 True일 때만 들여쓰기 된 블록이 실행됩니다.

python
score = 85
if score >= 60:
    print("합격!")

들여쓰기는 4칸 공백 이 표준. VS Code는 Tab을 4칸으로 자동 변환.

2. if-else

python
score = 50
if score >= 60:
    print("합격")
else:
    print("불합격")

3. if-elif-else

여러 조건을 순서대로 검사. 처음으로 True 인 분기만 실행되고 나머지는 건너뜀.

python
score = 85
if score >= 90:
    print("A")
elif score >= 80:
    print("B")
elif score >= 70:
    print("C")
else:
    print("F")

4. 중첩 조건문

조건문 안에 조건문. 너무 깊어지면 가독성 떨어지므로 2~3단계까지만.

python
age = 17
if age >= 18:
    if age >= 65:
        print("경로 우대")
    else:
        print("성인")
else:
    print("미성년자")

5. 조건 표현식 (삼항 연산자)

한 줄로 분기를 처리. 간단한 경우에만 사용.

python
n = 7
result = "짝수" if n % 2 == 0 else "홀수"
print(result)   # 홀수

6. 진리값(Truthy / Falsy)

if 조건: 에서 0, "", [], None, False 는 모두 거짓 처리됩니다.

python
if "":
    print("실행 안 됨")
if 0:
    print("실행 안 됨")
if "hello":
    print("실행됨")

7. 자주 하는 실수

1) 들여쓰기를 빠뜨리거나 섞음

python
if x > 0:
print("양수")   # IndentationError

→ 반드시 들여쓰기. 탭과 공백을 섞어 쓰면 보이지 않는 오류.

2) == 대신 =

python
if x = 5:        # SyntaxError
if x == 5:       # 정상

3) elif 대신 else if

파이썬은 elif 만 지원합니다. (Java/C 의 else if 와 다름)

4) 모든 분기에 if 만 사용

python
if score >= 90:  # A
    print("A")
if score >= 80:  # 80~89면 A, B 둘 다 출력됨!
    print("B")

→ 배타적 분기는 elif 사용.

8. FAQ

Q1. 조건이 여러 개 묶이는 경우는?

and, or 사용. if 0 < x < 100: 같은 연쇄 비교도 가능 (파이썬 특유).

Q2. elif 가 몇 개까지 가능한가요?

제한 없음. 다만 5개 이상 길어지면 딕셔너리 매핑 등 다른 구조를 고려.

Q3. switch-case 문은 없나요?

Python 3.10+ 부터 match-case 가 추가됐습니다. 입문 단계에서는 if/elif 로 충분.

5주차 — 반복문

for + range() 로 정해진 횟수, while 로 조건이 참인 동안, break/continue 로 흐름 제어, 그리고 중첩 반복문으로 구구단·별 찍기 같은 2차원 패턴을 출력합니다.

1. for 반복문

range(시작, 끝, 간격) 으로 정수 시퀀스를 만들어 반복합니다. 끝값은 미포함.

python
for i in range(5):           # 0, 1, 2, 3, 4
    print(i)

for i in range(1, 11):       # 1 ~ 10
    print(i, end=" ")

for i in range(0, 10, 2):    # 0, 2, 4, 6, 8
    print(i)

리스트나 문자열 같은 시퀀스를 직접 순회할 수도 있습니다 (다음 주차).

2. while 반복문

조건이 True 인 동안 계속 실행. 반드시 종료 조건이 변해야 합니다.

python
n = 1
while n <= 5:
    print(n)
    n += 1   # 이게 없으면 무한 루프!

사용자 입력으로 종료 결정:

python
while True:
    cmd = input("명령(quit으로 종료): ")
    if cmd == "quit":
        break
    print(f"실행: {cmd}")

3. break 와 continue

  • break — 반복문 즉시 탈출
  • continue — 이번 반복 건너뛰고 다음으로
python
for i in range(1, 11):
    if i == 5:
        continue   # 5는 건너뛰기
    if i == 8:
        break      # 8에서 종료
    print(i, end=" ")   # 1 2 3 4 6 7

4. 중첩 반복문

반복문 안의 반복문. 구구단·표 출력에 자주 사용.

python
for i in range(2, 10):           # 2단~9단
    for j in range(1, 10):       # ×1 ~ ×9
        print(f"{i} × {j} = {i*j}")
    print()                      # 단 사이 공백

5. 자주 하는 실수

1) 무한 루프

python
n = 1
while n <= 5:
    print(n)
    # n += 1 빠뜨림 → 무한히 1 출력

→ Ctrl+C 로 강제 종료. 종료 조건이 변하는지 확인.

2) range(1, 10) 이 1~10이라고 착각

range(1, 10) 은 1~9 (10 미포함). 1~10 원하면 range(1, 11).

3) 들여쓰기 누락

python
for i in range(5):
print(i)   # IndentationError

4) break 가 모든 반복문을 빠져나간다고 오해

break 는 가장 가까운 반복문 하나만 빠져나갑니다. 다중 break은 플래그 변수 사용.

5) 반복 변수를 안에서 변경

python
for i in range(5):
    i = 100   # 다음 반복에서 다시 0,1,2... 됨

6. FAQ

Q1. for와 while 중 언제 뭘 쓰나요?

횟수가 정해져 있으면 for, 조건에 따라 끝나면 while. 사용자 입력 받기는 보통 while.

Q2. for ... else 문이 있다는데?

for 가 정상 종료(break 없이) 되면 else 가 실행됩니다. 입문 단계에서는 잘 안 씀.

Q3. 0부터 시작하는 이유는?

컴퓨터가 인덱스를 0부터 세는 관행. 사람에게 보여줄 땐 enumerate(seq, start=1) 로 1부터 시작 가능.

6주차 — 리스트와 튜플

여러 값을 순서대로 담는 리스트와 변경 불가능한 튜플, 슬라이싱 [start:stop:step], 자주 쓰는 메서드(append/pop/sort), 그리고 튜플 언패킹을 익힙니다.

1. 리스트

여러 값을 순서대로 담는 자료구조. 대괄호 [...].

python
fruits = ["사과", "바나나", "포도"]
print(fruits[0])    # 사과
print(fruits[-1])   # 포도 (음수 = 뒤에서)
print(len(fruits))  # 3

2. 슬라이싱

[시작:끝:간격]. 끝은 포함하지 않습니다.

python
nums = [10, 20, 30, 40, 50]
print(nums[1:4])     # [20, 30, 40]
print(nums[:3])      # [10, 20, 30]
print(nums[2:])      # [30, 40, 50]
print(nums[::-1])    # [50, 40, 30, 20, 10] (역순)
print(nums[::2])     # [10, 30, 50]

3. 자주 쓰는 메서드

메서드동작
append(x)끝에 추가
insert(i, x)i 위치에 삽입
pop() / pop(i)마지막 / i번째 제거하고 반환
remove(x)x 값 제거
sort()정렬 (제자리)
reverse()뒤집기 (제자리)
index(x)x의 위치
count(x)x의 개수
python
nums = [3, 1, 4, 1, 5]
nums.append(9)        # [3, 1, 4, 1, 5, 9]
nums.sort()           # [1, 1, 3, 4, 5, 9]
nums.reverse()        # [9, 5, 4, 3, 1, 1]
print(nums.count(1))  # 2

4. 순회와 enumerate

python
fruits = ["사과", "바나나", "포도"]

for fruit in fruits:
    print(fruit)

for i, fruit in enumerate(fruits, start=1):
    print(f"{i}번: {fruit}")

5. 튜플

리스트와 비슷하지만 변경 불가능(immutable). 소괄호 (...).

python
point = (10, 20)
x, y = point          # 언패킹
print(x, y)           # 10 20

# 튜플은 수정 불가
# point[0] = 5         # TypeError

6. 리스트 vs 튜플

리스트튜플
문법[...](...)
변경가능불가
용도자주 바뀌는 데이터고정 데이터 (좌표, RGB)
속도느림빠름

7. 자주 하는 실수

1) 인덱스 범위 초과

python
a = [1, 2, 3]
print(a[3])   # IndexError

→ 마지막은 a[-1] 또는 a[len(a)-1].

2) sort() 의 반환값을 변수에 할당

python
sorted_list = nums.sort()   # None! 제자리 정렬이라 반환값 없음

→ nums.sort() 후 nums 자체가 정렬됨. 새 리스트 원하면 sorted(nums).

3) 리스트 복사 함정

python
a = [1, 2, 3]
b = a          # 같은 리스트를 가리킴!
b.append(4)
print(a)       # [1, 2, 3, 4] — a도 바뀜

→ 복사하려면 b = a.copy() 또는 b = a[:].

4) 빈 튜플 만들기

() 는 빈 튜플. 하나짜리 튜플은 (5,) (콤마 필수). (5) 는 그냥 정수 5.

8. FAQ

Q1. 리스트에 다른 타입을 섞어도 되나요?

네. [1, "hi", True, [1,2]] 가능. 다만 같은 타입을 권장.

Q2. 슬라이스의 끝이 왜 미포함인가요?

range, 인덱스 등과 일관성을 위해. 길이 계산이 끝-시작 으로 자연스러움.

Q3. sort() 와 sorted() 의 차이는?

sort() 는 메서드, 원본 변경. sorted() 는 함수, 새 리스트 반환.

💻 예제 (examples)

실제로 실행해 결과를 확인할 수 있는 예제 코드입니다.

01_if_else.py— 기본 if/else
CODE
score = int(input("점수: "))

if score >= 60:
    print("합격!")
else:
    print("불합격...")
▶ 실행 결과
점수: 75
합격!
02_grade.py— if/elif/else 학점 판정
CODE
score = int(input("점수: "))

if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
elif score >= 60:
    grade = "D"
else:
    grade = "F"

print(f"학점: {grade}")
▶ 실행 결과
점수: 85
학점: B
03_nested.py— 중첩 조건문 (입장 조건 검사)
CODE
age = int(input("나이: "))
has_ticket = input("티켓 있음(y/n): ") == "y"

if age >= 18:
    if has_ticket:
        print("입장 가능")
    else:
        print("티켓을 구매하세요")
else:
    print("미성년자는 입장 불가")
▶ 실행 결과
나이: 25
티켓 있음(y/n): y
입장 가능
04_truthy.py— Truthy/Falsy 동작 확인
CODE
# 0, "", [], None, False는 모두 거짓 처리
values = [0, "", [], None, False, 1, "hi", [1, 2], True]

for v in values:
    if v:
        print(f"{v!r:>10}: Truthy")
    else:
        print(f"{v!r:>10}: Falsy")
▶ 실행 결과
         0: Falsy
        '': Falsy
        []: Falsy
      None: Falsy
     False: Falsy
         1: Truthy
      'hi': Truthy
    [1, 2]: Truthy
      True: Truthy
01_for_range.py— for + range 패턴 모음
CODE
# 0부터 4까지
for i in range(5):
    print(i, end=" ")
print()

# 1부터 10까지
for i in range(1, 11):
    print(i, end=" ")
print()

# 0부터 10까지 2씩 증가
for i in range(0, 11, 2):
    print(i, end=" ")
print()

# 합계 구하기
total = 0
for i in range(1, 101):
    total += i
print(f"1~100 합계: {total}")
▶ 실행 결과
0 1 2 3 4
1 2 3 4 5 6 7 8 9 10
0 2 4 6 8 10
1~100 합계: 5050
02_while.py— while 반복문 + 사용자 입력으로 종료
CODE
# 1~5 출력
n = 1
while n <= 5:
    print(n, end=" ")
    n += 1
print()

# 사용자 입력으로 종료
while True:
    cmd = input("명령(quit으로 종료): ")
    if cmd == "quit":
        print("종료합니다")
        break
    print(f"실행: {cmd}")
▶ 실행 결과
1 2 3 4 5
명령(quit으로 종료): hello
실행: hello
명령(quit으로 종료): test
실행: test
명령(quit으로 종료): quit
종료합니다
03_break_continue.py— break, continue + 짝수 찾기
CODE
# 1~10 중 5는 건너뛰고, 8에서 종료
for i in range(1, 11):
    if i == 5:
        continue
    if i == 8:
        break
    print(i, end=" ")
print()
# 출력: 1 2 3 4 6 7

# 첫 번째 짝수만 찾기
for n in [3, 7, 11, 4, 9]:
    if n % 2 == 0:
        print(f"첫 번째 짝수: {n}")
        break
▶ 실행 결과
1 2 3 4 6 7
첫 번째 짝수: 4
04_nested.py— 중첩 반복문으로 구구단
CODE
# 구구단 2~9단
for i in range(2, 10):
    print(f"--- {i}단 ---")
    for j in range(1, 10):
        print(f"{i} × {j} = {i*j}")
    print()
▶ 실행 결과
--- 2단 ---
2 × 1 = 2
2 × 2 = 4
... (생략)
2 × 9 = 18

--- 3단 ---
3 × 1 = 3
... (이하 동일)
01_list_basic.py— 리스트 생성·인덱싱
CODE
fruits = ["사과", "바나나", "포도"]
print(fruits)
print(fruits[0])      # 사과
print(fruits[-1])     # 포도
print(len(fruits))    # 3

fruits.append("딸기")
print(fruits)         # ['사과', '바나나', '포도', '딸기']
▶ 실행 결과
['사과', '바나나', '포도']
사과
포도
3
['사과', '바나나', '포도', '딸기']
02_slicing.py— 슬라이싱 [start:stop:step]
CODE
nums = [10, 20, 30, 40, 50]
print(nums[1:4])     # [20, 30, 40]
print(nums[:3])      # [10, 20, 30]
print(nums[2:])      # [30, 40, 50]
print(nums[::-1])    # 역순
print(nums[::2])     # 2칸씩
▶ 실행 결과
[20, 30, 40]
[10, 20, 30]
[30, 40, 50]
[50, 40, 30, 20, 10]
[10, 30, 50]
03_methods.py— append/insert/pop/sort/reverse
CODE
nums = [3, 1, 4, 1, 5]
nums.append(9)
print("append:", nums)

nums.insert(0, 100)
print("insert:", nums)

last = nums.pop()
print("pop:", last, nums)

nums.sort()
print("sort:", nums)

nums.reverse()
print("reverse:", nums)

print("count(1):", nums.count(1))
▶ 실행 결과
append: [3, 1, 4, 1, 5, 9]
insert: [100, 3, 1, 4, 1, 5, 9]
pop: 9 [100, 3, 1, 4, 1, 5]
sort: [1, 1, 3, 4, 5, 100]
reverse: [100, 5, 4, 3, 1, 1]
count(1): 2
04_tuple.py— 튜플과 언패킹
CODE
point = (10, 20)
x, y = point
print(x, y)

# 두 값 교환
a, b = 1, 2
a, b = b, a
print(a, b)

# 단일 요소 튜플은 콤마 필수
single = (5,)
print(type(single))    # <class 'tuple'>
print(type((5)))        # <class 'int'>
▶ 실행 결과
10 20
2 1
<class 'tuple'>
<class 'int'>

📝 과제 (exercises)

직접 풀어보고, 막힐 때 정답을 펼쳐 비교해보세요.

과제 1

학점 계산기

목표: 점수를 입력받아 학점(A/B/C/D/F)을 출력한다.

요구사항
  • input() 으로 점수 입력 (0~100)
  • if/elif/else 로 학점 판정 (A: 90+, B: 80+, C: 70+, D: 60+, F: 그 외)
  • 결과 출력
입출력 예시
점수: 85
학점: B
▶정답 코드 펼치기 / 접기
SOLUTION
score = int(input("점수: "))

if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
elif score >= 60:
    grade = "D"
else:
    grade = "F"

print(f"학점: {grade}")
▶ 실행 결과
점수: 85
학점: B
과제 2

윤년 판별기

목표: 연도를 입력받아 윤년인지 판별한다.

요구사항
  • input() 으로 연도 입력
  • 윤년 규칙: 4의 배수 + (100의 배수가 아니거나 400의 배수)
  • 결과 출력
💡 힌트

조건: (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)

입출력 예시
연도: 2024
2024은 윤년입니다.
▶정답 코드 펼치기 / 접기
SOLUTION
year = int(input("연도: "))

if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
    print(f"{year}은 윤년입니다.")
else:
    print(f"{year}은 평년입니다.")
▶ 실행 결과
연도: 2024
2024은 윤년입니다.
과제 3

가위바위보 (1회)

목표: 사용자와 컴퓨터가 가위바위보를 1회 겨룬 결과를 출력한다.

요구사항
  • 사용자 입력: 가위/바위/보
  • 컴퓨터는 random.choice 로 무작위 선택
  • 승/무/패 판정 후 출력
입출력 예시
가위/바위/보 중 선택: 가위
컴퓨터: 보
당신이 이겼습니다!
▶정답 코드 펼치기 / 접기
SOLUTION
import random

choices = ["가위", "바위", "보"]
user = input("가위/바위/보 중 선택: ")
computer = random.choice(choices)

print(f"컴퓨터: {computer}")

if user == computer:
    print("비겼습니다.")
elif (user == "가위" and computer == "보") or \
     (user == "바위" and computer == "가위") or \
     (user == "보" and computer == "바위"):
    print("당신이 이겼습니다!")
else:
    print("컴퓨터가 이겼습니다.")
▶ 실행 결과
가위/바위/보 중 선택: 가위
컴퓨터: 보
당신이 이겼습니다!
과제 4

구구단 (2~9단)

목표: 중첩 반복문으로 2단부터 9단까지 출력한다.

요구사항
  • 외부 for 로 단(2~9), 내부 for 로 곱하기 수(1~9)
  • 각 줄: "i × j = (결과)" 형식
  • 단 사이 빈 줄로 구분
입출력 예시
2 × 1 = 2
2 × 2 = 4
...
9 × 9 = 81
▶정답 코드 펼치기 / 접기
SOLUTION
for i in range(2, 10):
    for j in range(1, 10):
        print(f"{i} × {j} = {i*j}")
    print()
▶ 실행 결과
2 × 1 = 2
2 × 2 = 4
...
2 × 9 = 18

3 × 1 = 3
...
9 × 9 = 81
과제 5

별 찍기 (정삼각형 + 역삼각형)

목표: n 줄짜리 정삼각형과 역삼각형 별을 출력한다.

요구사항
  • n 을 입력 받기 (예: 5)
  • 정삼각형: 1, 2, 3, ..., n 개의 별
  • 역삼각형: n, n-1, ..., 1 개의 별
입출력 예시
높이: 4
*
**
***
****
****
***
**
*
▶정답 코드 펼치기 / 접기
SOLUTION
n = int(input("높이: "))

# 정삼각형
for i in range(1, n + 1):
    print("*" * i)

# 역삼각형
for i in range(n, 0, -1):
    print("*" * i)
▶ 실행 결과
높이: 4
*
**
***
****
****
***
**
*
과제 6

숫자 맞추기 게임

목표: 1~100 사이 무작위 숫자를 사용자가 맞출 때까지 ↑/↓ 힌트를 제공한다.

요구사항
  • random.randint(1, 100) 로 정답 생성
  • while True 로 반복 입력
  • 정답이 입력값보다 크면 "↑", 작으면 "↓", 같으면 종료 + 시도 횟수 표시
입출력 예시
숫자: 50
↑
숫자: 75
↓
숫자: 65
🎉 정답! (3번째 시도)
▶정답 코드 펼치기 / 접기
SOLUTION
import random

answer = random.randint(1, 100)
attempts = 0

while True:
    guess = int(input("숫자: "))
    attempts += 1
    if guess < answer:
        print("↑")
    elif guess > answer:
        print("↓")
    else:
        print(f"🎉 정답! ({attempts}번째 시도)")
        break
▶ 실행 결과
숫자: 50
↑
숫자: 75
↓
숫자: 65
🎉 정답! (3번째 시도)
과제 7

학생 점수 통계

목표: 5명의 점수를 리스트에 저장하고 총점·평균·최고·최저를 출력한다.

요구사항
  • 5명의 점수를 입력받아 리스트에 저장
  • 총점, 평균, 최고점, 최저점 출력
입출력 예시
1번 학생 점수: 85
2번 학생 점수: 92
3번 학생 점수: 78
4번 학생 점수: 88
5번 학생 점수: 95

총점: 438
평균: 87.6
최고점: 95
최저점: 78
▶정답 코드 펼치기 / 접기
SOLUTION
scores = []
for i in range(1, 6):
    s = int(input(f"{i}번 학생 점수: "))
    scores.append(s)

total = sum(scores)
avg = total / len(scores)
print()
print(f"총점: {total}")
print(f"평균: {avg:.1f}")
print(f"최고점: {max(scores)}")
print(f"최저점: {min(scores)}")
▶ 실행 결과
1번 학생 점수: 85
2번 학생 점수: 92
3번 학생 점수: 78
4번 학생 점수: 88
5번 학생 점수: 95

총점: 438
평균: 87.6
최고점: 95
최저점: 78
과제 8

로또 번호 생성기

목표: 1~45 중 중복 없이 6개를 뽑아 정렬해 출력한다.

요구사항
  • random.sample 사용
  • 결과는 오름차순 정렬
  • 도전: 5게임을 한 번에
입출력 예시
이번 주 로또 번호: [3, 14, 22, 28, 35, 41]
▶정답 코드 펼치기 / 접기
SOLUTION
import random

# 1게임
numbers = sorted(random.sample(range(1, 46), 6))
print("이번 주 로또 번호:", numbers)

# 도전: 5게임
print("\n[5게임]")
for i in range(1, 6):
    game = sorted(random.sample(range(1, 46), 6))
    print(f"{i}게임: {game}")
▶ 실행 결과
이번 주 로또 번호: [3, 14, 22, 28, 35, 41]

[5게임]
1게임: [5, 11, 22, 28, 36, 44]
2게임: [3, 12, 19, 25, 31, 42]
...
과제 9

리스트 뒤집기 (두 가지 방법)

목표: 같은 결과를 슬라이싱과 reverse() 두 방식으로 구현한다.

요구사항
  • 임의의 리스트(예: [1,2,3,4,5]) 를 뒤집기
  • 방법 1: 슬라이싱 [::-1] (원본 유지, 새 리스트)
  • 방법 2: .reverse() (제자리)
  • 두 결과를 모두 출력
입출력 예시
원본: [1, 2, 3, 4, 5]
방법 1 (슬라이싱): [5, 4, 3, 2, 1]
방법 2 (reverse): [5, 4, 3, 2, 1]
원본 그대로: [5, 4, 3, 2, 1]
▶정답 코드 펼치기 / 접기
SOLUTION
original = [1, 2, 3, 4, 5]
print("원본:", original)

# 방법 1: 슬라이싱 — 새 리스트
reversed_slice = original[::-1]
print("방법 1 (슬라이싱):", reversed_slice)

# 방법 2: reverse() — 제자리
original.reverse()
print("방법 2 (reverse):", original)
print("원본 그대로:", original)
▶ 실행 결과
원본: [1, 2, 3, 4, 5]
방법 1 (슬라이싱): [5, 4, 3, 2, 1]
방법 2 (reverse): [5, 4, 3, 2, 1]
원본 그대로: [5, 4, 3, 2, 1]
예제 코드 / 강의 자료

전체 강의 자료와 예제 코드는 GitHub에서 자유롭게 받아볼 수 있습니다.

GitHub에서 보기 ↗

댓글 0

아직 댓글이 없습니다. 첫 댓글을 남겨 주세요.

댓글은 회원만 쓸 수 있습니다.

광고·욕설·비방·개인정보·불법 내용이 담긴 댓글은 숨기거나 지웁니다. 댓글은 닉네임과 함께 공개됩니다. 개인정보처리방침