我想存储整数并返回总和,使用random.randint()
作为随机值。
代码如下所示:
import random
val = int(input('How many numbers?: '))
for i in range(val):
print(random.randint(1,99))
我需要将整数打印到控制台,然后对它们求和并返回最终总和。
示例:
How many numbers?: 4
84
50
35
35
Final number: 204
我也需要它来为无数的数字工作。
答案 0 :(得分:2)
使用列表存储数字。
使用sum()
添加它们。
使用join()
将其打印出来。
import random
val = int(input('How many numbers?: '))
numbers = [random.randint(1,99) for i in range(val)]
print('\n'.join(str(i) for i in numbers))
print('Final number: {}'.format(sum(numbers)))
示例输出:
How many numbers?: 5
60
70
51
65
18
Final number: 264
您将无法为无限系列的随机数提供总和,也无法存储它们。
答案 1 :(得分:2)
现在你没有跟踪你在val中打印的数字。
为了跟踪和总结所有数字,您需要将它们存储在一个数组中。
import random
val = int(input('How many numbers?: '))
#random number is stored as val
for i in range(val):
#this will run from 1-val
print(random.randint(1,99))
#these numbers are simply being printed, not stored
所以我们可以做的是存储数字,然后打印它们
sum=0
for i in range(val):
num=(random.randint(1,99))
sum=sum+num
print"random number:", num
print"The total sum is:", sum
答案 2 :(得分:0)
此解决方案仅涉及无终点处理,问题的其他方面已经有了很好的解决方案。
无法总结无限数量的数字,但您可以继续生成数字,直到程序收到KeyboardInterrupt
nums = []
try:
while True:
nums.append(random.randint(1,99))
except KeyboardInterrupt:
pass
total = sum(nums)
amount_finished = len(nums)
或者为了支持您可以使用的潜在但非必要的限制:
str_limit = input("enter the limit (accepts 'inf') ")
if str_limit=="inf":
limit = float("inf")
print ("you will need to stop the program with a KeyboardInterrupt")
else:
limit = int(str_limit)
nums = []
try:
while limit>0:
nums.append(random.randint(1,99))
limit-=1
except KeyboardInterrupt:
pass
total = sum(nums)
amount_finished = len(nums)