已关闭,此问题需要更focused。目前不接受答复。
**想改善这个问题吗?**更新问题,使其仅通过editing this post关注一个问题。
3年前关闭。
Improve this question
给定3个int
值a b c
,返回它们的和。但是,如果其中一个值是13
,则它不计入sum
,并且其右侧的values
不计入。例如,如果b
是13
,则b
和c
都不计数。例如:
lucky_sum(1, 2, 3) → 6
lucky_sum(1, 2, 13) → 3
lucky_sum(1, 13, 3) → 1
lucky_sum(1, 13, 13) → 1
下面是我的解决方案。我不明白我的代码出了什么问题。
def lucky_sum(a, b, c):
list1 = [a, b, c]
list2 = []
for x in list1:
if x is not 13:
list2.append(x)
return sum(list2)
4条答案
按热度按时间gpnt7bae1#
您的代码以您的方式修复:
b4wnujal2#
你返回的是13之后的值。如果你得到13,你应该跳出循环,返回总和。
5sxhfpxr3#
您的解决方案正确地忽略了数字中的13,但您的代码没有遵守第二个要求“...及其右侧的值不计数”。一旦找到13,就尝试将
break
移出循环。编辑
顺便说一句,最pythonic的解决方案是这样的:
使用任意数量的参数,并且非常容易理解。
ie3xauqp4#
以下是我的答案: