使用数字的Python排名程序

时间:2019-03-19 04:05:08

标签: python

发起人希望能够根据捐助者对竞选总体目标的贡献程度对其进行分类。

编写一个函数easy_donor_rank(percent_donated),该函数接受一个表示捐赠百分比的数字,并返回一个字符串,其中包含通过进行此类捐赠而获得的排名。

例如,函数调用easy_donor_rank(1.0)应该返回字符串'Bronze'。

请参阅下表以查看捐助者等级列表。

捐赠者分类

  • 捐赠百分比捐赠者排名
  • 0%或以下
  • 误差小于2%的青铜
  • 2%到15%(含15%)的银大于15%黄金

我现在拥有的代码可以正常工作,但是每次输出的末尾总是出现“ None”

def easy_donor_rank(percent_donated):

    if percent_donated <= 0:
        print("Error")

    if percent_donated < 2:
        print("Bronze")

    elif percent_donated >= 2 and percent_donated <= 15:
        print("Silver")

    else:
        print("Gold")

3 个答案:

答案 0 :(得分:0)

基本上,您的代码对我有用。我仅针对您的if条件进行了少量修改。我将第二个if更改为elif

def easy_donor_rank(percent_donated):
    if percent_donated <= 0:
        print("Error")
    elif percent_donated < 2:
        print("Bronze")
    elif percent_donated <= 15:
        print("Silver")
    else:
        print("Gold")

答案 1 :(得分:0)

在python 3.6中有效

def easy_donor_rank(percent_donated):
    if percent_donated <= 0:
        return "Error"
    elif percent_donated < 2:
        return ("Bronze")

    elif percent_donated >= 2 and percent_donated <= 15:
        return ("Silver")
    else:
        return ("Gold")

答案 2 :(得分:0)

  

我现在拥有的代码可以使用,但是最后总是得到“无”   每个输出。

我将假设您正在尝试print返回easy_donor_rank

$ cat test.py
def easy_donor_rank(percent_donated):    
    if percent_donated <= 0:
        print("Error")
    if percent_donated < 2:
        print("Bronze")
    elif percent_donated >= 2 and percent_donated <= 15:
        print("Silver")
    else:
        print("Gold")

print(easy_donor_rank(1.2))

但是因为您什么都不return,它将返回None,因此None被打印。

$ python3 test.py
Bronze
None

您只需要return结果,而不是print将其放入函数中。
参见What is the purpose of the return statement?

$ cat test.py
def easy_donor_rank(percent_donated):
    if percent_donated <= 0:
        return "Error"
    if percent_donated < 2:
        return "Bronze"
    elif percent_donated >= 2 and percent_donated <= 15:
        return ("Silver")
    else:
        return "Gold"

print(easy_donor_rank(1.2))

$ python3 test.py
Bronze