如何在Python中确定成绩

时间:2018-10-05 16:28:31

标签: python

这是通过称为Repl.it的网站使用的Python 3

我目前正在解决以下问题: “编写一个程序,其等级介于100和0零之间,并根据比例尺打印字母等级: 90或以上相当于A级 80-89相当于B级 70-79相当于C级 65-69相当于D级 64或以下相当于F级 如果用户给出的值不是整数,或者不是0到100的值,则给出错误并再次询问。 示例运行: 输入数字等级:asd 程序仅接受0到100之间的整数 输入数字等级:65 你的成绩是D“

我当前的代码如下:

def printgrade(score):
  if score >= 90:
    print("A")
  elif score >= 80:
    print("B")
  elif score >= 70:
    print("C")
  elif score >= 65:
    print("D")
  elif score <= 64:
    print("F")
  else:
    print("ERROR")

def main():
  score = int(input("Enter a score: "))
  print("Your grade is:", printgrade(score))

main()

我收到的唯一错误消息是print是无效的语法,但是我无法弄清楚为什么,我只是缺少了什么?任何评论将不胜感激。

2 个答案:

答案 0 :(得分:0)

def printgrade(score): 
  if score >= 90: return "A"
  elif score >= 80: return "B"
  elif score >= 70: return "C"
  elif score >= 65: return "D"
  elif score <= 64: return "F"
  else: return "ERROR"

def main(): 
  score = int(input("Enter a score: "))     
  print("Your grade is:", printgrade(score))

main()

希望有帮助。您必须返回值,而不要在子函数内部打印它们,因为您的打印函数需要子函数的值。

答案 1 :(得分:0)

除了(遍历代码的错误外,还可以进行一些修改使其更优化。我们可以使用try, except块来消除ERROR else语句,并在收到input时(如果不是有效的int并直接强制有效的{{ 1}}在int之间,使用while语句。接下来,我们的函数应该是0 and 100return 'A'等。然后,当我们可以根据需要使用B, C

print('Your grade is: ', printgrade(score))