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

Python不允许我在获得平均分数时只打印一次,python,if-statement,Python,If Statement,嗨,我是python新手,基本上我想得到平均分数,但是它打印了3次,有没有办法在函数中只打印一次平均值 student = { "name" : "Ali", "program" :"computer programming", "marks1":38, "marks2":39, "marks3": 40 } def average(): mark

嗨,我是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()
student={
“姓名”:“阿里”,
“程序”:“计算机编程”,
“标记1”:38,
“标记2”:39,
“marks3”:40
}
def average():
mark1=学生[“marks1”]
mark2=学生[“marks2”]
mark3=学生[“marks3”]
平均标记=标记1+标记2+标记3
平均标记=平均标记/3
打印(平均标记)
返回平均值
def result():
如果(平均值()>=90):
打印(“优秀”)

elif(50def平均去除打印

student={
“姓名”:“阿里”,
“程序”:“计算机编程”,
“标记1”:38,
“标记2”:39,
“marks3”:40
}
def average():
mark1=学生[“marks1”]
mark2=学生[“marks2”]
mark3=学生[“marks3”]
平均标记=标记1+标记2+标记3
平均标记=平均标记/3
返回平均值
def result():
数据=平均值()
如果数据>=90:
打印(“优秀”)

elif 50您平均呼叫了3次。因此,三次打印输出

修改
结果
函数如下

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()
def result():
平均结果=平均值()
如果(平均结果>=90):
打印(“优秀”)

elif(50您平均调用了3次(if,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()
student={
“姓名”:“阿里”,
“程序”:“计算机编程”,
“标记1”:38,
“标记2”:39,
“marks3”:40
}
def average():
mark1=学生[“marks1”]
mark2=学生[“marks2”]
mark3=学生[“marks3”]
平均标记=标记1+标记2+标记3
平均标记=平均标记/3
打印(平均标记)
返回平均值
def result():
平均值=平均值()
如果(平均值>=90):
打印(“优秀”)

elif(50在average函数中,您直接打印averagemarks。因此,每次调用average()时,它都会调用函数并打印averagemarks。您可以尝试以下代码

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
    return averagemarks



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


result()
student={
“姓名”:“阿里”,
“程序”:“计算机编程”,
“标记1”:38,
“标记2”:39,
“marks3”:40
}
def average():
mark1=学生[“marks1”]
mark2=学生[“marks2”]
mark3=学生[“marks3”]
平均标记=标记1+标记2+标记3
平均标记=平均标记/3
返回平均值
def result():
平均值=平均值()
打印(平均值)
如果(平均值>=90):
打印(“优秀”)

elif(50需要纠正的一些事情

  • 您需要从
    average()
    函数中删除打印语句
  • 函数
    average()
    正在返回一个值。请尝试将其存储到变量中,然后使用该变量进行检查
  • 可以像我所做的那样稍微修改用于比较值的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()
    

    您应该只调用average()函数一次

    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
    
    
    average_mark = average()
    
    def result():
        if(average_mark >=90):
            print("Excellent")
        elif(50 <= average_mark):
            print("very good")
        else:
            print("fail")
    
    result()
    
    student={
    “姓名”:“阿里”,
    “程序”:“计算机编程”,
    “标记1”:38,
    “标记2”:39,
    “marks3”:40}
    def average():
    mark1=学生[“marks1”]
    mark2=学生[“marks2”]
    mark3=学生[“marks3”]
    平均标记=标记1+标记2+标记3
    平均标记=平均标记/3
    打印(平均标记)
    返回平均值
    平均分=平均分()
    def result():
    如果(平均分>=90):
    打印(“优秀”)
    
    elif(50)将
    average()
    分配给一个变量,并使用该变量进行比较,而不是调用函数3次average()函数内部有一条print语句。每次调用该函数时,它都会打印
    averagemarks
    的值。就像JacksonPro所说的那样,接收average()的值然后比较这个变量。你调用这个函数3次。你应该把值接收到一个变量中,然后比较(在result()函数中)好的,这是我的错。