我必须创建一个接受输入的函数,并返回相应的成绩。
例如,如果用户输入A +输出为90% 要么 如果输入是A输出是80% 要么 如果输入是B输出是70%
我有一些关于如何做到这一点的想法......但是我无法绕过如何回复声明?
def百分比(百分比):
if ( percentage )== A+
return ("90%")
elif (percentage)== A
return ("80%")
这是正确的解决方法吗?
答案 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")
然后您可以复制代码并更改数字和退货等级 希望它有所帮助:)