파이썬 for문으로 구구단 프로그래밍¶
- 구구단 출력을 해보고, 파이썬의 조건문과 반복문의 쓰임과 문법을 알아보자.
2 x 1 부터 출력해보자.¶
우선 2곱하기 1부터 시작해보자. print() 함수에는 변수 x, 문자열 'x', 변수 y, 문자열 '=', x * y 이라는 식을 쉼표로 구분해 차례로 놓음.
In [102]:
x = 2
y = 1
print(x, 'x', y, '=', x * y)
2 x 1 = 2
- 구구단은 반복해서 여러번 하는 것이기 때문에, for문을 쓰면 쉽게 나타낼 수 있다.
- for문을 사용하고, range로 범위를 설정하자.
1. 구구단 세로 출력¶
In [98]:
for x in range(2,10):
for y in range(1,10):
print(x, '*', y, '=', x * y)
if(y == 9):
print('----------')
2 * 1 = 2 2 * 2 = 4 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10 2 * 6 = 12 2 * 7 = 14 2 * 8 = 16 2 * 9 = 18 ---------- 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 3 * 4 = 12 3 * 5 = 15 3 * 6 = 18 3 * 7 = 21 3 * 8 = 24 3 * 9 = 27 ---------- 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 4 * 5 = 20 4 * 6 = 24 4 * 7 = 28 4 * 8 = 32 4 * 9 = 36 ---------- 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 45 ---------- 6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36 6 * 7 = 42 6 * 8 = 48 6 * 9 = 54 ---------- 7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49 7 * 8 = 56 7 * 9 = 63 ---------- 8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64 8 * 9 = 72 ---------- 9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81 ----------
우리는 여기서 이중 for문을 유심히 보자.
- 이중for문: for문(반복문)안에 또 for문(반복문)이 들어가 있는 형태이다.
위 소스코드에서는 아래와 같이 이중for문이다.
- for x in range(2,10): 변수 x를 증가시키는 반복문안에
- for y in range(1,10): 변수 y를 증가시키는 2번째 반복문을 정의함.
이중 for문의 형태의 동작 이해¶
- 첫번째 x = 2 할당
- 두번째 y = 1 할당
- 세번째 y = 3 할당
- 네번째 y = 4 할당
- .... x = 3 , y = 1, y = 2 ... 마지막은 y = 9
구조상 x의 값이 1번 증가할 때, y는 1부터 9까지 전체를 반복한다.
두번째 for문 안에 print문을 위치시켜 2,1 / 2,2 / 2,3 / .... / 9,9로 값을 증가시키며 화면에 그 결과를 출력한다.
마지막으로 y == 9 j의 값이 9일 때, 즉 한 단이 끝났을 때
if(y == 9)라는 조건문을 통해 그때마다 print('----------')를 통해 '----------' 효과를 냈다.
2. 구구단 세로 출력 ( 단 구별 표시하기 )¶
print()함수에 변수x, 문자열 'x', 변수y, 문자열 '=', x*y 넣기.
In [82]:
print("구구단 출력.\n")
for x in range(2, 10):
print("------- [" + str(x) + "단] -------")
for y in range(1, 10):
print(x, "x", y, "=", x*y)
구구단 출력. ------- [2단] ------- 2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 5 = 10 2 x 6 = 12 2 x 7 = 14 2 x 8 = 16 2 x 9 = 18 ------- [3단] ------- 3 x 1 = 3 3 x 2 = 6 3 x 3 = 9 3 x 4 = 12 3 x 5 = 15 3 x 6 = 18 3 x 7 = 21 3 x 8 = 24 3 x 9 = 27 ------- [4단] ------- 4 x 1 = 4 4 x 2 = 8 4 x 3 = 12 4 x 4 = 16 4 x 5 = 20 4 x 6 = 24 4 x 7 = 28 4 x 8 = 32 4 x 9 = 36 ------- [5단] ------- 5 x 1 = 5 5 x 2 = 10 5 x 3 = 15 5 x 4 = 20 5 x 5 = 25 5 x 6 = 30 5 x 7 = 35 5 x 8 = 40 5 x 9 = 45 ------- [6단] ------- 6 x 1 = 6 6 x 2 = 12 6 x 3 = 18 6 x 4 = 24 6 x 5 = 30 6 x 6 = 36 6 x 7 = 42 6 x 8 = 48 6 x 9 = 54 ------- [7단] ------- 7 x 1 = 7 7 x 2 = 14 7 x 3 = 21 7 x 4 = 28 7 x 5 = 35 7 x 6 = 42 7 x 7 = 49 7 x 8 = 56 7 x 9 = 63 ------- [8단] ------- 8 x 1 = 8 8 x 2 = 16 8 x 3 = 24 8 x 4 = 32 8 x 5 = 40 8 x 6 = 48 8 x 7 = 56 8 x 8 = 64 8 x 9 = 72 ------- [9단] ------- 9 x 1 = 9 9 x 2 = 18 9 x 3 = 27 9 x 4 = 36 9 x 5 = 45 9 x 6 = 54 9 x 7 = 63 9 x 8 = 72 9 x 9 = 81
3. 구구단 가로 출력¶
end = '\t' 추가
In [83]:
for x in range(2,10):
for y in range(1,10):
print(x, "*", y, '=', x* y, end = '\t')
if(y == 9):
print() # print()로 한칸 띄우기
2 * 1 = 2 2 * 2 = 4 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10 2 * 6 = 12 2 * 7 = 14 2 * 8 = 16 2 * 9 = 18 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 3 * 4 = 12 3 * 5 = 15 3 * 6 = 18 3 * 7 = 21 3 * 8 = 24 3 * 9 = 27 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 4 * 5 = 20 4 * 6 = 24 4 * 7 = 28 4 * 8 = 32 4 * 9 = 36 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 45 6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36 6 * 7 = 42 6 * 8 = 48 6 * 9 = 54 7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49 7 * 8 = 56 7 * 9 = 63 8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64 8 * 9 = 72 9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
- 구조는 위에와 같다. 차이점은 print()함수 끝에 end파라미터 값을 '\t'로 지정했다. 출력의 마지막에 탭을 입력하라는 뜻이다. end를 파라미터로 따로 지정하지 않으면, 기본값은 개행(한줄 띄움)이다.
- end = '\t'을 입력하면 2 1 = 2(탭이 입력) .. 2 2 = 4(탭이 입력)... 으로 띄어쓰기하면서 가로로 출력되는 것이다.
4. 사용자가 입력한 단어 구구단 세로로 출력¶
In [88]:
a = int(input("몇 단을 출력하시겠습니까? : "))
for i in range(1, 10):
print(a, "X", y, "=", a*y)
몇 단을 출력하시겠습니까? : 3 3 X 9 = 27 3 X 9 = 27 3 X 9 = 27 3 X 9 = 27 3 X 9 = 27 3 X 9 = 27 3 X 9 = 27 3 X 9 = 27 3 X 9 = 27
변수 a에 사용자로부터 입력받은 숫자를 int형으로 할당해준다.
그리고 1에서 9까지 반복하는 for 반복문을 안에 그 값을 대입시키고, 반복하면서 출력 시킨다.
5. 사용자가 입력한 단어 구구단 가로로 출력¶
print()함수에 end='\t' 추가
In [94]:
a = int(input("몇 단을 출력하시겠습니까? : "))
for y in range(1, 10):
print(a, "X", y, "=", a*y, end='\t')
몇 단을 출력하시겠습니까? : 2 2 X 1 = 2 2 X 2 = 4 2 X 3 = 6 2 X 4 = 8 2 X 5 = 10 2 X 6 = 12 2 X 7 = 14 2 X 8 = 16 2 X 9 = 18
'파이썬 예제' 카테고리의 다른 글
자동차 번호판 인식기 - Python, 이미지 프로세싱 따라하기 (0) | 2021.08.14 |
---|---|
KoNLPy _ "코엔엘파이" (0) | 2021.05.18 |
소수 구하기 with 파이썬 (0) | 2021.05.12 |