【发布时间】:2021-03-25 14:56:23
【问题描述】:
我写了一个 python 代码,它有一个函数,可以将总分作为输入并计算成绩,我想知道我是否做对了,并在这段代码中正确使用了返回:
def get_grades():
marks = round(float(input('Your Current Marks: ')))
if marks in range(0,101):
if marks >=90:
return("Your Grade is: A+")
elif marks >=86:
return("Your Grade is: A")
elif marks >=82:
return("Your Grade is: A-")
elif marks >=78:
return("Your Grade is: B+")
elif marks >=74:
return("Your Grade is: B")
elif marks >=70:
return("Your Grade is: B-")
elif marks >=66:
return("Your Grade is: C+")
elif marks >=62:
return("Your Grade is: C")
elif marks >=58:
return("Your Grade is: C-")
elif marks >=54:
return("Your Grade is: D+")
elif marks >=50:
return("Your Grade is: D")
else:
return("Your Grade is: F")
else:
return("sorry, your input is out of range")
print(get_grades())
【问题讨论】:
-
我觉得没问题,虽然不需要括号。
-
@Llna 之后,而不是之前。
-
我会说这取决于您的功能的性质。如果您打算仅将其用于打印成绩,我会将 return("text") 替换为 print("text")。否则我认为没有问题。此外,您可以将“Your Grade is:”定义为变量,然后在每次返回/打印字符串时重用它。记住 DRY 原则——不要重复自己。
-
@MikaelsSlava 在这样的函数中打印几乎永远不会是一个好主意:输出和逻辑应该完全分开:一个函数来计算成绩,另一个函数来格式化它们,a第三个打印它们。您的建议将混合所有三个步骤,或者至少是第二步和第三步。这通常被认为是一种反模式。