发起人希望能够根据捐助者对竞选总体目标的贡献程度对其进行分类。
编写一个函数easy_donor_rank(percent_donated),该函数接受一个表示捐赠百分比的数字,并返回一个字符串,其中包含通过进行此类捐赠而获得的排名。
例如,函数调用easy_donor_rank(1.0)应该返回字符串'Bronze'。
请参阅下表以查看捐助者等级列表。
捐赠者分类
我现在拥有的代码可以正常工作,但是每次输出的末尾总是出现“ 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")
答案 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