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