我不知道如何让程序尽早执行计算?

2024-10-04 01:27:42 发布

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

我正在阅读一本python书籍,它给我带来的问题之一是,使用我之前为成绩册计算器编写的一些代码,使其能够通过用户输入更早地计算成绩。我决定使用一个if语句来实现这一点,即如果输入==-1,它应该打印分数,但它工作不正常,我不确定我做错了什么。这是我现在有的东西

我认为我对自己的问题不够清楚。在我进入一个等级并进行计算后,我试图让程序停止。现在,我必须在计算平均分数之前输入所有5个分数,但我正在尝试得到它,以便在输入任意数量的分数之后计算。然而,我不知道该怎么做才能让它起作用。我还查看了我的代码,并意识到如果我使用数组和输入系统,我可以简化它,所以我现在将它改为这个

if __name__ == '__main__':
print("Please enter the number of grades you wish to enter:")
number = int(input())
gradearray = []
for i in range(0, number):
    print("Please enter a grade")
    grade = float(input())
    gradearray.append(grade)
    if (grade > 90):
        print("You got an A!")
    elif (grade > 80):
        print("You got a B!")
    elif (grade > 70):
        print("You got a C!")
    elif (grade > 60):
        print("You got a D!")
    else:
        print("You got an F")
print("The average grade is:", sum(gradearray)/len(gradearray))

Tags: 代码youannumberinputif分数书籍
2条回答

好的,所以我能够以一种有趣的方式来理解它。通过创建一个新的变量,我可以让它工作,这是修改后的代码

if __name__ == '__main__':
print("Please enter the number of grades you wish to enter:")
number = int(input())
gradearray = []
try:
    for i in range(0, number):
        print("Please enter a grade")
        grade = float(input())
        gradearray.append(grade)
        stop = float(input())
        if stop < 0:
            print("The average grade is:", sum(gradearray)/len(gradearray))
        if grade > 90:
            print("You got an A!")
        elif grade > 80:
            print("You got a B!")
        elif grade > 70:
            print("You got a C!")
        elif grade > 60:
            print("You got a D!")
        elif 0 < grade < 60:
            print("You got an F")
    print("The average grade is:", sum(gradearray)/len(gradearray))
except:
    print("cannot divide by 0")

基本上,它现在要求两个输入,一个用于分数,另一个用于确认它是否是最后一个输入。我还添加了一个0除错误的错误检查

您的问题非常模糊,请详细描述您希望代码执行的操作

按ctrl-d键计算并提前退出

def calc_average(total):
    return total / 5

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

def calc_total(scores):
    total = sum(scores)
    avg = calc_average(total)
    grade = determine_score(avg)
    print(f"\nAverage grade is: {avg}")
    print(f"That's a(n): {grade}")


scores = []
students = 6

for i in range(students):
    try:
        score = int(input(f"Enter score {i}: "))
        print(f"That's a(n): {determine_score(score)}")
        scores.append(score)
    except EOFError:
        calc_total(scores)
        break

calc_total(scores)

相关问题 更多 >