
이런식으로 혹은

이런식으로 프린트 된 구구단을 본적이 있을겁니다.
구구단 쉽죠
for a in range(2,10):
for b in range(1,10):
print(f'{a}x{b}={a*b}')
print("줄바꿈")
이렇게만 해도 2,3,4,5,6.......9단까지 잘 출력 합니다.

뭔가 이상하죠?
난 옆으로 찍고 싶었는데, 왜 출력물이 다르지?
저는 저것을 3중 for 문으로 구성 했습니다.

출력 / 줄바꿈

출력 / 줄바꿈의 반복이죠.
여기서 우리가 알아야 하는건 첫줄에 몇개가 보여 질지 선택 가능하죠
역으로 4줄 적고 4줄적고 반복하면 되긴합니다.
그럼 코드를 일부 수정 해 보자면
n=4
for a in range(2,10,n):
for b in range(1,10):
for c in range(a, a+n):
print(f'{c}*{b}={c*b:2} ',"\t",end="")
print("줄바꿈")
print('-'*60)
n은 줄의 갯수, a는 2줄로 보여야 하니 그 안에 줄바꿈 추가
b는 1~9 까지 각 단을 곱하는 수, c는 무엇이냐
첫줄에 나와야 하는것은 c 이죠.

이제 줄바꿈을 "" 으로 바꾸면
처음 봤던 화면과 같아 집니다.

자, 4줄씩할땐 이상함이 없었으나 3줄로 줄이니 10단이 나오네요?
이제 10단을 안하는 조건을 만들어 봅시다.

간결하게 if c<=9: 문구 추가로 10단을 없엤습니다.
예전에 만들었던 코드인데, 다시 보고 있는중에 내가 이걸 했다고? 싶어서 복기중입니다.
+)줄의 수를 받아 들일수 있습니다.
n = int(input("줄의 수를 입력 하세요"))
for a in range(2,10,n):
for b in range(1,10):
for c in range(a, a+n):
if c <= 9:
print(f'{c}*{b}={c*b:2} ',"\t",end="")
print("")
print("-"*(n*15))