Python新手在这里。我正在尝试创建一个黑色杰克游戏,用户可以在其中对抗计算机。我觉得我遇到麻烦的地方就是这里的if,elif语句。我想知道的是,当我没有else语句时,如果没有满足任何if和elif语句的标准会发生什么?这里有没有其他声明是否有问题?
def game_winner(n):
p_wins = 0
d_wins = 0
for i in range(n):
player_sum = player_game()
dealer_sum = dealer_game()
if player_sum > dealer_sum and player_sum <= 21:
p_wins = p_wins + 1
elif dealer_sum > 21 and player_sum <= 21:
p_wins = p_wins + 1
elif player_sum > 21 and dealer_sum <= 21:
d_wins = d_wins + 1
elif dealer_sum > player_sum and dealer_sum <= 21:
d_wins = d_wins + 1
return p_wins, d_wins
答案 0 :(得分:2)
如果没有满足任何条件,则不执行任何if
或elif
块中的条件。如果没有计算机或玩家在一轮中获胜,那就没关系。否则,您应该包含else
声明以涵盖该案例。
答案 1 :(得分:1)
如果你没有别的话,那么代码就会“落空”;即没有任何条件代码会被执行,因此胜利计数不会改变。
看看你的例子的具体细节,我看到的唯一潜在问题是会有一些游戏不计算在内。您的要求或设计将确定这是否真的是一个问题。
答案 2 :(得分:0)
这完全有效。没有别的陈述不是问题。
答案 3 :(得分:0)
try:
rng = xrange # Python 2.x
except NameError:
rng = range # Python 3.x
def game_winner(n):
p_wins, d_wins = 0, 0
for i in rng(n):
player = player_game()
if player > 21:
d_wins += 1
else:
dealer = dealer_game()
if player <= dealer <= 21:
d_wins += 1
else:
p_wins += 1
return p_wins, d_wins