Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python程序计算学生成绩_Python - Fatal编程技术网

Python程序计算学生成绩

Python程序计算学生成绩,python,Python,这是我用Python编写的第一个程序,我遇到了一些麻烦,如果我有一些简单的语法问题,请原谅 我正在写一个程序,计算一个学生的最终分数,基于一个考试分数值60%,其他7个考试分数值加起来占最终分数的40%。要求用户输入一个考试分数,然后要求用户输入循环读取的7个考试分数。字母等级由考试和测试的最终分数决定。之后,根据给学生的字母等级打印等级注释。这是我目前的代码: def read_test_scores() : print("ENTER STUDENT ID: ") id =

这是我用Python编写的第一个程序,我遇到了一些麻烦,如果我有一些简单的语法问题,请原谅

我正在写一个程序,计算一个学生的最终分数,基于一个考试分数值60%,其他7个考试分数值加起来占最终分数的40%。要求用户输入一个考试分数,然后要求用户输入循环读取的7个考试分数。字母等级由考试和测试的最终分数决定。之后,根据给学生的字母等级打印等级注释。这是我目前的代码:

def read_test_scores() :

    print("ENTER STUDENT ID: ")
    id = int(input())

    print("ENTER EXAM SCORE: ")
    exam = int(input())

    print("ENTER ALL TEST SCORES: ")
    score1 = int(input())
    score2 = int(input())
    score3 = int(input())
    score4 = int(input())
    score5 = int(input())
    score6 = int(input())
    score7 = int(input())

    sum = (score1 + score2 + score3 + score4 + score5 + score6 + score7)

    tavge = sum/7
    return tavge

def compute_final_score(tavge, exam) :
    final_score = 0.4 * tavge + 0.6 * exam
    return final_score

def get_letter_grade(final_score) :

    if 90 <= final_score <= 100:
        grade = 'A'
    elif 80 <= final_score <= 89:
        grade = 'B'
    elif 70 <= final_score <= 79:
        grade = 'C'
    elif 60 <= final_score <= 69:
        grade = 'D'
    else:
        grade = 'F'
    return grade

def print_comment(grade) :

    if grade = 'A':
        print "COMMENT:            Very Good"
    elif grade = 'B':
        print "COMMENT:            Good"
    elif grade = 'C':
        print "COMMENT:            Satisfactory"
    elif grade = 'D':
        print "COMMENT:            Need Improvement"
    elif grade = 'F'
        print "COMMENT:            Poor"

read_test_scores()
print "TEST AVERAGE IS:    " + str(tavge)
compute_final_score()
print "FINAL SCORE IS:     " + str(final_score)
get_letter_grade(final_score)
print "LETTER GRADE IS:     " + str(grade)
print_comment(grade)
def read_test_分数():
打印(“输入学生ID:”)
id=int(输入())
打印(“输入考试分数:”)
检查=int(输入())
打印(“输入所有测试分数:”)
score1=int(输入())
score2=int(输入())
score3=int(输入())
score4=int(输入())
score5=int(输入())
score6=int(输入())
score7=int(输入())
总和=(得分1+得分2+得分3+得分4+得分5+得分6+得分7)
tavge=总和/7
返回塔夫格
def计算最终分数(tavge、考试):
期末考试分数=0.4*tavge+0.6*
返回最终分数
def获得字母等级(最终分数):

如果代码中有许多错误,其中一些错误在注释中,但最关键的部分是错误地使用了全局变量和局部变量

下面是一个使用全局变量的正确方法修复代码的示例

tavge=0
考试=0
sid=0
最终得分=0
等级=“”
def读取测试分数():
全局sid
打印(“输入学生ID:”)
sid=int(输入())
全球考试
打印(“输入考试分数:”)
检查=int(输入())
打印(“输入所有测试分数:”)
score1=int(输入())
score2=int(输入())
score3=int(输入())
score4=int(输入())
score5=int(输入())
score6=int(输入())
score7=int(输入())
总得分=(得分1+得分2+得分3+得分4+得分5+得分6+得分7)
全球塔夫格酒店
tavge=总计/7
#返回塔夫格
def计算最终分数():
全球总分
期末考试分数=0.4*tavge+0.6*
#返回最终分数
def get_字母_等级():
全球等级

如果90这是我的答案。代码应该运行。注释作为注释插入

# NOTE: I haven't checked whether your math is right, or
# if the computed values are correct.  I did however get your
# script to work.


