当用户在Python中要求使用整个函数时,我如何调用它?

当用户在Python中要求使用整个函数时,我如何调用它?,python,function,class,if-statement,while-loop,Python,Function,Class,If Statement,While Loop,我是Python新手,我试图弄清楚如果用户输入“Y”,如何创建和if循环来重新启动整个函数(在本例中为programOutput函数)。此外,如果我对Class和def的使用完全错误,那么我欢迎提供帮助和建设性的批评。谢谢 import math class userEntry: userName = input("Enter Customer Name: ") userQuantityPurchased = int(input("Enter Q

我是Python新手,我试图弄清楚如果用户输入“Y”,如何创建和if循环来重新启动整个函数(在本例中为programOutput函数)。此外,如果我对Class和def的使用完全错误,那么我欢迎提供帮助和建设性的批评。谢谢

import math


class userEntry:
    userName = input("Enter Customer Name: ")
    userQuantityPurchased = int(input("Enter Quantity Purchased: "))
    userPrice = int(input("Enter Price per Unit: "))

class taxCalculator:
    stateTax = .09
    countyTax = .05
    discountRate = .1
    salesAmount = float(str(userEntry.userQuantityPurchased * userEntry.userPrice))
    stateCalculator = str(salesAmount * stateTax)
    countyCalculator = str(salesAmount * countyTax)
    totalTax = sum = float(stateCalculator) + float(countyCalculator)
    grossSales = sum = float(salesAmount) - float(totalTax)
    discount = sum = float(discountRate) * float(salesAmount)
    netSales = sum = float(grossSales) - float(discount)

    programOutput()
    

def programOutput():

    print("---------------------------------------")
    print("Here is your Net Sale!")
    print("---------------------------------------")
    print("Customer Name:  ", userEntry.userName)
    print("Sales Amount: ", "$", taxCalculator.salesAmount)
    print("Total Taxes: ", "$", taxCalculator.totalTax)
    print("---------------------------------------")
    print("\n")
    print("Gross Sales: ", "$", taxCalculator.grossSales)
    print("Discount: ", "$", taxCalculator.discount)
    print("\n")
    print("---------------------------------------")
    print("\n")
    print("Net Sales: ", "$", taxCalculator.netSales)
    print("---------------------------------------")
    print("---------------------------------------")
    print("\n")
    print("Thank you for your business!")
    print("\n")
    nextSale = input("Do you want to process another sale? (Y/N):   ")

    

    if nextSale == 'Y':
        programOutput()

使用循环,而不是递归

您需要将请求输入的代码放入循环中,否则您将继续打印相同的值

def programOutput():
    print("---------------------------------------")
    print("Here is your Net Sale!")
    print("---------------------------------------")
    print("Customer Name:  ", userName)
    print("Sales Amount: ", "$", salesAmount)
    print("Total Taxes: ", "$", totalTax)
    print("---------------------------------------")
    print("\n")
    print("Gross Sales: ", "$", grossSales)
    print("Discount: ", "$", discount)
    print("\n")
    print("---------------------------------------")
    print("\n")
    print("Net Sales: ", "$", netSales)
    print("---------------------------------------")
    print("---------------------------------------")
    print("\n")
    print("Thank you for your business!")
    print("\n")

while True:
    userName = input("Enter Customer Name: ")
    userQuantityPurchased = int(input("Enter Quantity Purchased: "))
    userPrice = int(input("Enter Price per Unit: "))

    stateTax = .09
    countyTax = .05
    discountRate = .1
    salesAmount = float(str(userEntry.userQuantityPurchased * userEntry.userPrice))
    stateCalculator = str(salesAmount * stateTax)
    countyCalculator = str(salesAmount * countyTax)
    totalTax = sum = float(stateCalculator) + float(countyCalculator)
    grossSales = sum = float(salesAmount) - float(totalTax)
    discount = sum = float(discountRate) * float(salesAmount)
    netSales = sum = float(grossSales) - float(discount)

    programOutput()

    nextSale = input("Do you want to process another sale? (Y/N):   ")
    if nextSale.lower() == 'n':
        break

不需要类,只需设置普通变量。或者您可以定义返回值的函数,并在循环中分配它们。

这是使用类的一种非常不寻常的方式。类通常用于创建类的实例,它们有方法定义。谢谢!但现在,当输入为“Y”时,它只是重新打印“您想处理另一笔销售吗?”问题,而不是重新打印整个程序。有什么办法吗?不应该这样。它应该返回到
userName=input(“输入客户名称”)