[英]Why doesn't my program print?
我是编程新手,但我陷入困境。
我想编写一个代码,该代码在列表中收集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会通知我代码已经运行,但是什么也没给我! 我尝试使用打印,删除空格,重新定位行,但这只是没有给我返回结果(甚至没有错误消息)。
请帮助我,因为这使我发疯,对于任何书写错误,我深表歉意,因为英语不是我的母语。
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
您需要返回multiples
函数中数字的总和。 尝试使用如下所示的函数:
def multiples():
numbers =[]
for number in range(10):
if number%3 == 0 or number%5 == 0:
numbers.append(number)
return sum(numbers)
当您在python shell中逐步运行代码时,shell始终会打印最后一条语句的结果,因此它将打印计算出的sum(numbers)
语句。 使用函数时,您需要return语句( Python Docs:Return Statement )以便将值传递给函数的调用范围。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.