如何在不重写句子的情况下使用相同的句子打印多个变量?

时间:2015-11-01 23:50:14

标签: python

我有一个带有数字的txt文件。

每两个数字都是“一个案例”(例如21\n 3\n 45\n 7\n213将是一个案例,457将是另一个案例,等等。)

有十个案例。我编写了一个Python脚本,可以读取txt文件并将其中的字符串转换为整数,它们就是整数。

现在我需要打印一个句子,其中包含每个案例的第一个数字和第二个数字。我不想写十句话,有没有办法修复这段代码

file = open('problemCases.txt', 'r')
fileLst = file.readlines()

fileLst = [int(i) for i in fileLst]


def main():
    lst = []
    probCase = (fileLst[0], fileLst[1])
    lst.append(probCase)
    probCase = (fileLst[2], fileLst[3])
    lst.append(probCase)
    probCase = (fileLst[4], fileLst[5])
    lst.append(probCase)
    probCase = (fileLst[6], fileLst[7])
    lst.append(probCase)
    probCase = (fileLst[8], fileLst[9])
    lst.append(probCase)
    probCase = (fileLst[10], fileLst[11])
    lst.append(probCase)
    probCase = (fileLst[12], fileLst[13])
    lst.append(probCase)
    probCase = (fileLst[14], fileLst[15])
    lst.append(probCase)
    probCase = (fileLst[16], fileLst[17])
    lst.append(probCase)
    probCase = (fileLst[18], fileLst[19])
    lst.append(probCase)

    # case 1
    print(
        "If together they have ",
        lst[0][0],
        " shirts, and Dude1 has ",
        lst[0][1],
     " more shirts than Dude2.")
    print("Dude1 has: ", (lst[0][0]-lst[0][1])/2+lst[0][1])
    print("Dude2 has: ", (lst[0][0]-lst[0][1])/2)

1 个答案:

答案 0 :(得分:0)

循环很棒

要构建列表,只需以步长2

循环输入
lst = []
for i in xrange(0, len(fileLst), 2):
    lst.append((fileLst[i], fileLst[i + 1]))

编辑:

正如Kevin建议的那样,我们也可以利用迭代器来避免烦人(毕竟这是python)列表索引:

for i, j in enumerate(range(1, len(fileLst)+1)): 
    lst.append(fileLst[i], fileLst[j])

您可以为打印使用类似的逻辑