我正在尝试创建一个程序,找到输入的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之类的功能或者像我班上第3天一样非常基本的东西
答案 0 :(得分:2)
你只需要一个循环即可工作。只要问问题,获取输入,然后循环。当你输入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))
答案 1 :(得分:0)
first_question永远不会改变,你也应该在完成第二项后再进行数学计算,同时表明你已经完成了。由于您将输出分配给second_question,first_question始终保持为“yes”。因为你永远不会简单地询问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");
答案 2 :(得分:0)
您的代码非常简洁,不会发表评论。毕竟这是蟒蛇!
这是一个简短的工作版本:
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))
答案 3 :(得分:0)
这是一个稍微清洁的版本,它显示了一些新的想法并提供了更准确的结果。
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))