Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755

Вывод чисел

13.12.2019, 22:09. Показов 3381. Ответов 38
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как изменить код, чтобы если введено целое число, то чтобы отображалось без ноля. А если введено дробное, то чтобы так и оставалось без округления?
Python
1
2
3
4
5
6
7
8
x=(input('Введите число: '))
 
if x==0:
    print('Вы ввели ноль')
elif x<0:
    print('Вы ввели отрицательное число',x)
elif x>0:
    print('Вы ввели положительное число',x)
Добавлено через 1 час 28 минут
Возможно здесь надо отталкиваться от
Python
1
if type(x) != int
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.12.2019, 22:09
Ответы с готовыми решениями:

Вывод чисел
Как можно реализовать вывод числа (любого целого, хоть до миллиарда.), Но при этом чтобы в конце числа выставлялась приставка (245 рублей,...

Вывод чисел
Задано натуральное число N. Напишите программу, которая выведет на экран все числа: сначала число N, а затем числа от 1 до...

Вывод больших чисел
Доброго времени суток! Подскажите пожалуйста, есть задача, ответ этой задачи выводится в виде 1.0344827586206896e+17 А должен...

38
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
13.12.2019, 22:29
supmener, если введено целое число то в икс не будет точки, не благодари
1
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
13.12.2019, 22:43  [ТС]
Так вообще дробное не получается ввести
Python
1
2
3
4
5
6
7
x=int(input('Введите число: '))
if x==0:
    print('Вы ввели ноль')
elif x<0:
    print('Вы ввели отрицательное число',x)
elif x>0:
    print('Вы ввели положительное число',x)
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
13.12.2019, 22:44
supmener, а кто тебя просил к инту приводить в первой строке? читаем строку, если есть точка - то там флоат, если нет то целое, пиши что надо

и по коду не видно при чем тут целое и дробное - ты вроде проверяешь на положительное и отрицательное
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
13.12.2019, 22:51  [ТС]
А что в этой фразе непонятного?
Цитата Сообщение от supmener Посмотреть сообщение
если введено целое число, то чтобы отображалось без ноля. А если введено дробное, то чтобы так и оставалось без округления?
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
13.12.2019, 22:56
Цитата Сообщение от supmener Посмотреть сообщение
А что в этой фразе непонятного?
действительно, что ты в ней прочел такого, что решил ввод сразу привести к инту? как тогда дробное вводить?
1.0 должно стать 1? 1.12 остаться 1.12?

Добавлено через 1 минуту
Цитата Сообщение от supmener Посмотреть сообщение
если введено целое число, то чтобы отображалось без ноля.
10 должно стать 1? без нуля ж
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
14.12.2019, 04:29
Цитата Сообщение от Welemir1 Посмотреть сообщение
если введено целое число то в икс не будет точки, не благодари
Не факт.
Python
1
2
>>> type(1e1)
<class 'float'>
supmener,
Python
1
2
3
4
5
6
7
8
9
10
11
def parse_int_or_float(s):
    try:
        return int(s)
    except ValueError:
        return float(s)
 
 
print(parse_int_or_float('42'))
print(parse_int_or_float('42.0'))
print(parse_int_or_float('42.'))
print(parse_int_or_float('42e0'))
1
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
14.12.2019, 07:06
Мне кажется, что написание такой функции (возвращающей int или float) - бессмысленно. Введённые числе не будут крутиться в вакууме, с ними будут производиться действия (сложение итд). И произойдёт то, что больше всего боится ТС: изменится тип переменной на float.

Обычно делают вычисления во float, а на экран выводят с какой-либо точностью: https://pyformat.info/
Python
1
2
>>> '{:.3f}'.format(42)
'42.000'
Хотя можно проверять, что если хоть одна введённая переменная имеет тип float, то и остальные надо сконвертировать во float:
Python
1
2
3
4
5
x = parse_int_or_float(input('Введите число x: '))
y = parse_int_or_float(input('Введите число y: '))
if isinstance(x, float) or isinstance(y, float):
    x = float(x)
    y = float(y)
1
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
14.12.2019, 08:56
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Мне кажется, что написание такой функции (возвращающей int или float) - бессмысленно.
В данном случае — согласен.

Я просто реализовал хотелку автора, и не было желания начинать дискуссию, зачем это нужно и какая задача решается. Подозреваю, что никакая.

Функция, которая принимает на вход строку и возвращает полиморфный объект с меткой типа, может быть уместна в лексическом анализаторе. Функция, которая принимает на вход значения разных типов и выводит общий для всех — для вывода типов в каком-нибудь компиляторе. Понятно, что это не случай автора.
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
14.12.2019, 09:22  [ТС]
Не работает
Python
1
2
3
4
5
6
7
8
9
x = parse_int_or_float(input('Введите число x: '))
if isinstance(x, float):
    x = float(x)
if x==0:
    print('Вы ввели ноль')
elif x<0:
    print('Вы ввели отрицательное число',x)
elif x>0:
    print('Вы ввели положительное число',x)
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
14.12.2019, 09:27
Экстрасенсы в отпуске. Какая ошибка?

Не по теме:

и строки 2-3 не нужны

0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
14.12.2019, 10:02  [ТС]
Для кода в посте показывает следующую ошибку
Python
1
2
3
4
5
6
7
x = parse_int_or_float(input('Введите число x: '))
if x==0:
    print('Вы ввели ноль')
elif x<0:
    print('Вы ввели отрицательное число',x)
elif x>0:
    print('Вы ввели положительное число',x)
Traceback (most recent call last):
File "if-elif-else.py", line 1, in <module>
x = parse_int_or_float(input('Введите число x: '))
NameError: name 'parse_int_or_float' is not defined
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
14.12.2019, 10:05
А саму функцию parse_int_or_float кто будет копировать? Посмотрите 7 пост этой темы.
1
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
14.12.2019, 10:36  [ТС]
А вот в чем дело. А то ссылка из письма с утра открылась на вашем посте, а то что выше не увидел. Как бы видел, что что то здесь не так. Просто решил написать, чтобы показать, что чего то не хватает.

Добавлено через 4 минуты
Цитата Сообщение от Welemir1 Посмотреть сообщение
10 должно стать 1? без нуля ж
Нет, 1 должно остаться 1, а не стать 1.0

Добавлено через 21 минуту
А если делать не на функции, то как тут дописать?
Python
1
2
3
4
5
6
x = input('Введите число x: ')
if x==0:
    print('Вы ввели ноль')
if type(x) == int:
    
if type(x) == float:
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
14.12.2019, 11:41
Цитата Сообщение от supmener Посмотреть сообщение
А если делать не на функции, то как тут дописать?
Непонятно, чего ты хочешь от функции type. В последнем фрагменте кода тип x — строка, type и будет возвращать строковый тип, независимо от ее содержимого.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
14.12.2019, 11:41
Цитата Сообщение от supmener Посмотреть сообщение
А если делать не на функции,
Так вытащите код из функции, делов-то. Заодно потренируетесь в обработке исключений.

Цитата Сообщение от supmener Посмотреть сообщение
x = input('Введите число x: ')
В переменной хранится строка, можете сами убедиться.
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
14.12.2019, 18:18  [ТС]
Как то можно еще оптимизировать?
Python
1
2
3
4
5
6
7
8
x = input('Введите число x: ')
if type(x) == str:
    try:
        x=int(x)
        print('Вы ввели: ',x)   
    except ValueError:
        x=float(x)
        print('Вы ввели: ',x)
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
14.12.2019, 18:28
Цитата Сообщение от supmener Посмотреть сообщение
type(x) == str:
Всегда будет True.

Цитата Сообщение от supmener Посмотреть сообщение
print('Вы ввели: ',x)
Дублируется строка в обоих ветвях кода.
1
36 / 21 / 9
Регистрация: 17.10.2019
Сообщений: 95
14.12.2019, 18:45
попробуйте так
Python
1
2
3
x=  float(input())
if x%1==0.0:
    x = int(x)
Добавлено через 28 секунд
может быстрее будет
1
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
14.12.2019, 19:22  [ТС]
Почему то не работает
Python
1
2
3
4
5
6
7
x=  float(input())
if x%1==0.0:
    try:
        x = int(x)
    except ValueError:
        print('Вы не ввели число')
        print('Вы ввели: ',x)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.12.2019, 19:22
Помогаю со студенческими работами здесь

Вывод чисел по спирали
Добрый день! Посмотрите, пожалуйста. Решаю такую задачу: Выведите таблицу размером n×n, заполненную числами от 1 до n^2 по спирали,...

Вывод чисел списком
Здравствуйте,хотел бы задать вопрос.Мне нужно написать программу,которая выводит числа СПИСКОМ,которые делятся на 5 и в остатке у них...

Вывод чисел поочередно
Добрый вечер, как сделать поочередный вывод чисел на Python, то есть чтобы сначала выводилось первое число, потом оно пропадало и...

Вывод последовательности чисел, по 5 в строке
Привет знатокам, нужно написать программу вывода в строки, желательно через &quot;for i in range&quot;. 1) 1 2 3 4 5 ...

Вывод одинаковых чисел в списке
В багажнике лежит ящик с деталями для ремонта автомобиля во время дальней поездки. Но поскольку поездка будет по бездорожью, то в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru