Python 我想知道有什么方法可以让这段代码在elif中使用嵌套if?
我有以下代码。它基本上是一个障碍函数。它应该返回3个数字的总和小于21。如果更大,它有11作为一个数字,它应该从中扣除10。如果扣除后金额仍然大于21,则应返回“半身像”。在训练中,José通过在elif中使总和小于或等于31来解决最后一部分,这当然是一个很好的方法,可以在else中“半身像”,而不是嵌套在elif中。 然而,我想通过将“半身像”嵌套到elif中来消除我的锻炼方式。我猜,到目前为止还没有运气,因为这次回归,我不能在事后提出任何条件 你们有没有办法让“半身像”成为elif的子条件?这是我的代码,它不起作用Python 我想知道有什么方法可以让这段代码在elif中使用嵌套if?,python,Python,我有以下代码。它基本上是一个障碍函数。它应该返回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'
def二十一点(a、b、c):
加法=总和([a,b,c])
如果在[a、b、c]中添加21和11:
损坏=增加-10
如果损坏>21:
返回“半身像”
返程受阻
如果
busted>21
为true
则返回“BUST”
,否则将转到下一条语句并返回busted
。我不太明白为什么你需要另一种方法,但是如果你想根据一个条件返回两个不同的东西if/elif
或if/else
块是必须的。您可以在返回时使用三元表达式:
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) if (added-10 <= 21) else "BUST-11"
return "BUST"
print( blackjack(5,6,7) )
print( blackjack(9,9,9) )
print( blackjack(9,9,11) )
print( blackjack(10,11,11) )
看
无论如何,您仍然需要秋槽
“半身像”
(对于>21,不含11),因此其他解决方案更干净。谢谢,但您的souliton没有给出“半身像”谢谢,帕特里克,您的解决方案很有趣,但de to BUST-11不够干净。我想这在筑巢中是不可能做到的。@StingerWolf-我刚刚重命名了它,这样你就可以看到哪个半身像来自哪里:)哦,你说得对,我的错,如果它被重命名,最后它会给出“半身像”,所以是的,我现在明白了,谢谢你的帮助,有时候有不同的视角真的很好。:)
def blackjack(a,b,c):
added = sum([a,b,c])
if added <= 21:
return added
elif added > 21 and 11 in [a,b,c]:
busted = added -10
if busted > 21:
return 'BUST'
return busted
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) if (added-10 <= 21) else "BUST-11"
return "BUST"
print( blackjack(5,6,7) )
print( blackjack(9,9,9) )
print( blackjack(9,9,11) )
print( blackjack(10,11,11) )
18
BUST
19
BUST-11