Python 使用循环、元组、列表、字典等的销售计算器

Python 使用循环、元组、列表、字典等的销售计算器,python,Python,我正在尝试制作一个销售计算器,它可以显示不同的内容,例如本周的最大销售额是多少,哪一天是多少,本周的最低销售额是多少,哪一天是多少,所有天数加起来的总销售额是多少,本周的平均销售额,以及不到100美元的0美元销售佣金,销售额在100美元至250美元之间为25美元,销售额在250美元至500美元之间为30美元,销售额超过500美元为40美元 我尝试了不同的方法来计算平均值,但无法实现,我不知道如何计算销售佣金,以及如何将最小值和最大值与它们发生的日期联系起来 这就是我目前所做的: print ("

我正在尝试制作一个销售计算器,它可以显示不同的内容,例如本周的最大销售额是多少,哪一天是多少,本周的最低销售额是多少,哪一天是多少,所有天数加起来的总销售额是多少,本周的平均销售额,以及不到100美元的0美元销售佣金,销售额在100美元至250美元之间为25美元,销售额在250美元至500美元之间为30美元,销售额超过500美元为40美元

我尝试了不同的方法来计算平均值,但无法实现,我不知道如何计算销售佣金,以及如何将最小值和最大值与它们发生的日期联系起来

这就是我目前所做的:

print ("Sales Calculator Program")

print ('\n')


expenses = []
for day_number in range (1, 5 + 1):
    while True:
        user_input = float(input(f"Enter sales for day {day_number}\n> "))
        if user_input >= 0:
            expenses.append(user_input)
            break
        else:
            print(f"Amount may not be negative. Try again:")


print ('\n')       

average = average(expenses)
finalExpenses = sum(expenses)


print ("Total weekly sales were $" +str(finalExpenses))
print ("Average of the sales is $" +str(average))
这就是我想让它看起来的样子:

Enter sales for day 1: 10.22 (User input)
Enter sales for day 2: 4.12 (User input)
Enter sales for day 3: 3.78 (User input)
Enter sales for day 4: 6.82 (User input)
Enter sales for day 5: 22.45 (User input)

Maximum sales was on Friday which is $22.45
Minimum sales was on Wednesday which is $3.78
Total weekly sales were $47.39
Average of the sales is $9.48
Sales too low for commission must earn more than $100
谢谢大家!

print ("Sales Calculator Program")

print ('\n')


expenses = []
for day_number in range (1, 5 + 1):
    while True:
        user_input = float(input(f"Enter sales for day {day_number}\n> "))
        if user_input >= 0:
            expenses.append((day_number,user_input))
            break
        else:
            print(f"Amount may not be negative. Try again:")


print ('\n')       
max = max(expenses, key=lambda x: x[1])
min = min(expenses, key=lambda x: x[1])
total = sum(map(lambda x: int(x[1]), expenses))    
average = total/len(expenses)


for item in expenses :
    if item[0] == 1:
       Monday ...
对于其余的,你应该试试自己,现在你可以使用最大最小和等。。。在这里询问之前,请尝试了解一些内置函数:))


对于其余的,你应该试试自己,现在你可以使用最大最小和等。。。在询问以下问题之前,请尝试了解一些内置函数:)

您可以这样做

print ("Sales Calculator Program")

print ('\n')

expenses = []
for day in range(1, 6):
    while True:
        sales = float(input(f"Enter sales for day {day}\n> "))
        if sales >= 0:
            expenses.append((sales, day))
            break
        else:
            print(f"Amount may not be negative. Try again:")

print ('\n')       

