双while循环中断并跳转到while循环问题中的行
Double while-loop break and jump to line in while loop questions
我有两个关于 while 循环的问题!
我不想浪费你的时间,但我真的需要帮助。
1,在我的代码中,while true: 另一个 while 存在。我知道我可以打破第二个 while 循环,但我怎样才能同时打破第一个 while 循环?
2、代码末尾“if stand_hit == 'h'; 反正有没有回到stand_hit == 's'?我不想经过 stand_hit == h 后它显示打印(我的卡)东西。我确实想拿起新卡或立即站立。
谢谢!如果你不明白我的问题,请评论!
while True:
player_card = []
player_card.append(player_draw())
player_card.append(player_draw())
print('your cards:',player_card[0]+player_color,player_card[1]+player_color)
player_total = card_dict[player_card[0]]+card_dict[player_card[1]]
dealer_card = []
dealer_card.append(dealer_draw())
dealer_card.append(dealer_draw())
dealer_cards = []
for i in dealer_card:
dealer_cards.append(card_dict[i])
dealer_total = sum(dealer_cards)
player_card = []
stand_hit = input('(S)tand or (H)it?...: ')
if stand_hit == 's':
print('Dealer cards:', dealer_card[0]+dealer_color, dealer_card[1]+dealer_color)
while dealer_total < 17:
if dealer_total < 11:
card_dict['A'] = 11
elif dealer_total > 10:
card_dict['A'] = 1
a = random.choice(list(card_dict))
print('Dealer drew:', a + dealer_color)
dealer_total += card_dict[a]
if dealer_total > 21:
print('You win!')
player_score += 1
print('Dealer:', dealer_score, 'Player:', player_score)
play_again = input('Play again (Y/N)?...: ')
if play_again == 'y':
print()
continue
elif play_again == 'n':
print('\n')
print('>_')
break
elif stand_hit == 'h':
a_cards = random.choice(list(card_dict))
print('You drew:', a_cards + player_color)
player_total += card_dict[a_cards]
stand_hit = 's'
if player_total > 21:
print('Dealer wins')
dealer_score += 1
print('Dealer:', dealer_score, 'Player:', player_score)
play_again = input('Play again (Y/N)?...: ')
if play_again == 'y':
print()
continue
elif play_again == 'n':
print('\n')
print('>_')
break
我能想到的两种根据内循环中满足的条件停止外循环的方法。
伪代码:
bln = True
while bln:
# Do stuff
while x < y:
if z == n:
# Break inner loop, and set bln to False to break outer loop
bln = False
break
第二种方法:
while True:
bln = False
# Do stuff
while x < y:
if z == n:
# Break inner loop, and set bln to True for later break statement
bln = True
break
if bln:
break
请注意,即使 bln
设置为 True,使用第一种方法外循环的迭代也会完成。但是,第二种方法会突然中断外循环。
我有两个关于 while 循环的问题! 我不想浪费你的时间,但我真的需要帮助。
1,在我的代码中,while true: 另一个 while 存在。我知道我可以打破第二个 while 循环,但我怎样才能同时打破第一个 while 循环?
2、代码末尾“if stand_hit == 'h'; 反正有没有回到stand_hit == 's'?我不想经过 stand_hit == h 后它显示打印(我的卡)东西。我确实想拿起新卡或立即站立。
谢谢!如果你不明白我的问题,请评论!
while True:
player_card = []
player_card.append(player_draw())
player_card.append(player_draw())
print('your cards:',player_card[0]+player_color,player_card[1]+player_color)
player_total = card_dict[player_card[0]]+card_dict[player_card[1]]
dealer_card = []
dealer_card.append(dealer_draw())
dealer_card.append(dealer_draw())
dealer_cards = []
for i in dealer_card:
dealer_cards.append(card_dict[i])
dealer_total = sum(dealer_cards)
player_card = []
stand_hit = input('(S)tand or (H)it?...: ')
if stand_hit == 's':
print('Dealer cards:', dealer_card[0]+dealer_color, dealer_card[1]+dealer_color)
while dealer_total < 17:
if dealer_total < 11:
card_dict['A'] = 11
elif dealer_total > 10:
card_dict['A'] = 1
a = random.choice(list(card_dict))
print('Dealer drew:', a + dealer_color)
dealer_total += card_dict[a]
if dealer_total > 21:
print('You win!')
player_score += 1
print('Dealer:', dealer_score, 'Player:', player_score)
play_again = input('Play again (Y/N)?...: ')
if play_again == 'y':
print()
continue
elif play_again == 'n':
print('\n')
print('>_')
break
elif stand_hit == 'h':
a_cards = random.choice(list(card_dict))
print('You drew:', a_cards + player_color)
player_total += card_dict[a_cards]
stand_hit = 's'
if player_total > 21:
print('Dealer wins')
dealer_score += 1
print('Dealer:', dealer_score, 'Player:', player_score)
play_again = input('Play again (Y/N)?...: ')
if play_again == 'y':
print()
continue
elif play_again == 'n':
print('\n')
print('>_')
break
我能想到的两种根据内循环中满足的条件停止外循环的方法。
伪代码:
bln = True
while bln:
# Do stuff
while x < y:
if z == n:
# Break inner loop, and set bln to False to break outer loop
bln = False
break
第二种方法:
while True:
bln = False
# Do stuff
while x < y:
if z == n:
# Break inner loop, and set bln to True for later break statement
bln = True
break
if bln:
break
请注意,即使 bln
设置为 True,使用第一种方法外循环的迭代也会完成。但是,第二种方法会突然中断外循环。