How to show decimal point only when it's not a whole number?
You can use floats' is_integer method. It returns True
if a float can be represented as an integer (in other words, if it is of the form X.0
):
li = [3.5, 2.5, 5.0, 7.0]
print([int(num) if float(num).is_integer() else num for num in li])
>> [3.5, 2.5, 5, 7]
EDIT
After OP added their code:
Instead of using list comprehension like in my original example above, you should use the same logic with your calculated average:
get_numbers = map(float, line[-1]) # assuming line[-1] is a list of numbers
average_numbers = sum(get_numbers) / len(get_numbers)
average = round(average_numbers * 2) / 2
average = int(average) if float(average).is_integer() else average
print average # this for example will print 3 if the average is 3.0 or
# the actual float representation.