我对python和从事学校作业还是很陌生。该程序应该是一个循环,允许用户输入一系列数字,只要输入的数字为0或更大,数字就将继续运行。输入负数后,程序应创建所有输入数字的总和。非常感谢您的帮助,谢谢!
#This program calculates the sum of multiple numbers
#Initialize accumulator
total = 0
#Calculate the sum of numbers
while keep_going >= 0:
keep_going = int(input('Enter a number: '))
total += keep_going
print(total)
答案 0 :(得分:5)
欢迎使用StackOverflow Christian,欢迎您进入编程的美好世界=)
关于您的代码的几点评论:
keep_going = >-0
毫无意义。 >
是一个比较运算符,您必须使用它来比较两个表达式,例如var1 > var2
,它将返回一个布尔值。while keep_going == 0:
是一个不错的开始,但不会做您想做的。如果输入的数字大于或等于零,则循环必须继续进行,不仅keep_going
等于零。将==
更改为>=
。int(input('Enter a number: '))
是必经之路,但是为什么要使用两次?附带一提,您仅在第二次将输入数字存储在变量中。total
来存储用户输入。祝你好运!
PS:虽然stackoverflow非常适合快速获取解决方案,但我还是建议您实际了解您的代码为什么错误以及所提供的解决方案为何有效。这将极大地帮助您成为一名优秀的程序员;)
答案 1 :(得分:2)
#Calculate the sum of numbers
saved_numbers = [] # A list of numbers to fill up.
while True: # A way to write 'keep doing this until I stop ('break' in this case...)'
number = int(input('Enter a number: '))
if number < 0: # If the number is negative
break # Exits the current while loop for us.
else: # Otherwise, save the number.
saved_numbers.append(number)
sum = sum(saved_numbers) # Getting the sum of the numbers the user entered!
print(sum)
答案 2 :(得分:0)
您可以使其更简单。您不需要keep_going
变量。只需使用total
变量,如果输入的数字为0或大于0,则将其添加到变量。如果数字小于0,则退出while循环:
#Initialize accumulator
total = 0
#Calculate the sum of numbers
while(True):
num = int(input('Enter a number: '))
if num < 0:
break
else:
total = total + num
print(total)
答案 3 :(得分:0)
只需跟踪输入的数字,以后再使用python in-built
sum
函数计算总和即可。
keep_going = int(input('Enter a number: '))
entered_nums = []
while keep_going >= 0:
entered_nums.append(keep_going)
keep_going = int(input('Enter a number: '))
print('Entered numbers : ', entered_nums)
print('Entered numbers sum : ', sum(entered_nums))
答案 4 :(得分:0)
也可以使用recursion
代替while
来完成。即:
def count_total(total=0):
keep_going = int(input('Enter a number: '))
if keep_going >= 0:
total += keep_going
count_total(total)
else:
print('Total : %d' % total)
count_total()
答案 5 :(得分:0)
您可以尝试以下解决方案:
def func():
i = 0
while i >= 0:
i = int(input('Enter a number: '))
yield (i >= 0) * i
print(sum(func()))
请记住,在Python中,True
等于1
,而False
等于0
。