days = ['', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']

maxval = max(expenses, key=lambda x: x[0]) # could also use operator.itemgetter
minval = min(expenses, key=lambda x: x[0])

total = sum(e[0] for e in expenses)
average = total / len(expenses)

print('Maximum sales was on %s which is $%.2f' % (days[maxval[1]], maxval[0]))
print('Minimum sales was on %s which is $%.2f' % (days[minval[1]], minval[0]))

print ("Total weekly sales were $%.2f" % total)
print ("Average of the sales is $%.2f" % (average))
if total < 100.0:
    print('Sales too low for commission must earn more than $100')
print(“销售计算器程序”)
打印(“\n”)
费用=[]
对于范围(1,6)内的日期:
尽管如此:
销售=浮动(输入(f“输入{day}\n>日的销售额”)
如果销售额>=0:
费用。追加((销售额,日))
打破
其他:
打印(f“金额不能为负数。请重试:)
打印(“\n”)
天数=[''‘星期一’、‘星期二’、‘星期三’、‘星期四’、‘星期五’]
maxval=max(expenses,key=lambda x:x[0])#也可以使用operator.itemgetter
minval=min(费用,关键字=lambda x:x[0])
总计=总额(e[0]表示费用中的e)
平均值=总额/长度(费用)
打印(“%s”上的最大销售额为%.2f%%(天[maxval[1]],maxval[0]))
打印(“%s”上的最低销售额为$%.2f%%(天[minval[1]],minval[0]))
打印(“每周总销售额为%.2f$%总计)”
打印(“平均销售额为%.2f”%(平均))
如果总数<100.0:
打印(‘佣金太低的销售收入必须超过100美元’)
将带有日索引的日值存储在元组中。然后,您可以使用带有键函数的
max
min
选择元素0作为计算max/min时使用的元素。打印时,元组中的第二个元素可用于索引到
days
数组中以获取日期名称

平均值的计算应该是不言自明的


请注意,浮点数不适合在任何需要正确的应用程序中存储货币值。相反,可以用美分/便士来存储值或使用。

您可以这样做

print ("Sales Calculator Program")

print ('\n')

expenses = []
for day in range(1, 6):
    while True:
        sales = float(input(f"Enter sales for day {day}\n> "))
        if sales >= 0:
            expenses.append((sales, day))
            break
        else:
            print(f"Amount may not be negative. Try again:")

print ('\n')       

days = ['', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']

maxval = max(expenses, key=lambda x: x[0]) # could also use operator.itemgetter
minval = min(expenses, key=lambda x: x[0])

total = sum(e[0] for e in expenses)
average = total / len(expenses)

print('Maximum sales was on %s which is $%.2f' % (days[maxval[1]], maxval[0]))
print('Minimum sales was on %s which is $%.2f' % (days[minval[1]], minval[0]))

print ("Total weekly sales were $%.2f" % total)
print ("Average of the sales is $%.2f" % (average))
if total < 100.0:
    print('Sales too low for commission must earn more than $100')
print(“销售计算器程序”)
打印(“\n”)
费用=[]
对于范围(1,6)内的日期:
尽管如此:
销售=浮动(输入(f“输入{day}\n>日的销售额”)
如果销售额>=0:
费用。追加((销售额,日))
打破
其他:
打印(f“金额不能为负数。请重试:)
打印(“\n”)
天数=[''‘星期一’、‘星期二’、‘星期三’、‘星期四’、‘星期五’]
maxval=max(expenses,key=lambda x:x[0])#也可以使用operator.itemgetter
minval=min(费用,关键字=lambda x:x[0])
总计=总额(e[0]表示费用中的e)
平均值=总额/长度(费用)
打印(“%s”上的最大销售额为%.2f%%(天[maxval[1]],maxval[0]))
打印(“%s”上的最低销售额为$%.2f%%(天[minval[1]],minval[0]))
打印(“每周总销售额为%.2f$%总计)”
打印(“平均销售额为%.2f”%(平均))
如果总数<100.0:
打印(‘佣金太低的销售收入必须超过100美元’)
将带有日索引的日值存储在元组中。然后,您可以使用带有键函数的
max
min
选择元素0作为计算max/min时使用的元素。打印时,元组中的第二个元素可用于索引到
days
数组中以获取日期名称

平均值的计算应该是不言自明的


请注意,浮点数不适合在任何需要正确的应用程序中存储货币值。相反,将值存储为分/便士或使用。

用于最小值和最大值。内置的最小值和最大值将需要太多的工作(它们返回值,而不是列表中需要计算出哪一天的索引),写下你自己的,返回列表中的索引。@Paul Rooney除了能够返回一周中的某一天之外,我还做了很多工作。我知道我需要它来匹配1是星期一,2是星期二,3是星期三,4是星期四,5是星期五,但我不知道怎么做,我在过去的几个小时里一直在尝试最小值和最大值。内置的最小值和最大值将是太多的工作(它们返回的是值,而不是列表中的索引,您需要计算出它是哪一天),写下你自己的,返回列表中的索引。@Paul Rooney除了能够返回一周中的某一天之外,我还做了很多工作。我知道我需要它来匹配1是星期一,2是星期二,3是星期三,4是星期四,5是星期五,但我不知道如何做我已经试了几个小时了