python: 줄 바뀌는 구구단

chez·2022년 7월 26일

python

목록 보기
7/8

이런식으로 혹은

이런식으로 프린트 된 구구단을 본적이 있을겁니다.

구구단 쉽죠

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))
profile
무언가 만드는데, 이것이 뭐시당가

0개의 댓글