使用 Python 计算扣除费用后的 Upwork 总金额

Calculate total amount from Upwork after fee deduction using Python

提问人: 提问时间:3/31/2022 更新时间:4/1/2022 访问量:168

问:

我正在尝试计算从 Upwork 中扣除费用后的总金额。我找到了这个网站,但我想使用 Python 制作它。以下是 Upwork 的指南:

来自客户的 0-500 美元收入:收入收取 20% 的服务费。

500.01-10,000 美元的客户收入:10% 服务费。

来自客户的收入为 10,000.01 美元或以上:5% 服务费。

代码:

budget = int(input("Enter the price (USD): $"))

if 0 <= budget <= 500:
    cut = int((20/100)*budget)
    budget = budget - cut
elif 501.01 <= budget <= 10000:
    cut = int((10/100)*budget)
    budget = budget - cut
elif budget >= 10000.01:
    cut = int((5/100)*budget)
    budget = budget - cut

print(f'Total price after Upwork Fee is ${budget}.')

根据 Upwork 的说法,

对于有新客户的 600 美元项目,您的自由职业者服务费将为前 20 美元的 500% 和剩余 100 美元的 100%。您的费用后收入为 490 美元。

我制作了这个计算器,但它仅适用于第一个条件。如果预算是,我会得到,但在这里我得到了.有人可以帮我解决哪里出了问题吗?$0-$500 in earnings$600$490$540

--更新--

我也试过这个,但没有用:

budget = int(input("Enter the price (USD): $"))

a = 0 <= budget <= 500
b = 501.01 <= budget <= 10000
c = budget >= 10000.01

cut1 = int((20/100)*budget)
cut2 = int((10/100)*budget)
cut3 = int((5/100)*budget)    
           

if a:
    cut = cut1
    budget = budget - cut
if a and b:
    cut = cut2
    budget = budget - cut
if a and b and c:
    cut = cut3
    budget = budget - cut

print(f'Total price after Upwork Fee is ${budget}.')
python if 语句 百分比 逻辑 upwork-api

评论


答:

1赞 Mustafa Fatih Şen 3/31/2022 #1
budget = int(input("Enter the price (USD): $"))

def discount(money,percent):
    cut = int((percent/100)*money)
    money= money- cut
    return money

if 0 <= budget <= 500:
    budget = discount(budget ,20)
elif 500.01 <= budget <= 10000:
    budget2 = discount(500 ,20)
    budget = discount(budget-500 ,10)
    budget = budget + budget2
elif budget >= 10000.01:
    budget3 = discount(500 ,20)
    budget2 = discount(10000 ,10)
    budget = discount(budget-10500 ,5)
    budget = budget + budget2 + budget3

    

print(f'Total price after Upwork Fee is ${budget}.')

评论

0赞 3/31/2022
如果预算是,根据我在问题中提到的这个网站,它应该是,但是用你的方法,我得到了.$35000$32700$31450
0赞 3/31/2022
这里似乎只有最后一个条件有问题。因为如果总预算是 ,它应该给出,但你的方法给出 .你能更新一下吗?elif$10500$9425$9400
1赞 H.A.H. 3/31/2022 #2

如果我理解正确的话,这里有两件事是错误的:

  1. 你从预算中减去削减。
  2. 将切割应用于最大值,而不是“diapason”值。

我的猜测是你需要像这个pesudo代码这样的东西:

if budget > 0
cut+= 0.20*MIN(Budget, 500)
if budget > 500
cut+= 0.10*MIN(Budget-500, 9500) // We already applied the cut to the first 500
if budget > 10000
cut+= 0.05*(Budget-10000) // we already applied a cut to the first 10000

所以:

  1. 不要修改预算
  2. 累加切割
  3. 最后减去它。