Это лучший способ обрабатывать 0 как пользовательский ввод? - PullRequest
0 голосов
/ 12 июня 2018

Я пишу программу для своего бизнеса, которая потребует некоторого разделения.Для одного из пользовательских вводов возможно, что 0 - это переменная, но тогда ее необходимо разделить.Если opps == 0, то sales и addon не имеют значения, но итоговое значение все равно может иметь переменную, назначенную ему пользователем.Строка 9 содержит мое решение, но требует ввода ложной информации.Есть ли лучший способ справиться с этим?

ans = 'y'

opps = []
sales = []
addon = []
total = []

while ans in ['y', 'Y', 'yes', 'Yes', 'YES']:
    opps.append(int(input("Number of opportunities: ")))
    while opps[-1] == 0:
        opps.append(int(input("Number of opportunities can not equal 0, input at least 1: ")))
    sales.append(int(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("\nResults: " + "\nAddon %: " + "%.2f" % addonp + "%\n" "CRA %: " + "%.2f" % cra + "%\n")

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

if ans not in ['y', 'Y', 'yes', 'Yes', 'YES']:

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

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

input("\nPress any key to close...")
...