我怎么能做一个班轮?
def get_sum(a,b):
return sum(for i in range (a,b)) if a != b else a
我尝试了一些不同的东西,但是使用for循环我无法使它工作。
谢谢!
错误:
文件“”,第2行 如果a = = b,则返回sum(对于范围(a,b)中的i) ^ SyntaxError:语法无效
答案 0 :(得分:3)
修改:OP澄清了get_sum
功能的意图,并相应地调整了我的答案:
。 。 。找到包含它们之间所有数字的总和并返回它。如果两个数字相等则返回
a
或b
。
您生成的表达式应采用i for i in range(a, b)
形式(请注意其他i
):
def get_sum(a, b):
return sum(i for i in range(min(a, b), max(a, b) + 1))
更短的版本是完全放弃生成器构造,因为range
是可迭代的:
def get_sum(a, b):
return sum(range(min(a, b), max(a, b) + 1))
但是,我无法准确说出你的方法的目的是什么。 。 。是 get_sum(10, 11)
真的应该返回与get_sum(10, 10)
相同的结果吗?
答案 1 :(得分:-1)
使用:
return sum(for i in range (a,b)) if a != b else a
您可能正在尝试执行以下操作:
("return sum( range (a,b) ) if a != b else a")