我试图区分 while 循环的不同编写方式。
我是专门为区分不同手型的扑克游戏写这篇文章的。在编写我的is_pair函数时,我首先说pair = False. 我发现继续循环的唯一方法是如果我说while pair == False: .... 对于我的is_flush函数,我可以设置flush = True并while运行循环while flush,继续循环直到flush不再为真。
我试过了,while not pair:但没有奏效。我希望它继续,同时pair是False如此,当它已经发现了一双它将返回作为True。
我认为 for 的语句flush看起来更简洁,我想知道是否有另一种方法可以将该样式合并到我的 pair 函数中。
我想比较两个列表中的元素.两个列表都包含数字,并从最大到最小排序.我想找到编号最高的列表.如果它们包含相同的最高编号,我想查看下一个最高编号等.
如果我有一个清单: [14, 5, 4, 3, 2]
我将它与以下内容进行比较: [14, 7, 4, 3, 2]
第二个列表会更大,因为下一个最高的数字是7.
同样,如果我有一个清单: [13, 12, 9, 7, 3]
和: [13, 12, 9, 8, 2]
第二个将是两者中较大的一个.
任何帮助,将不胜感激!
我尝试了以下建议之一:
def compare_high_card(hand_a,hand_b):'''确定哪个牌有最高的牌,如果hand_a牌高,则返回1,如果hand_b有high_card,则返回-1:param hand_a:比较的第一手:param hand_b:第二个手比较:返回:1如果hand_a有更高的卡,-1如果hand_b有更高的卡'''
hand_a = sort_hand_by_value(hand_a)
hand_b = sort_hand_by_value(hand_b)
hand_length = 5
for index in range(hand_length):
if hand_a[index] > hand_b[index]:
higher_hand = 1
break
elif hand_b[index] > hand_a[index]:
higher_hand = -1
break
else:
higher_hand = 0
return higher_hand
Run Code Online (Sandbox Code Playgroud)
hand_a = [14,1,9,4,2] hand_b = [14,1,8,5,2,2]
此代码仅打印出-1.