Python不允许我在获得平均分数时只打印一次

2024-10-01 19:24:53 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我是python新手,基本上我想得到平均分数,但是它打印了3次,有没有办法在函数中只打印一次平均值

student = {
"name" : "Ali",
"program" :"computer programming",
"marks1":38,
"marks2":39,
"marks3": 40
}

def average():
    mark1 =student["marks1"] 
    mark2 = student["marks2"]
    mark3 = student["marks3"]
    averagemarks = mark1+mark2+mark3
    averagemarks = averagemarks/3
    print(averagemarks)
    return averagemarks



def result():
    if(average()>=90):
        print("Excellent")
    elif(50 <= average() <= 89):
        print("very good")
    elif(average()<=49):
        print("fail")

result()

Tags: defresultstudent分数printaverageelif新手
3条回答

有几件事需要纠正

  1. 您需要从average()函数中删除print语句
  2. 函数average()正在返回一个值。尝试将其存储到变量中。然后使用该变量进行检查
  3. 可以像我所做的那样稍微修改用于比较值的if语句

更新后的代码如下所示:

student = {
"name" : "Ali",
"program" :"computer programming",
"marks1":38,
"marks2":39,
"marks3": 40
}

def average():
    mark1 = student["marks1"] 
    mark2 = student["marks2"]
    mark3 = student["marks3"]
    return ((mark1+mark2+mark3)/3)
    
def result():
    x = average()
    
    if x >= 90:
        print("Excellent")
    elif x >= 50:
        print("very good")
    else:
        print("fail")

result()

您平均呼叫3次(如果、elif、elif)。所以输出被打印三次。 因此,您可以将其放入变量中,使其只执行一次

student = {
"name" : "Ali",
"program" :"computer programming",
"marks1":38,
"marks2":39,
"marks3": 40
}

def average():
  mark1 =student["marks1"] 
  mark2 = student["marks2"]
  mark3 = student["marks3"]
  averagemarks = mark1+mark2+mark3
  averagemarks = averagemarks/3
  print(averagemarks)
  return averagemarks



def result():
    aver = average()
    if(aver>=90):
        print("Excellent")
    elif(50 <= aver <= 89):
        print("very good")
    elif(aver<=49):
        print("fail")


result()

你平均打了3次电话。所以输出要打印三次

修改result函数如下

def result():
    average_result = average()
    if(average_result>=90):
        print("Excellent")
    elif(50 <= average_result <= 89):
        print("very good")
    elif(average_result<=49):
        print("fail")


result()

相关问题 更多 >

    热门问题