아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
매끈한상괭이152
매끈한상괭이15221.04.15

아주 간단한 파이썬 프로그래밍 내림차순 질문!

안녕하세요! 파이썬 질문이 있어서 이렇게 남깁니다!

1

12

123

1234

12345

.

.

123..N

을 출력하려 합니다.

sum=""

for i in range(1,N+1):

sum=sum+str(i)

print(sum)

이렇게 하면

1) i가 1일때

sum=1 출력 /같은 들여쓰기 안에서 print끝났으니

다시 for로 돌아가서 i가2 인걸로 돌아가고

2) i가 2

위 시행에서 이미 sum=1('문자'임)

따라서 sum=sum+str(2)='1'+'2'=12

'12'print 하고 다시 for i가3인걸로 돌아가서

.

.

마지막으로 i=N일때.

이미 sum=123456...(N-1)

sum=sum+N=123...N 출력 후 종료

따라서 초기화 할 필요가 없음

그런데 이제

12345

1234

123

12

1

이거는 range 역순으로 해야 할꺼 같은데..

for i in range(N,1,-1):

for j in range(1,i):

e2=e2+str(j)

print(e2)

e2=''

for j

e2=e2+str(j)

를 통해

e2=123...(i-1) 로 만들고

이를 print로 출력

***출력 후 다시 for로 돌아가기 전에 e2초기화

by 들/여/쓰/기

위에서는 한번 시행마다 끝 숫자로된문자열 더하면 되는데, 이건 어떻게 할 수가 없는거 같은데 혹시 도움 주실수 있으실분 계실까요?ㅠㅠ

그러니까 질문을 요약하자면

1

12

123

1234

..

내림차순으로 늘어나는거는 위 숫자에 문자열 더하는거만 하면 되서 빈칸으로 환원 안해도 되는데

12345

1234

123

12

1

이렇게 줄어드는건 환원 말곤 답을 못찾겠습니다 ㅠㅠ

55글자 더 채워주세요.
답변의 개수
1개의 답변이 있어요!
  • 탈퇴한 사용자
    탈퇴한 사용자21.04.15

    안녕하세요

    프로그래밍 방법은 많은데 제가 한 예제는 기존 for 문을 이용하고 역순으로 print 문자열을 저장한 후에 마지막에 print 하는 방법입니다.

    n = 5 sum = '' txt = '' for i in range(1, n + 1): sum = sum + str(i) txt = sum + txt if i < n: txt = '\n' + txt print(txt) # 출력 12345 1234 123 12 1

    원래 for 문을 바로 print 하지 않고 문자열로 저장 후 마지막에 print 하는 예제입니다.

    n = 5 sum = '' txt = '' for i in range(1, n + 1): sum = sum + str(i) txt += sum if i < n: txt += '\n' print(txt) # 출력 1 12 123 1234 12345