파이썬에서 문자와 숫자를 번갈아가며 출력하고 싶습니다.

조회수 2687회
  1 #!/usr/bin/env python
  2
  3 import os
  4 import subprocess
  5 import sys
  6 import shlex
  7 import matplotlib.pyplot as plt
  8 import re
  9
 10 def runCommand(command):
 11     popenArgs = shlex.split(command)
 12     process = subprocess.Popen(popenArgs, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 13     out, err = process.communicate()
 14     return [out.rstrip(), err.rstrip()]
 15
 16 if __name__ == '__main__':
 17     nTimes = input("Enter nTimes: ")
 18     values = [ [], [], [], [], [], [], [], [], [] ]
 19     for index in xrange(nTimes):
 20         output, errorOutput = runCommand('./getMultipleHits.sh')
 21         outputSplit = re.split(' : |\n', output)
 22         #split up the output
 23         i = 2
 24         j = 0
 25         for ggg in outputSplit:
 26             if j == 9: break
 27             values[j].append(outputSplit[i])
 28             i += 3
 29             j += 1
 30     sumValues = []
 31     averages = []
 32     k = 0
 33     sumValue = 0
 34     for index in values:
 35         for value in values[k]:
 36             sumValue += float(value)
 37         sumValues.append(sumValue)
 38         averages.append(sumValue/nTimes)
 39         k += 1
 40     l = 0
 41     while l < 9:
 42         print('Sum of values of tsf' + str(l) + str(sumValues[l]))
 43         print('Average of values of tsf' + str(l) + str(averages[l]))
 44         m = 1
 45         plt.figure()
 46         for value in values[l]:
 47             plt.plot(m, value, 'ro')
 48             m += 1
 49         plt.axis([0, nTimes+1, 0, 2147500000])
 50         l += 1
 51     plt.show()

일단 제가 작성한 코드입니다. 42번째 줄과 43번째 줄에 출력함수가 있는데 현재 다음과 같이 출력됩니다.

Sum of values of tsf02078497898.0
Average of values of tsf01039248949.0
Sum of values of tsf16028065745.0
Average of values of tsf13014032872.5
Sum of values of tsf28631865954.0
Average of values of tsf24315932977.0
Sum of values of tsf311328958215.0
Average of values of tsf35664479107.5
Sum of values of tsf414357615824.0
Average of values of tsf47178807912.0
Sum of values of tsf516788316306.0
Average of values of tsf58394158153.0
Sum of values of tsf619636037707.0
Average of values of tsf69818018853.5
Sum of values of tsf721343543817.0
Average of values of tsf710671771908.5
Sum of values of tsf823736480671.0
Average of values of tsf811868240335.5

아래와 같이 출력되도록 하고 싶습니다. 숫자는 결과로 나오는 값인데 지금은 임의로 적었습니다.

Sum of values of tsf0:     16516131315
Average of values of tsf0: 15615631851
Sum of values of tsf1:     16516131315
Average of values of tsf1: 15615631851
...

Sum of values of tsf8:     16516131315
Average of values of tsf8: 15615631851

지금 문제가 문자와 숫자를 번갈아가며 출력해야 되는 점과 띄어쓰기를 해야 한다는 점 두 가지가 있습니다. 즉

tsf58394158153.0

에서 5와(5는 바뀌는 값입니다) 뒤의 숫자 사이에 공백이 있어야 한다는 거죠. 그리고 그 사이에 ':'를 끼워넣고 싶습니다.

도와주세요

  • (•́ ✖ •̀)
    알 수 없는 사용자

2 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)