Что изменить в коде, чтобы он кроме целых чисел выводил и вещественные?

Программа, которая читая последовательность чисел из файла, выводит их на экран, убирая повторные цифры в каждом четном числе.

Пример входных данных: 11.1 88 233.3243 1121 774 223 17733 22112 223334 1236 32894 22 1113 2212 32423 11 6575 4

Выводит все, кроме вещественных чисел.

buffer_len = 1          # размер буфера чтения

try:
    with open('text.txt', 'r') as file:   # открываем файл
        print("\n-----Результат работы программы-----\n")

        while True:      # бесконечный цикл для чтения символов из файла

            char = None  # переменная символа
            number = ""  # переменная числа

            while True:     # цикл для получения числа из посимвольного чтения
                char = file.read(buffer_len)    # читаем блок

                if char == '':  # проверяем конец файла
                    break
                elif char == " ":
                    break
                elif char == "\n":
                    break
                number += char          # складываем в переменную символ

            if number.isdigit():

                if int(number) % 2 == 0:    # проверяем число четное

                    unique_num = list(set(list(number)))   # получаем список уникальных цифр числа
                    new_num = ""                           # переменная новая число после удаления повторных цифр

                    for n in number:    # проходимся по всем цифрам числа

                        if n in unique_num:        # если цифра есть в списке уникальных цифр числа

                            new_num += n           # добавляем цифру в новое число
                            unique_num.remove(n)   # удаляем из списка уникальных цифр числа

                    print(new_num)
                else:
                    print(number)

            if char == '':  # проверка конец ли это файла
                break

except FileNotFoundError:
    print("\nФайл text.txt в директории проекта не обнаружен.\nДобавьте файл в директорию или переименуйте существующий *.txt файл.")

Ответы (1 шт):

Автор решения: Opium

Здравствуйте у вас в коде int(number), попробуйте убрать int и оставить просто number.

Если это единственное действие над числами вашего списка , то проблема именно в этом. Вы прогоняете список заведомо делая каждое число целочисленным. Если вы напишете float(number) , то результат будет такой , что все числа станут вещественными.

→ Ссылка