等级平均计算器

时间:2015-03-26 23:13:32

标签: python python-3.x while-loop

以下是我正在处理的问题:

  

你想知道你在计算机科学专业的成绩,所以写一个程序   持续将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)

我对编码非常陌生,可以用一些帮助指出我正确的方向。我觉得对我来说很重要,所以没有人会觉得有义务给我正确的答案。

4 个答案:

答案 0 :(得分:4)

我将为您提供一个全面的大纲,以便通过算法帮助您完成此过程。

  • 将变量变为0,将变量计数为0,并使用空输入字符串。
  • 创建一个运行的while循环,直到输入变量为单词stop。
  • 将输入作为整数添加到total。在计数中添加一个。再次接受输入。
  • 在循环之外划分总数为浮动除以累积计数。

现在让我们尝试将此算法放在代码中。像我在下面那样做。

# 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))

答案 1 :(得分:1)

看起来你可能会进入无限循环。您的while语句正在等待分数更改,但您不会在循环内修改分数。你应该添加

score = input("Enter a score:")

在你的while循环中。

答案 2 :(得分:0)

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中非常重要。

答案 3 :(得分:0)

你的while循环没有缩进但我不知道这是否是一个错字 - 你的主要问题是你需要一个if语句而你的输入语句需要在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语句检查是否(提示搜索else if)变量介于0和100之间我会留给您,但随时可以询问您是否仍然卡住了。