【发布时间】:2018-03-19 21:32:32
【问题描述】:
我正在为 Tkinter 的假设风险投资家创建一个程序,以输入他们去年和去年第二年的业务收入。该程序将汇总金额,对其进行分析并分配分数(范围从 0 到 18)。 18 是满分,这意味着收入很高。 0 是最低分,表示收入过低。
具体来说,我设置了 50,000 美元的增量(例如,收入在 100,000 美元到 150,000 美元之间的任何总价值将加 1 分,收入在 150,000 美元和 200,000 美元之间的任何总价值将加 2 分,等等. 一直到 18)。
因为这会占用很多代码行并且效率不高,有没有更好的方法来抽象这一切?我仍然想保留特异性。
代码如下:
TotalPoints = 0
def SumOfTwoYearRevenue():
global TotalPoints
LastYearRevenue = (float(Revenue_LastYear.get()))
SecondLastYearRevenue = (float(Revenue_SecondLastYear.get()))
Sum = LastYearRevenue + SecondLastYearRevenue
if Sum < 100000:
pass
elif Sum >= 100000 and Sum < 150000:
TotalPoints = TotalPoints + 1
elif Sum >= 150000 and Sum < 200000:
TotalPoints = TotalPoints + 2
elif Sum >= 200000 and Sum < 250000:
TotalPoints = TotalPoints + 3
elif Sum >= 250000 and Sum < 300000:
TotalPoints = TotalPoints + 4
elif Sum >= 300000 and Sum < 350000:
TotalPoints = TotalPoints + 5
elif Sum >= 350000 and Sum < 400000:
TotalPoints = TotalPoints + 6
#etc... all the way until "TotalPoints = TotalPoints + 18"
【问题讨论】:
-
类似
while Sum > TotalPoints*50000: TotalPoints += 1。我也可以想出更多办法。 -
@Tobias,使用
while循环不会有效。 -
@KeyurPotdar 我会争辩,因为比较的次数太少了,无论如何都没关系
-
@Tobias 呵呵,我不明白这部分: while Sum > TotalPoints*50000 。因为一开始TotalPoints不会是0吗?
-
这是Code Review 的绝佳候选者(请注意,他们的问题格式略有不同,因此请务必阅读他们的“导览”和“如何提问”页面)。
标签: python python-3.x