importmath"""Functions for tracking poker hands and assorted card tasks.
Python list documentation: https://docs.python.org/3/tutorial/datastructures.html
"""defget_rounds(number):"""Create a list containing the current and next two round numbers.
:return: list - current round and the two that follow.
"""return[number,number+1,number+2]defconcatenate_rounds(rounds_1,rounds_2):"""Concatenate two lists of round numbers.
:param rounds_1: list - first rounds played.
:param rounds_2: list - second set of rounds played.
:return: list - all rounds played.
"""returnrounds_1+rounds_2deflist_contains_round(rounds,number):"""Check if the list of rounds contains the specified number.
:param rounds: list - rounds played.
:param number: int - round number.
:return: bool - was the round played?
"""returnnumberinroundsdefcard_average(hand):"""Calculate and returns the average card value from the list.
:param hand: list - cards in hand.
:return: float - average value of the cards in the hand.
"""returnfloat(sum(hand)/len(hand))defapprox_average_is_average(hand):"""Return if the (average of first and last card values) OR ('middle' card) == calculated average.
:param hand: list - cards in hand.
:return: bool - does one of the approximate averages equal the `true average`?
"""estimate=float((hand[0]+hand[-1])/2)average=float(sum(hand)/len(hand))middle=hand[math.floor(len(hand)/2)]ifestimate==averageormiddle==average:returnTrueelse:returnFalsedefaverage_even_is_average_odd(hand):"""Return if the (average of even indexed card values) == (average of odd indexed card values).
:param hand: list - cards in hand.
:return: bool - are even and odd averages equal?
"""evens=hand[::2]odds=hand[1::2]returnsum(evens)/len(evens)==sum(odds)/len(odds)defmaybe_double_last(hand):"""Multiply a Jack card value in the last index position by 2.
:param hand: list - cards in hand.
:return: list - hand with Jacks (if present) value doubled.
"""ifhand[-1]==11:hand[-1]=22returnhand