0

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

例如,如果用户输入 A+,输出为 90%,或者输入为 A,输出为 80%,或者输入为 B,输出为 70%

我有一些关于如何做到这一点的想法......但我无法解决如何返回声明的问题?

def 百分比(百分比):

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

这是正确的方法吗?

4

3 回答 3

0

你可以做这样的事情

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

然后你可以复制代码并更改数字和返回等级希望它有帮助:)

于 2014-11-10T22:45:22.450 回答
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,如果iin Grades 的值(假设i是 5,那么这将是 Grades[5],这将是一个“E”)然后函数返回i百分比中的值元组。在我的例子中,解释器输出 80%

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

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

于 2013-10-08T09:43:13.027 回答
0

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

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

然后

return grades[precentage]

将完成这项工作。

您需要防止成绩不在字典中的情况,例如,如果用户输入了一些错误,例如 G。有几种方法可以解决这个问题:

一个简单的如果:

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

在你习惯了 Python 之后,你会对你的代码更有美感,并且会想要做得比规定两次 bote 等级和百分比更好,所以你可以简单地做:

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

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

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

然后

grades[precentage]

输入错误时将自动返回“错误百分比”。

于 2013-10-05T21:11:46.827 回答