파이썬초보 줄바꿈 출력 질문
조회수 1387회
안녕하세요. 이번주부터 파이썬 시작한 왕초보자입니다.
문제를 풀고있는데, 어려움이 생겨 이곳에 질문을 남기게 되었습니다.
일단,
Q. x = 30 입력했을 때
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
이렇게 나타나야하는 문제입니다.
제가 짜본 코드는
x = int(input("숫자를 입력해주세요 : "))
for i in range(30) :
if i <= 9:
print(i+1,end="")
elif i <=19 :
print(i+1,end="")
else :
print(i+1,end="")
이건데 이렇게 하면
123456789101112131415161718192021222324252627282930
이렇게 나옵니다.
줄바꿈 출력을 어떻게 하면 되는건지 문의드립니다.
1 답변
-
일단, 줄바꿈을 넣으시려면
print()
를 (인자값 없이) 실행하면 되긴 합니다. 아니면print("원래입력하려는것\n")
하는 식으로 끝에\n
을 넣어주면 됩니다. 하지만 이것까지만 알면 질문자님은 여전히 문제를 해결할 수 없습니다.그 문제란 사실은 아마도 이런 것이겠지요.
- 정수를 입력받을 것.
- 1부터 그 정수까지 쭉 출력할 것.
- 단, 숫자 열 개 단위로 줄바꿈을 넣어서 출력할 것.
그렇다면 좀 다르게 접근해 봅시다. 정수를 입력받으면:
- 줄바꿈을 몇 번 해야 하는지 구한다.
예컨대29
를 입력받았다면,29 / 10 = 2.9
를 올림한 결과 총3
번 줄바꿈해야 한다는 걸 알 수 있음 (왜 반올림이 아니라 올림 인지는 한번 생각해 보세요.) - 예컨대 3번 줄바꿈해야 할 경우, 총 3번 다음을 반복한다:
x1, x2, x3, ...
하는 식으로 10개의 수를 이어붙인 1줄을 만들어 출력한 뒤 줄바꿈 출력.
예컨대 2번째 줄을 출력하는 것이라면11, 12, ..., 20
을 출력한 뒤\n
을 출력한다.
시도해 보세요!
PS. 뭐 이런 식의 접근법도 있기는 합니다.
if i % 10 == 0 : print()
댓글 입력