Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用同一个句子打印多个变量而不重新编写句子?_Python - Fatal编程技术网

Python 如何使用同一个句子打印多个变量而不重新编写句子?

Python 如何使用同一个句子打印多个变量而不重新编写句子?,python,Python,我有一个包含数字的txt文件 每两个数字都是“一种情况”(例如,21\n3\n45\n7\n:21和3将是一种情况,45和7将是另一种情况,依此类推) 有十箱。我编写了一个Python脚本,可以读取txt文件并将其中的字符串转换为整数,它们就是整数 现在我需要打印一个句子,每个案例的第一个数字和第二个数字。我不想写十句话,有没有办法修复这个代码 file = open('problemCases.txt', 'r') fileLst = file.readlines() fileLst = [

我有一个包含数字的txt文件

每两个数字都是“一种情况”(例如,
21\n3\n45\n7\n
21
3
将是一种情况,
45
7
将是另一种情况,依此类推)

有十箱。我编写了一个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)
循环是伟大的

要构建列表,只需在输入上循环,步长为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])

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

更具python风格:
用于枚举中的i,j(范围(1,len(fileLst)+1)):lst.append(fileLst[i],fileLst[j])
。还有,
num
来自哪里?很好的调用,迭代器FTWBrilliant!不管你信不信,这帮了很多人。非常感谢修复,现在看起来更好了,或者至少可以接受lol