Python输入,if语句,返回

时间:2013-10-05 21:00:08

标签: if-statement python-3.x return-value

我必须创建一个接受输入的函数,并返回相应的成绩。

例如,如果用户输入A +输出为90% 要么 如果输入是A输出是80% 要么 如果输入是B输出是70%

我有一些关于如何做到这一点的想法......但是我无法绕过如何回复声明?

def百分比(百分比):

if ( percentage )== A+
return ("90%")
elif (percentage)== A
return ("80%")

这是正确的解决方法吗?

3 个答案:

答案 0 :(得分:0)

好的,首先,欢迎使用Python。其次,这是Pythonic这样做的方式 - 定义一个字典:

grades = {'A+': "90%", 'A': "80%", ...}

然后

return grades[precentage]

将完成这项工作。

你需要防止等级不在dict中的情况,例如,如果用户输入了一些错误,例如G.有几种方法可以解决这个问题:

简单的if:

if precentage in grades:
    return grades[precentage]
else:
    return "bad precentage"

在你习惯了Python之后,你会对你的代码更加审美,并希望做得比状态两次Bote等级和precentage更好,所以你可以做到:

return grades.get(precentage, "bad precentage")

或者使用具有默认值的特殊字典:

import collections
grades = collections.defaultdict(lambda: "bad precentage", [("A+", "90%"), ("A", "80%")])

然后

grades[precentage]
输入错误后,

会自动返回“坏的百分比”。

答案 1 :(得分:0)

@ user2829744您不希望必须根据百分比重复调用if语句,这会使代码不必要地长。

相反,您希望有一个列表或元组(存储多个元素的变量),程序可以将用户输入的值与之比较,然后计算百分比标记。

以此为例:

def percentage(per):

 grades=["A+","A","B","C","D","E","F"]
 percentage=("90%","80%","70%","60%","50%","40%","30%")
 for i in range(7):
  if per.upper()==grades[i]:
   return percentage[i]

d="a"
print(percentage(d))

i计算到的数字是7,如果成绩中i的值(假设i为5),那么这将是成绩[5]这将是一个“E”)然后该函数返回百分比元组中i的值。在我的情况下,解释器输出80%

从逻辑上讲,你的处理方式(通过在单独的if语句中实际处理每个等级)也会起作用,但是就像我说你的代码会更长,你可能会在路上做一些错别字你必须编辑。当然,我的代码也有一些问题,比如用户输入我在元组中没有的等级。这很容易解决,因为你只需要告诉解释器如果发生这种情况该怎么做。

我知道有点简短,但我希望这有帮助

答案 2 :(得分:0)

你可以做这样的事情

    user_input = int(input("percentage:  ")
    if user_input < 0 and user_input > 10:
         print('F")

然后您可以复制代码并更改数字和退货等级 希望它有所帮助:)