用Python求n个数的平均值

用Python求n个数的平均值,python,python-3.x,Python,Python 3.x,我正试图创建一个程序,找到输入的n个数字的平均值,但我很难让递归工作。程序在某种程度上可以工作,但当我需要它时,它不会退出while语句 print("This program 'is' designed to find the average of n numbers you input\n") #print statement that introduces the average finder counter = 0 #this counter will count how many n

我正试图创建一个程序,找到输入的n个数字的平均值,但我很难让递归工作。程序在某种程度上可以工作,但当我需要它时,它不会退出while语句

print("This program 'is' designed to find the average of n numbers you input\n") #print statement that introduces the average finder

counter = 0 #this counter will count how many numbers the user has inserted into the     program and will be used as denominator 
sum_of_numbers = 0 #this number is set as 0 as currently the sum is 0, as more numbers are inputed, they will be added together

first_question = input('''Would you like to enter a number? Type "yes" if you do, and "no" if you don't. \n\n''') #takes input of yes or no to see whether user wants to find average of numbers

while first_question == "yes" :
    ent_num = int(input("Enter your number here:"))
    sum_of_numbers = sum_of_numbers + ent_num
    counter = counter + 1
    second_question = input('''Would you like to enter another number after this? Type "yes" if you do, and "no" if you don't. \n''')
     while second_question == "yes" :
         ent_num = int(input("Enter your next number here: "))
         sum_of_numbers = sum_of_numbers + ent_num
        counter = counter + 1
    else :
    print("Your average is " + str(sum_of_numbers/counter))
有人能帮我弄清楚吗


我不能使用诸如try、eval或len之类的函数,这些都是非常基本的功能,比如我的第三天课程

你只需要一个循环就可以工作。只要问你一个问题,获取输入,然后循环。当您输入no时,循环将退出并计算您的平均值

print("This program 'is' designed to find the average of n numbers you input\n") #print statement that introduces the average finder

counter = 0 #this counter will count how many numbers the user has inserted into the     program and will be used as denominator 
sum_of_numbers = 0 #this number is set as 0 as currently the sum is 0, as more numbers are inputed, they will be added together

first_question = input('''Would you like to enter a number? Type "yes" if you do, and "no" if you don't. \n\n''') #takes input of yes or no to see whether user wants to find average of numbers

while first_question == "yes" :
    ent_num = int(input("Enter your number here:"))
    sum_of_numbers = sum_of_numbers + ent_num
    counter = counter + 1
    first_question = input('''Would you like to enter another number after this? Type "yes" if you do, and "no" if you don't. \n''')

print("Your average is " + str(sum_of_numbers/counter))

第一个问题永远不会改变,你也应该在第二个问题结束后做数学题,同时表明你已经完成了。第一个问题始终保持“是”,因为您将输出分配给第二个问题。因为你再也不会问第一个问题了

print("This program 'is' designed to find the average of n numbers you input\n") #print statement that introduces the average finder

counter = 0 #this counter will count how many numbers the user has inserted into the     program and will be used as denominator 
sum_of_numbers = 0 #this number is set as 0 as currently the sum is 0, as more numbers are inputed, they will be added together

first_question = input('''Would you like to enter a number? Type "yes" if you do, and "no" if you don't. \n\n''')

 #takes input of yes or no to see whether user wants to find average of numbers.

if first_question == "yes" :
    ent_num = int(input("Enter your number here:"))
    sum_of_numbers = sum_of_numbers + ent_num
    counter = counter + 1
    second_question = input('''Would you like to enter another number after this? Type "yes" if you do, and "no" if you don't. \n''')
    while second_question == "yes" :
         ent_num = int(input("Enter your next number here: "))
         sum_of_numbers = sum_of_numbers + ent_num
         counter = counter + 1
    print("Your average is " + str(sum_of_numbers/counter))
else :
    print("Well if you're just going to answer no off the bat why did you bother running me\n");

您的代码足够简洁,不会对其进行注释。毕竟是python

以下是一个简短的工作版本:

print("This program 'is' designed to find the average of n numbers you input\n")

first_question = 'Would you like to enter a number? (type "yes" if you do)\n\n'
second_question = 'Would you like to enter another number after this? (type "yes" if you do)\n'

sum_of_numbers = 0
counter = 0
if input(first_question) == "yes" :
    sum_of_numbers += int(input("Enter your number here:"))
    counter += 1
    while input(second_question) == "yes" :
        sum_of_numbers += int(input("Enter your next number here: "))
        counter += 1
    print("Your average is " + str(sum_of_numbers/counter))

这是一个稍微简洁的版本,它展示了一些新的想法,并给出了更准确的结果

print("This program 'is' designed to find the average of n numbers you input\n")
counter = 0
sum_of_numbers = 0
q = '''Would you like to enter %s? Type "yes" if you do, and "no" if you don't. \n'''
qn = 'a number'
while input(q % qn) == "yes" :
    sum_of_numbers += input("Enter your number here:")
    counter += 1
    qn = 'another number after this'

print("Your average is " + str(1.*sum_of_numbers/counter))

“你为什么要三重引用你的提示?”Ryan Haining,你试过没有三重引用的提示吗?