我必须创建一个接受输入并返回相应成绩的函数。
例如,如果用户输入 A+,输出为 90%,或者输入为 A,输出为 80%,或者输入为 B,输出为 70%
我有一些关于如何做到这一点的想法......但我无法解决如何返回声明的问题?
def 百分比(百分比):
if ( percentage )== A+
return ("90%")
elif (percentage)== A
return ("80%")
这是正确的方法吗?
我必须创建一个接受输入并返回相应成绩的函数。
例如,如果用户输入 A+,输出为 90%,或者输入为 A,输出为 80%,或者输入为 B,输出为 70%
我有一些关于如何做到这一点的想法......但我无法解决如何返回声明的问题?
def 百分比(百分比):
if ( percentage )== A+
return ("90%")
elif (percentage)== A
return ("80%")
这是正确的方法吗?
你可以做这样的事情
user_input = int(input("percentage: ")
if user_input < 0 and user_input > 10:
print('F")
然后你可以复制代码并更改数字和返回等级希望它有帮助:)
@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
in Grades 的值(假设i
是 5,那么这将是 Grades[5],这将是一个“E”)然后函数返回i
百分比中的值元组。在我的例子中,解释器输出 80%
从逻辑上讲,您的处理方式(通过在单独的 if 语句中实际处理可能的每个等级)也可以,但是就像我说的那样,您的代码会更长,并且您可能会在此过程中出现一些错别字d 必须编辑。当然,我的代码也有一些问题,比如如果用户输入了我在元组中没有的成绩怎么办。这很容易解决,因为您只需要告诉解释器如果发生这种情况该怎么做。
我知道有点简短,但我希望这会有所帮助
好的,首先,欢迎使用 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]
输入错误时将自动返回“错误百分比”。