def read_test_scores():
    print("ENTER STUDENT ID: ")
    id = int(input())

    print("ENTER EXAM SCORE: ")
    exam = int(input())

    print("ENTER ALL TEST SCORES: ")
    score1 = int(input())
    score2 = int(input())
    score3 = int(input())
    score4 = int(input())
    score5 = int(input())
    score6 = int(input())
    score7 = int(input())

    sum = (score1 + score2 + score3 + score4 + score5 + score6 + score7)

    tavge = sum / 7.0

    # NOTE: if you want to use any variables from this function,
    # then you have to "bring them outside" by "returning"
    # them. Here, I return the values tavge, id, and exam. I noticed
    # that bringing out "exam" is necessary since you'll
    # be using it later on.
    return tavge, id, exam


def compute_final_score(tavge, exam):
    final_score = 0.4 * tavge + 0.6 * exam
    return final_score


def get_letter_grade(final_score):
    if 90 <= final_score <= 100:
        grade = 'A'
    elif 80 <= final_score <= 89:
        grade = 'B'
    elif 70 <= final_score <= 79:
        grade = 'C'
    elif 60 <= final_score <= 69:
        grade = 'D'
    else:
        grade = 'F'
    return grade


def print_comment(grade):
    # NOTE `=` is for assignment.  We use it when we want to
    # tell python to make a variable mean something. For example:
    # a = "some_name" basically means that when we call a, it would
    # return the string "some_name".

    # What you want to use here is `==` which is the equality operator.
    # This checks whether or thing are equal.
    if grade == 'A':
        print("COMMENT:            Very Good")
    elif grade == 'B':
        print("COMMENT:            Good")
    elif grade == 'C':
        print("COMMENT:            Satisfactory")
    elif grade == 'D':
        print("COMMENT:            Need Improvement")
    elif grade == 'F':
        print("COMMENT:            Poor")


# NOTE 1: you need to assign the function results to a
# variable (or variables), otherwise, the result or return value
# will go nowhere and you can't use it
tavge, id, exam = read_test_scores()
print "TEST AVERAGE IS:    " + str(tavge)

# NOTE 2: variable names do not have to be the same as
# the name in their respective functions.  Here, you can see
# that it will still run even if I changed the variable
# name final_score to my_variable.  Although, of course, using
# final_score would still work.

# NOTE 3: the final_score function requires 2 inputs,
# namely tavge and exam.  This basically means that you have to feed
# it with these 2 values for it to work.  I took the
# tavge and exam variables as the results from your read_test_scores
# function
my_variable = compute_final_score(tavge, exam)
print("FINAL SCORE IS:     " + str(my_variable))
grade = get_letter_grade(my_variable)
print("LETTER GRADE IS:     " + str(grade))
print_comment(grade)


# FINAL NOTE: I haven't commented regarding coding style etc (like say
# for instance, there are best practices regarding variable names
# within functions, that is, if they should be similar to variable names
# outside the function), but regardless, the code is a good start.  I
# would also advise you to try to narrow down your question first
# before posting.  This can be done by running your code, and searching
# the internet for the particular erro messages, and if you're still stuck,
# ask here on stackoverflow.
注意:我还没有检查你的数学是否正确 #如果计算值正确。然而,我确实收到了你的来信 #脚本工作。 def读取测试分数(): 打印(“输入学生ID:”) id=int(输入()) 打印(“输入考试分数:”) 检查=int(输入()) 打印(“输入所有测试分数:”) score1=int(输入()) score2=int(输入()) score3=int(输入()) score4=int(输入()) score5=int(输入()) score6=int(输入()) score7=int(输入()) 总和=(得分1+得分2+得分3+得分4+得分5+得分6+得分7) tavge=总和/7.0 #注意:如果要使用此函数中的任何变量, #然后你必须通过“返回”来“带他们出去” #他们。在这里,我返回值tavge、id和exam。我注意到 #“考试”是必要的,因为你会 #以后再使用它。 返回tavge、id、考试 def计算最终分数(tavge、考试): 期末考试分数=0.4*tavge+0.6* 返回最终分数 def获得字母等级(最终分数):
如果90正如一些人提到的那样,您需要使用==进行比较,那么您的if/else之一后面也缺少一个冒号

这是我对你的代码的看法。请记住,这不需要进行测试和测试,以确保有人实际输入了一个数字作为测试分数,而不是文本

“sum”也是Python内置函数的名称,它总结了您提供的任何内容

def read_test_scores():
    scores = []
    num_tests = 7
    print("ENTER ALL TEST SCORES: ")
    for i in range(num_tests):
        score = input("Test " + str(i + 1) + ":")
        scores.append(int(score))    

    return sum(scores) / num_tests    


def compute_final_score(average, exam_score):
    score = 0.4 * average + 0.6 * exam_score
    return score    


