Что изменить в коде, чтобы он кроме целых чисел выводил и вещественные?
Программа, которая читая последовательность чисел из файла, выводит их на экран, убирая повторные цифры в каждом четном числе.
Пример входных данных: 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) , то результат будет такой , что все числа станут вещественными.