파이썬(Python)

파이썬 구구단 만들기 (if, for문 완전 기초 개념)

snapinfo 2025. 5. 25. 10:52
반응형
# 1) 사용자에게 단 입력받기
dan = int(input("몇 단을 출력할까요? (2~9): "))

# 2) 입력값이 유효한지 확인하기
if 2 <= dan <= 9:
    print(f"\n=== {dan}단 ===")
    # 3) 1부터 9까지 곱하면서 출력하기
    for i in range(1, 10):
        result = dan * i
        print(f"{dan} × {i} = {result}")
else:
    print("오류: 2부터 9 사이의 정수를 입력해야 합니다.")

 

1. if문 (조건문)

  • 형식
  • python
    복사편집
    if <조건식>: <조건이 참일 때 실행할 코드> else: <조건이 거짓일 때 실행할 코드>
  • **콜론(:)**과 **들여쓰기(indent)**가 필수!

 

2. for문 (반복문)

  • 형식
  • python
    복사편집
    for <변수> in <시퀀스>: <반복해서 실행할 코드>
  • <시퀀스>: 리스트, 문자열, range() 등이 될 수 있어요.
  • 예시 설명
  • for i in range(1, 10):
            result = dan * i
            print(f"{dan} × {i} = {result}")  
    1. range(1, 10)은 1부터 9까지의 숫자를 차례로 만들어 주는 시퀀스입니다.
    2. for i in … 하면 i가 1, 2, 3, …, 9로 하나씩 바뀌면서 들여쓰기된 블록이 반복 실행돼요.
    3. 각 반복마다 result = dan * i 를 계산하고, 그 값을 print로 보여주는 구조죠.

왜 10까지는 안했냐구요?

파이썬의 range(start, stop) 함수는 시작 값(start) 은 포함(inclusive)하지만, 끝 값(stop) 은 포함하지 않는(exclusive) 방식으로 숫자를 생성하기 때문이에요.

10에 도달하면 멈추라는 의미이기 떄문에, 10일때 아래 코드는 수행하지 않습니다.

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

위 코드는 내부적으로 이렇게 동작합니다:

  1. i = 1
  2. i = 2
  3. i = 9
  4. i = 10이 되기 직전에 “끝 값(10) 도달”로 판단하고 멈춤

따라서 range(1, 10)은 1, 2, 3, …, 9 까지만 반복하고, 10은 생성하지 않는 거죠.

반응형