def get_letter_grade(finalized_score):
    if 90 <= finalized_score <= 100:
        letter_grade = 'A'
    elif 80 <= finalized_score <= 89:
        letter_grade = 'B'
    elif 70 <= finalized_score <= 79:
        letter_grade = 'C'
    elif 60 <= finalized_score <= 69:
        letter_grade = 'D'
    else:
        letter_grade = 'F'
    return letter_grade    


def print_comment(letter_grade):    
    if letter_grade == 'A':
        print("COMMENT:            Very Good")
    elif letter_grade == 'B':
        print("COMMENT:            Good")
    elif letter_grade == 'C':
        print("COMMENT:            Satisfactory")
    elif letter_grade == 'D':
        print("COMMENT:            Need Improvement")
    elif letter_grade == 'F':
        print("COMMENT:            Poor")    


def get_student_id():
    print("ENTER STUDENT ID: ")
    identity = int(input())
    return identity    


def get_exam_score():
    print("ENTER EXAM SCORE: ")
    exam_score = int(input())
    return exam_score    


if __name__ == '__main__':
    student_id = get_student_id()
    exam = get_exam_score()
    tavge = read_test_scores()
    print("TEST AVERAGE IS:    " + str(tavge))
    final_score = compute_final_score(tavge, exam)
    print("FINAL SCORE IS:     " + str(final_score))
    grade = get_letter_grade(final_score)
    print("LETTER GRADE IS:     " + str(grade))
    print_comment(grade)
def read_test_分数():
分数=[]
num_测试=7
打印(“输入所有测试分数:”)
对于范围内的i(num_测试):
分数=输入(“测试”+str(i+1)+“:”)
分数。追加(整数(分数))
返回和(分数)/num\u测试
def计算期末成绩(平均、考试成绩):
分数=0.4*平均值+0.6*考试分数
回击得分
def获得字母等级(最终分数):

如果我有麻烦不是问题。问题是什么?具体点。还有,第一句话不是必须的,只是陈述问题。我的程序没有运行。一个问题是print_comment函数中的语法“如果等级为‘A’。我没有使用Python的经验,所以一遍又一遍地阅读我的代码什么也做不了。我需要有经验的人来检查并帮助发现任何明显的错误。这仍然不是问题。
=
用于作业,而不是与
=
进行比较,如果成绩=='a':
现在运行得很好,但是你知道为什么它不能准确计算考试平均分和最终分数吗?我考了90分,考了80分、65分、70分、86分、97.5分、70分和84.5分。它计算出考试平均分为78分,最终分数为85.2分,但应该是79分和85.6分,这可能是由于整数除法。这意味着,当python将一个整数除以另一个整数时,结果将向下舍入。例如,10/6将返回1而不是1.666。解决方案是确保用或除以浮点(或带小数点的数字),这样它也将返回浮点。所以在这个例子中,如果我们除以10.0/6,10/6.0,或者10.0/6.0,你会得到想要的1.666。。。我会在一段时间内更新代码,但我会添加一个小数点,指向您使用的7除数。明白了,非常感谢您的帮助和建议
def read_test_scores():
    scores = []
    num_tests = 7
    print("ENTER ALL TEST SCORES: ")
    for i in range(num_tests):
        score = input("Test " + str(i + 1) + ":")
        scores.append(int(score))    

    return sum(scores) / num_tests    


def compute_final_score(average, exam_score):
    score = 0.4 * average + 0.6 * exam_score
    return score    


def get_letter_grade(finalized_score):
    if 90 <= finalized_score <= 100:
        letter_grade = 'A'
    elif 80 <= finalized_score <= 89:
        letter_grade = 'B'
    elif 70 <= finalized_score <= 79:
        letter_grade = 'C'
    elif 60 <= finalized_score <= 69:
        letter_grade = 'D'
    else:
        letter_grade = 'F'
    return letter_grade    


def print_comment(letter_grade):    
    if letter_grade == 'A':
        print("COMMENT:            Very Good")
    elif letter_grade == 'B':
        print("COMMENT:            Good")
    elif letter_grade == 'C':
        print("COMMENT:            Satisfactory")
    elif letter_grade == 'D':
        print("COMMENT:            Need Improvement")
    elif letter_grade == 'F':
        print("COMMENT:            Poor")    


def get_student_id():
    print("ENTER STUDENT ID: ")
    identity = int(input())
    return identity    


def get_exam_score():
    print("ENTER EXAM SCORE: ")
    exam_score = int(input())
    return exam_score    


if __name__ == '__main__':
    student_id = get_student_id()
    exam = get_exam_score()
    tavge = read_test_scores()
    print("TEST AVERAGE IS:    " + str(tavge))
    final_score = compute_final_score(tavge, exam)
    print("FINAL SCORE IS:     " + str(final_score))
    grade = get_letter_grade(final_score)
    print("LETTER GRADE IS:     " + str(grade))
    print_comment(grade)