print('<< 369 >>')
num = int(input('1부터 시작하며, 마지막 숫자를 입력해주세요. '))
for a in range(1, num+1):
if a%10 == 3 or a%10 == 6 or a%10 == 9:
print('짝', end=' ')
else:
print(a, end=' ')
결과)
<< 369 >>
1부터 시작하며, 마지막 숫자를 입력해주세요. 20
1 2 짝 4 5 짝 7 8 짝 10 11 12 짝 14 15 짝 17 18 짝 20
파이썬 소스 및 결과 입니다. 소스에 대해 설명 작성)
코드(369 게임) 자세히 설명
좋아요 — 주신 코드는 1부터 입력한 마지막 숫자까지 차례로 출력하되, 끝자리(1의 자리)가 3, 6, 9이면 그 숫자 대신 '짝'을 출력하는 간단한 369 게임 구현입니다. 아래에 한 줄씩 쉽게 풀어서 설명할게요.
한 줄 요약
- a % 10으로 숫자의 마지막 자리를 확인하고, 그 값이 3, 6, 9일 때 '짝'을 출력합니다.
- 모든 출력은 한 줄에 공백으로 구분해서 이어서 보여줍니다 (end=' ' 사용).
코드 줄별 설명
print('<< 369 >>')
- 화면에 << 369 >> 라는 제목을 출력합니다.
num = int(input('1부터 시작하며, 마지막 숫자를 입력해주세요. '))
- input(...)이 사용자로부터 문자열 입력을 받습니다.
- int(...)로 그 문자열을 정수로 바꿔 num에 저장합니다.
- 예: 사용자가 20을 입력하면 num == 20이 됩니다.
- (주의) 사용자가 숫자가 아닌 값을 입력하면 ValueError가 납니다 — 예외 처리를 추가하면 더 안전합니다.
for a in range(1, num+1):
- 1부터 num까지 반복합니다. (range의 끝은 제외이므로 num+1로 해서 num까지 포함)
- 반복변수는 a입니다.
if a%10 == 3 or a%10 == 6 or a%10 == 9:
- a % 10은 a를 10으로 나눈 나머지 — 즉 마지막 자리(1의 자리) 를 구합니다.
- 그 값이 3, 6, 9 중 하나인지 or로 검사합니다.
- 예: 13 % 10 == 3 → 참, 26 % 10 == 6 → 참
print('짝', end=' ')
- 조건이 참이면 '짝'을 출력합니다.
- end=' '로 출력 뒤에 줄바꿈 대신 공백 한 칸을 붙입니다. 그래서 출력이 한 줄에 이어집니다.
else:
print(a, end=' ')
- 조건이 거짓이면 숫자 a 자체를 공백과 함께 출력합니다.
실행 예시 (입력: 20)
주신 실행 결과와 같이:
<< 369 >>
1부터 시작하며, 마지막 숫자를 입력해주세요. 20
1 2 짝 4 5 짝 7 8 짝 10 11 12 짝 14 15 짝 17 18 짝 20
각 숫자별 판단 예:
- 3 → 마지막 자리 3 → 짝
- 6 → 짝
- 9 → 짝
- 13 → 마지막 자리 3 → 짝
- 16 → 마지막 자리 6 → 짝
- 20 → 마지막 자리 0 → 숫자 20 출력
개선(확장) 아이디어 — 자주 쓰는 변형
- '33' 같은 경우 두 번 박수 치기(짝짝)
현재 코드는 33을 만나면 단지 '짝' 한 번만 출력합니다.
박수 횟수를 숫자 내에 3,6,9가 몇 번 있는지로 세려면 다음처럼 바꿀 수 있습니다:
for a in range(1, num+1):
s = str(a)
cnt = sum(s.count(d) for d in '369') # '3','6','9'가 나온 횟수 합
if cnt > 0:
print('짝' * cnt, end=' ')
else:
print(a, end=' ')
print() # 마지막에 줄바꿈
- 33이면 cnt == 2가 되어 짝짝이 출력됩니다.
- 잘못된 입력(문자 등) 처리
try:
num = int(input('마지막 숫자: '))
except ValueError:
print('정수를 입력하세요.')
exit()
- 출력 후 줄바꿈 추가
루프 끝나고 print()를 하나 추가하면 다음 프롬프트가 새 줄에서 시작합니다.
한눈에 흐름 정리
- 제목 출력
- 사용자에게 마지막 숫자를 입력받아 정수로 변환
- 1부터 그 숫자까지 하나씩 검사
- 각 수의 마지막 자리(% 10)가 3/6/9면 '짝' 출력, 아니면 숫자 출력
- 각 출력은 한 줄에 공백으로 구분
예외 처리 포함 버전이나 짝을 여러 번 치게 하는 버전. 모두 작성
1) 기본 + 예외 처리 버전
(숫자가 아닌 걸 입력하면 오류 안내 후 종료)
print('<< 369 >>')
try:
num = int(input('1부터 시작하며, 마지막 숫자를 입력해주세요: '))
except ValueError:
print('정수를 입력해야 합니다.')
exit()
for a in range(1, num+1):
if a % 10 in (3, 6, 9): # 끝자리가 3, 6, 9면
print('짝', end=' ')
else:
print(a, end=' ')
print() # 마지막 줄바꿈
2) ‘짝짝’까지 지원하는 확장 버전
(33 → 짝짝, 369 → 짝짝짝)
print('<< 369 확장 >>')
try:
num = int(input('1부터 시작하며, 마지막 숫자를 입력해주세요: '))
except ValueError:
print('정수를 입력해야 합니다.')
exit()
for a in range(1, num+1):
s = str(a)
cnt = sum(s.count(d) for d in '369') # 3, 6, 9 등장 횟수 세기
if cnt > 0:
print('짝' * cnt, end=' ')
else:
print(a, end=' ')
print()
👉 혹시 원하시는 건
- 단순히 끝자리가 3/6/9일 때만 ‘짝’ 출력하는 기본 버전인가요?
- 아니면 33 같은 경우도 ‘짝짝’ 하도록 확장된 버전인가요?
네 👍 두 버전을 정리해서 드릴게요.
기본 버전 (끝자리만 체크)
3, 6, 9로 끝나는 숫자만 "짝" 출력합니다.
print('<< 369 기본 버전 >>')
try:
num = int(input('1부터 시작하며, 마지막 숫자를 입력해주세요: '))
except ValueError:
print('정수를 입력해야 합니다.')
exit()
for a in range(1, num+1):
if a % 10 in (3, 6, 9): # 끝자리가 3, 6, 9면
print('짝', end=' ')
else:
print(a, end=' ')
print() # 마지막 줄바꿈
✅ 실행 예시 (입력: 20)
<< 369 기본 버전 >>
1부터 시작하며, 마지막 숫자를 입력해주세요: 20
1 2 짝 4 5 짝 7 8 짝 10 11 12 짝 14 15 짝 17 18 짝 20
확장 버전 (짝짝, 짝짝짝 가능)
숫자 안에 들어있는 3, 6, 9의 개수만큼 "짝"을 출력합니다.
print('<< 369 확장 버전 >>')
try:
num = int(input('1부터 시작하며, 마지막 숫자를 입력해주세요: '))
except ValueError:
print('정수를 입력해야 합니다.')
exit()
for a in range(1, num+1):
s = str(a)
cnt = sum(s.count(d) for d in '369') # 3, 6, 9 등장 횟수
if cnt > 0:
print('짝' * cnt, end=' ')
else:
print(a, end=' ')
print()
✅ 실행 예시 (입력: 40)
<< 369 확장 버전 >>
1부터 시작하며, 마지막 숫자를 입력해주세요: 40
1 2 짝 4 5 짝 7 8 짝 10 11 12 짝 14 15 짝 17 18 짝 20
21 22 짝 24 25 짝 27 28 짝 30 짝 짝짝 짝 34 35 짝짝 37 38 짝 40
- 30 → 짝 (끝자리 0이라 X, 십자리 3이라 O → 짝)
- 33 → 짝짝 (3이 두 번 들어있음)
- 36 → 짝짝 (3, 6 두 개 있음)
👉 혹시 두 버전을 합쳐서, 실행 전에
- “기본 모드”
- “확장 모드”
를 선택해서 돌릴 수 있는 프로그램 밑에 정리
좋습니다 🙌 그러면 모드 선택이 가능한 하나의 프로그램으로 만들어 드릴게요.
369 게임 (모드 선택 가능)
print('<< 369 게임 >>')
# 모드 선택
mode = input('모드를 선택하세요 (1: 기본, 2: 확장) : ')
try:
num = int(input('1부터 시작하며, 마지막 숫자를 입력해주세요: '))
except ValueError:
print('정수를 입력해야 합니다.')
exit()
for a in range(1, num+1):
if mode == '1': # 기본 모드
if a % 10 in (3, 6, 9): # 끝자리만 확인
print('짝', end=' ')
else:
print(a, end=' ')
elif mode == '2': # 확장 모드
s = str(a)
cnt = sum(s.count(d) for d in '369') # 3,6,9 개수 세기
if cnt > 0:
print('짝' * cnt, end=' ')
else:
print(a, end=' ')
else: # 잘못된 모드 입력
print('\n잘못된 모드를 선택했습니다. (1 또는 2만 입력하세요)')
break
print() # 줄바꿈
실행 예시
기본 모드 (입력: 1, 20)
<< 369 게임 >>
모드를 선택하세요 (1: 기본, 2: 확장) : 1
1부터 시작하며, 마지막 숫자를 입력해주세요: 20
1 2 짝 4 5 짝 7 8 짝 10 11 12 짝 14 15 짝 17 18 짝 20
확장 모드 (입력: 2, 40)
<< 369 게임 >>
모드를 선택하세요 (1: 기본, 2: 확장) : 2
1부터 시작하며, 마지막 숫자를 입력해주세요: 40
1 2 짝 4 5 짝 7 8 짝 10 11 12 짝 14 15 짝 17 18 짝 20 21 22 짝 24 25 짝 27 28 짝 30 짝 짝짝 짝 34 35 짝짝 37 38 짝 40
'파이썬(Python)' 카테고리의 다른 글
| 파이썬, 타자연습 게임 소스 (0) | 2025.09.13 |
|---|---|
| 파이썬, 직각삼각형, 정삼각형, 역삼각형 별 모양 소스 (0) | 2025.09.13 |
| 파이썬, 1~100까지 숫자 맞추기 게임 소스 (추가 수정 본) 및 실행파일 (0) | 2025.09.09 |
| 파이썬, random, while, if, 컴퓨터가 생각한 숫자 맞추기 게임 프로그램 소스 (0) | 2025.09.09 |
| 파이썬, 모듈의 의미는? (0) | 2025.09.09 |
콘텐츠 내 자동삽입광고
