python-3.x 平均成绩计算器

4ioopgfo  于 2023-02-26  发布在  Python
关注(0)|答案(6)|浏览(154)

这是我正在研究的问题:
你想知道你在计算机科学上的成绩,所以写一个程序,连续地把0到100之间的成绩取到标准输入,直到你输入“停止”,在这一点上它应该把你的平均值打印到标准输出。
下面是我目前为止在Python 3中编写的代码:

total = 0
q = 1
score = input("Enter a score:")
while score != "stop":
    q += 1
    total = total + int(score)
avg = total / q
print(avg)

我对编码很陌生,需要一些帮助来给我指出正确的方向。我觉得学习对我很重要,所以没有人应该觉得有义务只给我正确的答案。

jtw3ybtb

jtw3ybtb1#

我会给予你一个完整的大纲,以帮助您在算法上处理这个过程。

  • 将Total变量设置为0,将count变量设置为0,并使用空输入字符串。
  • 创建一个while循环,该循环一直运行到输入变量为单词stop为止。
  • 将输入作为整数加到总数中。将计数加1。再次输入。
  • 在循环外,将总数除以累计计数。

现在让我们试着把这个算法用代码组合起来,就像我下面做的那样。

# Code Block 1

count = 0  # count variable
total = 0  # total variable

enter = '' # input variable

while enter != 'stop':
    enter = input('Enter a grade:' )

    if enter != 'stop' and enter.isdigit():
        total += int(enter) # add to total value
        count = count + 1   # then to the count

print float(total) / count



# Code Block 2

numbers = []

while enter != 'stop':
    enter = input('Enter a grade:' )

    if enter != 'stop':
        numbers.append(int(enter))

print sum(numbers) / float(len(numbers))
mrzz3bfm

mrzz3bfm2#

看起来你可能进入了一个无限循环。你的while语句正在等待score改变,但是你没有在循环中修改score。你应该添加
score = input("Enter a score:")
在while循环中。

oyxsuwqo

oyxsuwqo3#

下面的代码被我的Person教科书所接受。这个问题指定了下面的警告,但在其他方面看起来是同一个问题:阅读输入时,不向用户显示提示。使用不带提示字符串的input()函数。

total = int()
numOfGrades = int()
grade = str()
average = float()

grade = input()

while grade != "stop":
    numOfGrades = numOfGrades + 1
    total = total + int(grade)
    average = total/numOfGrades
    grade = input()
print (average)
ldfqzlk8

ldfqzlk84#

total = 0
total_quiz = 0
inpt = input("Stop? or enter score")
while inpt.upper() != "STOP":
    if int(inpt) < 100 and int(inpt) > 0:
        total += int(inpt)
        total_quiz += 1
    else:
        print("Score to high or to low")
    inpt = input("Stop? or enter score")
print(total / total_quiz)

既然你是新手,你也应该知道正确的缩进在python中是非常重要的。

uqcuzwp8

uqcuzwp85#

你的while循环没有缩进,但我不知道这是否是一个打字错误-你的主要问题是你需要一个if语句,你的input语句需要在while循环中,这是一个非常简单的程序,只是改变你的代码(所以你应该理解它):

total = 0
q = 0 #need 0 so counter is correct
score = "" #need to declare score

print("Enter 'stop' to exit program") #Need to tell user how to quit
while score != "stop": # you can use while score.lower() != stop to check all cases
    score = input("Enter a score:") 
    #You need to ask the question everytime so it should be in the while loop
    if score == "stop": #This is the part you were missing a conditional statement
        break           #if statment in this case that exits the loop when score is stop
    total += int(score) #you can use += here too
    q += 1 #moved from top so it doesn't add on the last run (when exited)

avg = total / q
print(avg)

使用类似的if语句来检查变量是否在0到100之间(提示搜索else if),我留给您,但您可以随时询问是否仍然卡住。

ee7vknir

ee7vknir6#

这是我实验室程序里的答案:

total = 0
count = 0
grade = input("")

while grade != "stop":
    total += int(grade)
    count += 1
    grade=input("")

        
average = total / count
print(average)

相关问题