每次迭代存储不同变量的循环?

时间:2018-06-06 15:59:42

标签: python loops

有没有办法可以缩短这段代码,或者使用每次运行时存储不同变量的循环?我需要它来存储不同的变量,而不是在循环中覆盖相同的变量。截至目前,他们的代码非常冗长,并且在显示我的最终结果之前,在编码后的五次迭代后结束。非常感谢任何帮助,谢谢!

EntityScan

1 个答案:

答案 0 :(得分:1)

试试这个:

ans = 'y'
opps = []
sales = []
addon = []
while ans not in ['y', 'Y', 'yes', 'Yes', 'YES']:
    opps.append(float(input("Number of opportunities: ")))
    sales.append(float(input("Quantity of of sales: ")))
    addon.append(float(input("Addon $ amount: ")))
    total.append(float(input("Sales dollar amount: ")))

    cra =  (sales[-1] / opps[-1]) * 100
    addonp = (addon[-1] / total[-1]) * 100
    print("Results:\n" + "CRA %: " + str(cra) + "%\n" +"Addon %: " + str(addonp) + "%\n")

    ans = str(input("Continue? (Y/N)"))

oppst = sum(opps)
salest = sum(sales)
addont = sum(addon)
cratp = (salest / oppst) * 100
tsales = sum(sales)
addontp = (addont / tsales) * 100

print("Your totals are: \n" + "\n" + "Opportunities: " + str(int(oppst)) + "\n" + "\n" + "# of Sales: " + str(int(salest)) + "\n" + "\n" + "Addon $ amount: " + "$" + str(addont) + "\n" + "\n" + "Addon %: " + str(addontp) + "%\n" + "\n" + "CRA %: " +  str(cratp) + "%\n" + "\n" + "Total Sales: " + "$" + str(tsales))

<强>解释

简单地说,您想使用lists。只要您想在一个变量下存储多个数据值,就会使用它们。在这种情况下,每次都不需要创建新变量,因为您可以简单地追加(添加)到列表中。只要ans在白名单中,循环就会运行。结束时,您的计算总计的代码将会运行(请注意,sum()可用于计算变量之和,或者在本例中为列表)。