我刚开始学习python,我有一个为逻辑目的构建距离计算器的项目。 所以主代码要求输入一些调色板和以公里为单位的距离。 然后前150公里乘以2作为价格。 接下来的150公里(直到300公里)乘以1.8。(前150公里加300美元) 最后,在300公里以上,乘以1.6。你知道吗
但我们还有另一个微妙之处,我们有一个帕莱系数,它是乘的,它随着公里数的变化而变化,就像价格系数一样。你知道吗
所以我让你看看我目前的代码,这是一个有点大,但我找不到一个方法来优化它。 我把代码分为两个文件,“Function”和“main”。你知道吗
给你:
功能:
`
def calcul150(pal, distance):
if distance > 150:
prix = 300
else:
prix = float(distance * 2)
if pal <= 4:
prix = prix * 0.4
elif pal <= 8:
prix = prix * 0.5
elif pal <= 12:
prix = prix * 0.6
elif pal <= 16:
prix = prix * 0.7
elif pal <= 20:
prix = prix * 0.8
elif pal <= 24:
prix = prix * 0.85
elif pal <= 28:
prix = prix * 0.9
print(prix)
return prix
def calcul300(pal, distance):
prix = calcul150(pal, distance)
if distance > 300:
distance = 300
if pal <= 4:
prix = prix + (distance-150) * 1.8 * 0.3
elif pal <= 8:
prix = prix + (distance-150) * 1.8 * 0.4
elif pal <= 12:
prix = prix + (distance-150) * 1.8 * 0.5
elif pal <= 16:
prix = prix + (distance-150) * 1.8 * 0.6
elif pal <= 20:
prix = prix + (distance-150) * 1.8 * 0.7
elif pal <= 24:
prix = prix + (distance-150) * 1.8 * 0.75
elif pal <= 28:
prix = prix + (distance-150) * 1.8 * 0.8
else:
prix = prix + (distance-150) * 1.8
print(prix)
return prix
def calculLD(pal, distance):
prix = calcul300(pal, distance)
if pal <= 4:
prix = prix + (distance-300) * 1.6 * 0.2
elif pal <= 8:
prix = prix + (distance-300) * 1.6 * 0.3
elif pal <= 12:
prix = prix + (distance-300) * 1.6 * 0.4
elif pal <= 16:
prix = prix + (distance-300) * 1.6 * 0.5
elif pal <= 20:
prix = prix + (distance-300) * 1.6 * 0.6
elif pal <= 24:
prix = prix + (distance-300) * 1.6 * 0.65
elif pal <= 28:
prix = prix + (distance-300) * 1.6 * 0.7
else:
prix = prix + (distance-300) * 1.6
print(prix)
return prix
`
主要是:
from function import *
pal = int(input("How many palets ? "))
distance = float(input("Distance ? "))
prix = float(0.0)
i = int(0)
if distance <= 150:
prix = calcul150(pal, distance)
elif distance <= 300:
prix = calcul300(pal, distance)
else:
prix = calculLD(pal, distance)
print("price is {} dollars" .format(prix))
input("")
您可以根据palets在
dict
中的prix相乘值来存储palets阈值,然后查找该dict中高于pal
的最小键,然后使用其值来相乘prix。你知道吗对于主要部分,您不需要将
0
转换为int
和0.0
转换为float
,您只需初始化这些值输出:
相关问题 更多 >
编程相关推荐