我有以下代码。它基本上是一个障碍函数。它应该返回3个数字的总和小于21。如果更大,并且其中有11个数字,它应该从中减去10。如果扣除后金额仍然大于21,则应返回“半身像”。在训练中,José通过在elif中使总和小于或等于31来解决最后一部分,这当然是一个很好的方法,可以在else中“半身像”,而不是嵌套在elif中。 然而,我想通过将“半身像”嵌套到elif中来消除我的锻炼方式。我猜,到目前为止还没有运气,因为这次回归,我不能在事后提出任何条件
你们有没有办法让“半身像”成为elif的子条件?这是我的代码,它不起作用
def blackjack(a,b,c):
added = sum([a,b,c])
if added <= 21:
return added
elif added > 21 and 11 in [a,b,c]:
return added -10
busted = added -10
if busted > 21:
return 'BUST'
如果调用,应给出以下信息:
blackjack(5,6,7) --> 18
blackjack(9,9,9) --> 'BUST'
blackjack(9,9,11) --> 19
如果
busted > 21
是true
,它返回'BUST'
,如果不是,它移动到下一个语句并返回busted
。我不太明白为什么你需要另一种方法,但是如果你想根据一个条件返回两个不同的东西if/elif
或if/else
块是必须的您可以在返回时使用三元表达式:
输出:
见Does Python have a ternary conditional operator?
您仍然需要下降槽
"BUST"
(用于>;21 w/o 11)无论如何-因此else
溶液更干净相关问题 更多 >
编程相关推荐