이번 시간에는 파이썬으로 구구단을 출력해주는 프로그램을 만들어 보겠습니다. 구구단은 보통 1~9까지 숫자를 각각 1~9까지 곱해서 곱셈을 외우고 공부하기 쉽게 만든 것을 의미합니다. 그런데 이번에는 굳이 1~9 사이의 자연수가 아니더라도 9 이상의 자연수도 9까지 곱한 결과를 출력하고자 합니다. 결과부터 말씀 드리면 이제 어느정도 코딩에 대해 이해가 되셨다면 간단하게while문과 for문으로 처리하면 됩니다.
우선 먼저 항상 그랬듯이 사용자로부터 입력 값을 받기 위한 구문부터 시작하겠습니다.
while True:
try:
input_number = int(input("\n1 이상의 자연수를 입력하세요 : "))
if input_number == 0:
print("\n0은 뭘 곱해도 0입니다. 다시 입력해 주세요.")
continue
elif input_number < 0:
print("\n음수의 구구단은 자연수의 구구단에 마이너스 부호만 붙이면 됩니다. 다시 입력해 주세요.")
continue
else:
break
except:
print("\n잘 좀 입력해주시죠. :(")
continue
이전에 사용하던 구문에서 약간 변형한 것인데, 사용자가 입력한 것이 정수가 아닌 실수이거나, 문자열이거나 하면 틀렸으니 다시 입력할 것을 요구하고, 0을 입력하면 곱셈에서는 0에 뭘 곱해도 0이니 다시 입력하라고 했고, 음의 정수를 입력하면 음수는 양수의 결과값에 마이너스만 붙이면 되니 다시 입력하라는 메시지를 출력하도록 했습니다. 물론 제대로 잘 입력하면 바로while문을 탈출할 것입니다.
이제 사용자가 입력한 값에 1~9까지 차례로 곱해 주기만 하면 됩니다. 첫번째는 while문으로 만들어 봤습니다.
n = 1
while n <= 9:
print(input_number, 'X', n, '=', input_number*n)
n = n + 1 #or n+=1
n이라는 변수가 필요하지만 어쨌든 간단히 해결됐습니다. 결과값은 다음과 같습니다.
1 이상의 자연수를 입력하세요 : 175
175 X 1 = 175
175 X 2 = 350
175 X 3 = 525
175 X 4 = 700
175 X 5 = 875
175 X 6 = 1050
175 X 7 = 1225
175 X 8 = 1400
175 X 9 = 1575
두 번째는 for문을 이용해서 만들어 봤습니다.
for i in range(1, 10):
print(input_number, 'X', i, '=', input_number*i)
while문에 비해 더 간결하고 쉽습니다. 추가로 변수가 필요하지도 않습니다. 물론 결과값도 잘 출력됩니다.
1 이상의 자연수를 입력하세요 : 133
133 X 1 = 133
133 X 2 = 266
133 X 3 = 399
133 X 4 = 532
133 X 5 = 665
133 X 6 = 798
133 X 7 = 931
133 X 8 = 1064
133 X 9 = 1197
while문과 for문만 제대로 이해해도 코딩하실 때 에러를 줄이고 간결하고 깔끔하게 잘 만드실 수 있습니다.
제가 만든 것이 정답은 아닙니다. 저는 정답이라고 글을 쓰거나 자랑하려고 올리는 것이 아닙니다. 저는 부족한 것 투성이임을 누구보다 잘 알고 있습니다. 그래서 공부를 놓지 못하고 계속하는 것입니다. 반복해서 말씀 드리지만, 저도 처음 공부 시작할 때 누군가에게 도움을 받았으니, 저도 누군가에게 도움을 드리고자 할 뿐입니다. 시작할 때의 그 막막함과 답답함을 저는 너무 잘 알고 있으니까요.
끝으로…
프로그램 언어 공부는 이렇게 갑자기 만들고 싶은 것이 있어야 실력이 향상됩니다. 함수를 잔뜩 외운다고 늘지 않습니다. 직접 프로그램을 만들어 보고, 책이나 인터넷에서 남이 만든 코딩을 영어 해석하듯이 해석해보고, 때론 응용도 하면서 씹고, 뜯고, 맛보고, 즐기고 해야 합니다. 저도 그랬습니다.
세상 모든 것이 그러하듯이, 코딩도 꾸준히 하다 보면 실력이 늡니다.
[Python] 자연수의 약수 구하기 파이썬 프로그램 예제 (0) | 2023.04.13 |
---|---|
[Python] 거듭제곱 출력하기 파이썬 프로그램 예제 (0) | 2023.04.12 |
[Python] 숫자의 팩토리얼 값 구하기 파이썬 프로그램 예제 (0) | 2023.04.10 |
[Python] 1부터 n까지 합계 구하기 파이썬 프로그램 예제 (0) | 2023.04.09 |
[Python] 윤년인지 여부 확인 파이썬 프로그램 예제 (0) | 2023.04.08 |
댓글 영역