티스토리 뷰

파이썬을 이용한 구구단 작성

 

구구단을 1*1, 1*2,1*3.... 9*8,9*9까지 출력을 하고자 하는데 이렇게 반복실행하여 출력하기에 알맞은 구문은 for이다.

 

먼저, 구구단은 두 수의 곱이고 앞에 있는 수가 기준이 되어 1부터 9까지 커지므로 앞에 있는 수만 출력시키는 프로그램을 작성 해보자.

 

for a in range(1, 9 + 1):
    print(a)

1
2
3
4
5
6
7
8
9

그리고 구구단은 앞에 있는 숫자가 1개 처리 될 때마다 뒤에 있는 숫자는 1~9까지 모두 처리 되어야 한다.

 

이 말은 뒤에 올 숫자에 해당하는 for문이 하나 더 필요하고, 이는 앞에 있는 for문에 귀속되어 있어야 함을 알 수 있다.

 

그리고 a와 b의 곱을 출력해봤다.

 

for a in range(1, 9 + 1):

    for b in range(1, 9 + 1):
    print(a*b)

1
2
3
4
 ·

 ·

 (생략)

 ·

 ·
54
63
72
81

구구단의 결과값이 잘 나왔다. 하지만 나는 구구단의 곱의 형태였기 때문에 *기호를 살려주고 싶었다.

 

이를 위해서 *기호는 문자처리 해줬지만 오류가 계속 발생.

 

for a in range(1, 9 + 1):

    for b in range(1, 9 + 1):
    print(a + "*" + b)

C:\Users\whanh\PycharmProjects\PythonBasics\venv\Scripts\python.exe "C:/Users/whanh/PycharmProjects/PythonBasics/Double For statement.py"
Traceback (most recent call last):
  File "C:/Users/whanh/PycharmProjects/PythonBasics/Double For statement.py", line 3, in <module>
    print(a + "*" + b )
TypeError: unsupported operand type(s) for +: 'int' and 'str'

Process finished with exit code 1

하지만 오류를 잘 봤더니 'int'와 'str'함수가 언급이 되어 있다.

 

str함수는 숫자 계산을 문자로 출력해주는 함수로 배웠었다.

 

생각해보니 저기 있는 a와 b는 단순한 문자가 아니라 숫자가 담겨있는 변수였기 때문에 str함수를 통해 문자로 출력해야만 했다.

 

for a in range(1, 9 + 1):

    for b in range(1, 9 + 1):
    print( str(a) + "*" + str(b) )

C:\Users\whanh\PycharmProjects\PythonBasics\venv\Scripts\python.exe "C:/Users/whanh/PycharmProjects/PythonBasics/Double For statement.py"
1*1
1*2
1*3
1*4
1*5
1*6
1*7
1*8
1*9
2*1
2*2
2*3
2*4
2*5
2*6
2*7
2*8
2*9
3*1
3*2
3*3
3*4
3*5
3*6
3*7
3*8
3*9
4*1
4*2
4*3
4*4
4*5
4*6
4*7
4*8
4*9
5*1
5*2
5*3
5*4
5*5
5*6
5*7
5*8
5*9
6*1
6*2
6*3
6*4
6*5
6*6
6*7
6*8
6*9
7*1
7*2
7*3
7*4
7*5
7*6
7*7
7*8
7*9
8*1
8*2
8*3
8*4
8*5
8*6
8*7
8*8
8*9
9*1
9*2
9*3
9*4
9*5
9*6
9*7
9*8
9*9

Process finished with exit code 0

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함