아주 간단한 파이썬 프로그래밍 내림차순 질문!
안녕하세요! 파이썬 질문이 있어서 이렇게 남깁니다!
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
이렇게 줄어드는건 환원 말곤 답을 못찾겠습니다 ㅠㅠ
안녕하세요
프로그래밍 방법은 많은데 제가 한 예제는 기존 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