为了账号安全,请及时绑定邮箱和手机立即绑定

用Python查找n个数字的平均值

用Python查找n个数字的平均值

catspeake 2021-03-29 12:23:01
我正在尝试创建一个程序,该程序可以找到输入的n个数字的平均值,但是我无法使递归正常工作。该程序可以工作,但在我希望的时候不会退出while语句。print("This program 'is' designed to find the average of n numbers you input\n") #print statement that introduces the average findercounter = 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 togetherfirst_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 numberswhile 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之类的功能,也不能使用它的所有真正基本的东西,例如我上课的第三天
查看完整描述

3 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

您只需要一个循环即可工作。只需问您一个问题,获取输入,然后循环即可。当您输入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))


查看完整回答
反对 回复 2021-04-06
?
千万里不及你

TA贡献1784条经验 获得超9个赞

您的代码足够简洁,无法对其进行注释。毕竟是蟒蛇!


这是一个简短的工作版本:


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


查看完整回答
反对 回复 2021-04-06
?
哔哔one

TA贡献1854条经验 获得超8个赞

first_question永远不会更改,并且您在完成第二个练习后还应该进行数学运算。由于您将输出分配给second_question,因此first_question始终保持“是”。由于您永远不会再简单地询问first_question:


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");


查看完整回答
反对 回复 2021-04-06
  • 3 回答
  • 0 关注
  • 237 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信