如果,Elif和Else没有在利润计算器应用程序中显示正确的打印值



我是StackOverflow的新手,但从8岁起我就一直在"摆弄"HTML和CSS。我最近(25岁(选修了一门关于Python的课程,并决定将编程作为我职业道路的扩展。我正在开发一个小程序,该程序允许我和其他Shopify电子商务所有者(我目前居住的巴西(使用用户输入(产品零售价、产品成本、注册会计师(计算单个产品的利润率。它还应该显示利润率,这取决于商店/供应商无息资助产品的次数(parcelas(。存在某种问题,程序只显示1次付款的利润率。我已经做了几个小时了,试着在谷歌上搜索,但似乎找不到与我的问题相关的具体问题。我最后的办法是在我上完疯狂的厕所之前向你们寻求帮助。程序以葡萄牙语显示,但所有变量都以英语分配。如果你需要任何帮助来理解代码,请告诉我!我试着让它尽可能地被理解。

#Product Retail Price
product_retail_price = float(input("Valor do produto na loja em Reais (Formato 00.00): "))
#Costs
product_cost = float(input("Valor do produto no fornecedor em Reais (Formato 00.00): "))
cpa = float(input("Custo por aquisição (Formato 00.00): "))
fee_shopify = (product_retail_price / 100)*2
fee_mercadopago = (product_retail_price / 100)*4.99
fee_finance_2 = (product_retail_price / 100)*2.03
fee_finance_3 = (product_retail_price / 100)*4.06
fee_finance_4 = (product_retail_price / 100)*6.09
fee_finance_5 = (product_retail_price / 100)*7.64
fee_finance_6 = (product_retail_price / 100)*8.92
fee_finance_7 = (product_retail_price / 100)*10.06
fee_finance_8 = (product_retail_price / 100)*10.62
fee_finance_9 = (product_retail_price / 100)*11.23
fee_finance_10 = (product_retail_price / 100)*12.41
fee_finance_11 = (product_retail_price / 100)*13.60
fee_finance_12 = (product_retail_price / 100)*14.80
fee_finance_15 = (product_retail_price / 100)*18.47
fee_finance_18 = (product_retail_price / 100)*22.23
fee_finance_24 = (product_retail_price / 100)*23.83
#Calculations
parcelas = int(input("Número de parcelas sem juros (Formato: 0-24): "))
base_profit = round(product_retail_price - product_cost - fee_shopify - fee_mercadopago - cpa, 2)
profit_2 = round(base_profit - fee_finance_2 - cpa, 2)
profit_3 = round(base_profit - fee_finance_3 - cpa, 2)
profit_4 = round(base_profit - fee_finance_4 - cpa, 2)
profit_5 = round(base_profit - fee_finance_5 - cpa, 2)
profit_6 = round(base_profit - fee_finance_6 - cpa, 2)
profit_7 = round(base_profit - fee_finance_7 - cpa, 2)
profit_8 = round(base_profit - fee_finance_8 - cpa, 2)
profit_9 = round(base_profit - fee_finance_9 - cpa, 2)
profit_10 = round(base_profit - fee_finance_10 - cpa, 2)
profit_11 = round(base_profit - fee_finance_11 - cpa, 2)
profit_12 = round(base_profit - fee_finance_12 - cpa, 2)
profit_15 = round(base_profit - fee_finance_15 - cpa, 2)
profit_18 = round(base_profit - fee_finance_18 - cpa, 2)
profit_24 = round(base_profit - fee_finance_24 - cpa, 2)
#Print Values
print("n")
if parcelas == 0 or 1:
print(f"Lucro à vista: R${base_profit}")
elif parcelas == 2:
print(f"Lucro à vista: R${base_profit}")
print(f"Lucro parcelado 2x: R${profit_2}")
elif parcelas == 3:
print(f"Lucro à vista: R${base_profit}")
print(f"Lucro parcelado 2x: R${profit_2}")
print(f"Lucro parcelado 3x: R${profit_3}")
elif parcelas == 4:
print(f"Lucro à vista: R${base_profit}")
print(f"Lucro parcelado 2x: R${profit_2}")
print(f"Lucro parcelado 3x: R${profit_3}")
print(f"Lucro parcelado 4x: R${profit_4}")
elif parcelas == 5:
print(f"Lucro à vista: R${base_profit}")
print(f"Lucro parcelado 2x: R${profit_2}")
print(f"Lucro parcelado 3x: R${profit_3}")
print(f"Lucro parcelado 4x: R${profit_4}")
print(f"Lucro parcelado 5x: R${profit_5}")
elif parcelas == 6:
print(f"Lucro à vista: R${base_profit}")
print(f"Lucro parcelado 2x: R${profit_2}")
print(f"Lucro parcelado 3x: R${profit_3}")
print(f"Lucro parcelado 4x: R${profit_4}")
print(f"Lucro parcelado 5x: R${profit_5}")
print(f"Lucro parcelado 6x: R${profit_6}")
elif parcelas == 7:
print(f"Lucro à vista: R${base_profit}")
print(f"Lucro parcelado 2x: R${profit_2}")
print(f"Lucro parcelado 3x: R${profit_3}")
print(f"Lucro parcelado 4x: R${profit_4}")
print(f"Lucro parcelado 5x: R${profit_5}")
print(f"Lucro parcelado 6x: R${profit_6}")
print(f"Lucro parcelado 7x: R${profit_7}")
elif parcelas == 8:
print(f"Lucro à vista: R${base_profit}")
print(f"Lucro parcelado 2x: R${profit_2}")
print(f"Lucro parcelado 3x: R${profit_3}")
print(f"Lucro parcelado 4x: R${profit_4}")
print(f"Lucro parcelado 5x: R${profit_5}")
print(f"Lucro parcelado 6x: R${profit_6}")
print(f"Lucro parcelado 7x: R${profit_7}")
print(f"Lucro parcelado 8x: R${profit_8}")
elif parcelas == 9:
print(f"Lucro à vista: R${base_profit}")
print(f"Lucro parcelado 2x: R${profit_2}")
print(f"Lucro parcelado 3x: R${profit_3}")
print(f"Lucro parcelado 4x: R${profit_4}")
print(f"Lucro parcelado 5x: R${profit_5}")
print(f"Lucro parcelado 6x: R${profit_6}")
print(f"Lucro parcelado 7x: R${profit_7}")
print(f"Lucro parcelado 8x: R${profit_8}")
print(f"Lucro parcelado 9x: R${profit_9}")
elif parcelas == 10:
print(f"Lucro à vista: R${base_profit}")
print(f"Lucro parcelado 2x: R${profit_2}")
print(f"Lucro parcelado 3x: R${profit_3}")
print(f"Lucro parcelado 4x: R${profit_4}")
print(f"Lucro parcelado 5x: R${profit_5}")
print(f"Lucro parcelado 6x: R${profit_6}")
print(f"Lucro parcelado 7x: R${profit_7}")
print(f"Lucro parcelado 8x: R${profit_8}")
print(f"Lucro parcelado 9x: R${profit_9}")
print(f"Lucro parcelado 10x: R${profit_10}")
elif parcelas == 11:
print(f"Lucro à vista: R${base_profit}")
print(f"Lucro parcelado 2x: R${profit_2}")
print(f"Lucro parcelado 3x: R${profit_3}")
print(f"Lucro parcelado 4x: R${profit_4}")
print(f"Lucro parcelado 5x: R${profit_5}")
print(f"Lucro parcelado 6x: R${profit_6}")
print(f"Lucro parcelado 7x: R${profit_7}")
print(f"Lucro parcelado 8x: R${profit_8}")
print(f"Lucro parcelado 9x: R${profit_9}")
print(f"Lucro parcelado 10x: R${profit_10}")
print(f"Lucro parcelado 11x: R${profit_11}")
elif parcelas == 12 or 13 or 14:
print(f"Lucro à vista: R${base_profit}")
print(f"Lucro parcelado 2x: R${profit_2}")
print(f"Lucro parcelado 3x: R${profit_3}")
print(f"Lucro parcelado 4x: R${profit_4}")
print(f"Lucro parcelado 5x: R${profit_5}")
print(f"Lucro parcelado 6x: R${profit_6}")
print(f"Lucro parcelado 7x: R${profit_7}")
print(f"Lucro parcelado 8x: R${profit_8}")
print(f"Lucro parcelado 9x: R${profit_9}")
print(f"Lucro parcelado 10x: R${profit_10}")
print(f"Lucro parcelado 11x: R${profit_11}")
print(f"Lucro parcelado 12x: R${profit_12}")
elif parcelas == 15 or 18 or 17:
print(f"Lucro à vista: R${base_profit}")
print(f"Lucro parcelado 2x: R${profit_2}")
print(f"Lucro parcelado 3x: R${profit_3}")
print(f"Lucro parcelado 4x: R${profit_4}")
print(f"Lucro parcelado 5x: R${profit_5}")
print(f"Lucro parcelado 6x: R${profit_6}")
print(f"Lucro parcelado 7x: R${profit_7}")
print(f"Lucro parcelado 8x: R${profit_8}")
print(f"Lucro parcelado 9x: R${profit_9}")
print(f"Lucro parcelado 10x: R${profit_10}")
print(f"Lucro parcelado 11x: R${profit_11}")
print(f"Lucro parcelado 12x: R${profit_12}")
print(f"Lucro parcelado 15x: R${profit_15}")
elif parcelas == 18 or 19 or 20 or 21 or 22 or 23:
print(f"Lucro à vista: R${base_profit}")
print(f"Lucro parcelado 2x: R${profit_2}")
print(f"Lucro parcelado 3x: R${profit_3}")
print(f"Lucro parcelado 4x: R${profit_4}")
print(f"Lucro parcelado 5x: R${profit_5}")
print(f"Lucro parcelado 6x: R${profit_6}")
print(f"Lucro parcelado 7x: R${profit_7}")
print(f"Lucro parcelado 8x: R${profit_8}")
print(f"Lucro parcelado 9x: R${profit_9}")
print(f"Lucro parcelado 10x: R${profit_10}")
print(f"Lucro parcelado 11x: R${profit_11}")
print(f"Lucro parcelado 12x: R${profit_12}")
print(f"Lucro parcelado 15x: R${profit_15}")
print(f"Lucro parcelado 18x: R${profit_18}")
else: 
print(f"Lucro à vista: R${base_profit}")
print(f"Lucro parcelado 2x: R${profit_2}")
print(f"Lucro parcelado 3x: R${profit_3}")
print(f"Lucro parcelado 4x: R${profit_4}")
print(f"Lucro parcelado 5x: R${profit_5}")
print(f"Lucro parcelado 6x: R${profit_6}")
print(f"Lucro parcelado 7x: R${profit_7}")
print(f"Lucro parcelado 8x: R${profit_8}")
print(f"Lucro parcelado 9x: R${profit_9}")
print(f"Lucro parcelado 10x: R${profit_10}")
print(f"Lucro parcelado 11x: R${profit_11}")
print(f"Lucro parcelado 12x: R${profit_12}")
print(f"Lucro parcelado 15x: R${profit_15}")
print(f"Lucro parcelado 18x: R${profit_18}")
print(f"Lucro parcelado 24x: R${profit_24}")
print("n")
print("AVISO: Lucro calculado usando as taxas atuais do MercadoPago (23/07/2018)")

类似的语句

elif parcelas == 15 or 18 or 17:

不会起作用。你需要做一些类似的事情:

elif parcelas == 15 or parcelas == 18 or parcelas == 17:

您可以考虑制作

elif parcelas == 12 or 13 or 14:

elif parcelas in [12,13,14]:

等等。

因为parcelas == 12 or 13 or 14:总是返回True,所以它将像parcelas==121314一样求值,这肯定是True,并忽略以下语句。

创建打印报表列表:

>>> lst=[]
>>> for i in range(2,24):
lst.append("Lucro parcelado "+str(i)+"x: R${profit_"+str(i)+"}")

>>> lst
['Lucro parcelado 2x: R${profit_2}', 'Lucro parcelado 3x: R${profit_3}', 'Lucro parcelado 4x: R${profit_4}', 'Lucro parcelado 5x: R${profit_5}', 'Lucro parcelado 6x: R${profit_6}', 'Lucro parcelado 7x: R${profit_7}', 'Lucro parcelado 8x: R${profit_8}', 'Lucro parcelado 9x: R${profit_9}', 'Lucro parcelado 10x: R${profit_10}', 'Lucro parcelado 11x: R${profit_11}', 'Lucro parcelado 12x: R${profit_12}', 'Lucro parcelado 13x: R${profit_13}', 'Lucro parcelado 14x: R${profit_14}', 'Lucro parcelado 15x: R${profit_15}', 'Lucro parcelado 16x: R${profit_16}', 'Lucro parcelado 17x: R${profit_17}', 'Lucro parcelado 18x: R${profit_18}', 'Lucro parcelado 19x: R${profit_19}', 'Lucro parcelado 20x: R${profit_20}', 'Lucro parcelado 21x: R${profit_21}', 'Lucro parcelado 22x: R${profit_22}', 'Lucro parcelado 23x: R${profit_23}']
>>> 

在行

if parcelas == 0 or 1:

有两个单独的条件被评估parcelas == 01。由于1将被计算为true,因此将始终输入此语句。您需要确保与您想要的每个值进行比较-parcelas == 0 or parcelas == 1

其他线路也存在类似问题。

还有其他写这篇文章的方法会更简洁,但我对python不够熟悉,不知道这些方法的语法。如果你只关心一个范围,而不是离散值的列表,那么考虑对这些条件使用parcelas >= 0 and parcelas < 2之类的东西。

最新更新