为什么我的程序不打印?

时间:2017-09-28 17:40:09

标签: python

我是编程的新手,我被卡住了。

我想编写一个代码,在列表中收集1000和1000范围内的3和5的倍数并将其求和。现在我能够通过编写以下内容在shell中执行此操作:

numbers = []

for number in range(1001):
  if number%3 == 0 or number%5 == 0:
    numbers.append(number)

sum (numbers)

它给了我答案234168所以这是有效的,但是,如果我把它写入文件:

def multiples():
 numbers =[]
 for number in range(10):
  if number%3 == 0 or number%5 == 0:
      numbers.append(number)
  sum (numbers)


multiples()

然后在shell python中会告诉我代码运行了,但是没有给我任何回复!我尝试使用print,删除空格,重新定位行,但它只是没有给我回复结果。(甚至没有错误信息)

请帮助我,因为这让我发疯,我想为任何写作错误道歉,因为英语不是我的母语。

2 个答案:

答案 0 :(得分:0)

def multiples():
  numbers = []
  for number in range(10):
    if number % 3 == 0 or number % 5 == 0:
      numbers.append(number)

  return sum(numbers)

print (multiples())

输出:

23

答案 1 :(得分:0)

您需要在def time_constant_values(df, time_value, band_list): if time_value in df.index: return df.loc[time_value, band_list].to_dict() 函数中返回数字的总和。 尝试使用如下函数:

multiples

当您在python shell中逐步运行代码时,shell始终打印最后一个语句的结果,因此它打印了def multiples(): numbers =[] for number in range(10): if number%3 == 0 or number%5 == 0: numbers.append(number) return sum(numbers) 语句计算的内容。使用函数时,需要return语句(Python Docs: Return Statement)才能将值传递给函数的调用范围。