Python 2.7 for loop confusion

时间:2013-06-18 22:39:31

标签: python-2.7 for-loop string-concatenation

我正在尝试从用户输入构建一个表,通过Cheetah导出以填充模板以用作报告。我在分离循环的每次迭代时都遇到了麻烦 “for j in range(1,numErrors):”并将表行标记放在每个连接的开头和结尾。

table = ""
cells = ""
row = ""

numMeas = int(raw_input("Enter total number of measurements: "))
numMeas = numMeas + 1 #number of measurements compensated for iteration behavior
for i in range(1, numMeas):
    typeMeas = raw_input("Enter type of measurement "+str(i)+": ")
    numErrors = int(raw_input("Enter number of error sources: "))
    numErrors = numErrors + 1
    for j in range(1, numErrors): #builds dataSet from number of errors
        inputData = []
        inputData.append(typeMeas)
        description = raw_input("Enter source of uncertainty "+str(j)+": ")
        inputData.append(description)
        estUncert = raw_input("Enter estimated uncertainty "+str(j)+": ")
        estUncert = float(estUncert)
        inputData.append(str(estUncert))

        for i in inputData:
            cell = "<td>"+str(i)+"</td>"
            cells += cell

    table = "<tr>"+cells+"</tr>"+"\n"

print table

Current output:
<tr><td>mass</td><td>scale</td><td>1.0</td><td>mass</td><td>human</td><td>2.0</td>               <td>temp</td><td>room</td><td>3.0</td><td>temp</td><td>therm</td><td>4.0</td></tr>

Desired output:
<tr><td>mass</td><td>scale</td><td>1.0</td></tr>
<tr><td>mass</td><td>human</td><td>2.0</td></tr>
<tr><td>temp</td><td>room</td><td>3.0</td></tr>
<tr><td>temp</td><td>therm</td><td>4.0</td></tr>

1 个答案:

答案 0 :(得分:1)

我猜它可能需要看起来像这样:

table = ""
cells = ""
row = ""

numMeas = int(raw_input("Enter total number of measurements: "))
numMeas = numMeas + 1 #number of measurements compensated for iteration behavior
for i in range(1, numMeas):
    typeMeas = raw_input("Enter type of measurement "+str(i)+": ")
    numErrors = int(raw_input("Enter number of error sources: "))
    numErrors = numErrors + 1
    inputData = []
    for j in range(1, numErrors): #builds dataSet from number of errors
        inputData.append(typeMeas)
        description = raw_input("Enter source of uncertainty "+str(j)+": ")
        inputData.append(description)
        estUncert = raw_input("Enter estimated uncertainty "+str(j)+": ")
        estUncert = float(estUncert)
        inputData.append(str(estUncert))
    cells = ''
    for i in inputData:
        cell = "<td>"+str(i)+"</td>"
        cells += cell

    table += "<tr>"+cells+"</tr>"+"\n"

print table