Как проверить является ли число целым python
Перейти к содержимому

Как проверить является ли число целым python

  • автор:

Проверить, является ли крупное число float целым

Здравствуйте, я только начинаю учиться программировать и для тренировки решил написать простенькую программу. Её функция — при вводе числа говорить, на какие числа от 2 до 10 делится вводимое число. В случае, если вводится дробное число, например 8.123, то программа говорит, что такое число не является целым. Так вот. При вводе крупных дробных чисел, с суммарным кол-вом знаков примерно больше 20, например (22211212121212121212.4124), программа не пишет, что число не является целым, а пишет, что оно вполне себе делится на некоторые из данных чисел. Насколько я понял, это происходит в следствие того, что у питона есть ограничение по длине для чисел с плавающей точкой. У меня в голове возникло лишь одно решение: вводить переменную x в типе str, а не float, после чего проверять знаки после запятой на наличие чего угодно кроме нулей. Как вы понимаете, учитывая, что я только начал учиться, как реализовать это решение (и вообще, является ли оно верным), я без понятия. С этим вопросом и пришёл сюда. Вот код:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
import sys x = float(input()) def is_int(x): return int(x)==float(x) z = (is_int(x)) if (z)==True: print() else: print((x),'не является целым числом и, соответственно, не делится без остатка ни на одно из чисел от 2 до 10') y = float(x % 2) if float(y)==0: print ((x), 'делится на 2') else: print() y = float(x % 3) if float(y)==0: print ((x), 'делится на 3') else: print() y = float(x % 4) if float(y)==0: print ((x), 'делится на 4') else: print() y = float(x % 5) if float(y)==0: print ((x), 'делится на 5') else: print() y = float(x % 6) if float(y)==0: print ((x), 'делится на 6') else: print() y = float(x % 7) if float(y)==0: print ((x), 'делится на 7') else: print() y = float(x % 8) if float(y)==0: print ((x), 'делится на 8') else: print() y = float(x % 9) if float(y)==0: print ((x), 'делится на 9') else: print() y = float(x % 10) if float(y)==0: print ((x), 'делится на 10') else: print() k=input("Введите ENTER чтобы выйти")

Python проверка ввода числа (или текста)

Юн Сергей

Несколько алгоритмов для проверки ввода числа (строки и т.д) в Python, оформленные функциями.

Проверка ввода числа (или текста)

Вариант ValueError

def getNumber01(): # Первый вариант while type: getNumber = input('Введите число: ') # Ввод числа try: # Проверка что getTempNumber преобразуется в число без ошибки getTempNumber = int(getNumber) except ValueError: # Проверка на ошибку неверного формата (введены буквы) print('"' + getNumber + '"' + ' - не является числом') else: # Если getTempNumber преобразован в число без ошибки, выход из цикла while break return abs(getNumber) # возвращает модуль getTempNumber (для искл. отрицат. чисел) print(getNumber01())

Вариант isdigit()

def getNumber02 (): while True: getNumber = input('Введите целое положительное число: ') # Ввод числа if getNumber.isdigit() : return getNumber print(getNumber02())

You may also like

Домашняя работа по курсу Веб-вёрстка от Skillbox

Отключение перенаправления файлов Python (Wow64)

Проверка и установка принтера по умолчанию

Оставьте комментарий X

You must be logged in to post a comment.

Как проверить является ли число целым python

Для целых чисел определены операции + , — , * и ** . Операция деления / для целых чисел возвращает вещественное число (значение типа float ). Также функция возведения в степень возвращает значение типа float , если показатель степени — отрицательное число.

Но есть и специальная операция целочисленного деления, выполняющегося с отбрасыванием дробной части, которая обозначается // (она соответствует операции div в Паскале). Она возвращает целое число: целую часть частного. Другая близкая ей операция − это операция взятия остатка от деления, обозначаемая % (она соответствует операции mod в Паскале). Например:

print(17 / 3) # выведет 5.66666666667 print(17 // 3) # выведет 5 print(17 % 3) # выведет 2

2. Действительные числа

В этом разделе речь пойдет о действительных числах, имеющих тип float .

Обратите внимание, что если вы хотите считать с клавиатуры действительное число, то результат, возращаемый функцией input() необходимо преобразовывать к типу float :

1.492
x = float(input()) print(x)

Действительные (вещественные) числа представляются в виде чисел с десятичной точкой (а не запятой, как принято при записи десятичных дробей в русских текстах). Для записи очень больших или очень маленьких по модулю чисел используется так называемая запись «с плавающей точкой» (также называемая «научная» запись). В этом случае число представляется в виде некоторой десятичной дроби, называемой мантиссой, умноженной на целочисленную степень десяти (порядок). Например, расстояние от Земли до Солнца равно 1.496·10 11 , а масса молекулы воды 2.99·10 -23 .

Числа с плавающей точкой в программах на языке Питон, а также при вводе и выводе записываются так: сначала пишется мантисса, затем пишется буква e , затем пишется порядок. Пробелы внутри этой записи не ставятся. Например, указанные выше константы можно записать в виде 1.496e11 и 2.99e-23 . Перед самим числом также может стоять знак минус.

Напомним, что результатом операции деления / всегда является действительное число ( float ), в то время как результатом операции // является целое число ( int ).

Преобразование действительных чисел к целому производится с округлением в сторону нуля, то есть int(1.7) == 1 , int(-1.7) == -1 .

3. Библиотека math

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

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

import math

Например, пусть мы хотим округлять вещественные числа до ближайшего целого числа вверх. Соответствующая функция ceil от одного аргумента вызывается, например, так: math.ceil(x) (то есть явно указывается, что из модуля math используется функция ceil ). Вместо числа x может быть любое число, переменная или выражение. Функция возращает значение, которое можно вывести на экран, присвоить другой переменной или использовать в выражении:

import math x = math.ceil(4.2) y = math.ceil(4.8) print(x) print(y)

Другой способ использовать функции из библиотеки math , при котором не нужно будет при каждом использовании функции из модуля math указывать название этого модуля, выглядит так:

from math import ceil x = 7 / 2 y = ceil(x) print(y)
from math import * x = 7 / 2 y = ceil(x) print(y)

Ниже приведен список основных функций модуля math . Более подробное описание этих функций можно найти на сайте с документацией языка Питон.

Задача на Python целоечисленное

Дано четырехзначное натуральное число n. Требуется найти двузначное число, которое получится, если отбросить первую и последнюю цифру.

Формат входных данных

Вводится целое число n (1000≤?≤9999).
Формат выходных данных

Выведите двузначное число — середину числа n (без первой и последней цифры).
входные данные выходные данные
1234 23
3587 58

Лучший ответ
n = int(input())
n = n // 10 # отбрасываем последнюю цифру
n = n % 100 # отбрасываем первую цифру
print(n)
Остальные ответы

Для решения задачи на Python, дано четырехзначное натуральное число n. Необходимо найти двузначное число, которое получится, если отбросить первую и последнюю цифру.
Для начала, нужно проверить, что введенное число n является целым числом. В Python целые числа обозначаются типом int
Для проверки на целое число можно воспользоваться функцией isint(s), которая проверяет, является ли строка s целым числом
Далее, чтобы отбросить первую и последнюю цифру числа n, можно преобразовать его в строку и использовать срезы. Например, для числа 1234, срез от 1 до -1 (т.е. без первой и последней цифры) даст число 23.
код на Python, который решает данную задачу:

def isint(s): 
try:
int(s)
return True
except ValueError:
return False

n = input()
if isint(n):
middle_digits = n[1:-1]
print(middle_digits)

В этом коде функция isint(s) проверяет, является ли введенное значение целым числом. Если это так, то переменная middle_digits получает значение числа n без первой и последней цифры. Наконец, это значение выводится на экран с помощью функции print().
Пример работы программы:

Введите число: 1234 
23
Введите число: 3587 
58

Тут всё делается всего лишь в одну строчку:

print(int(input()) // 10 % 100)

Можно было бы, вообще-то, и так, что даже компактнее:

print(input()[1:3])

Однако сказано:

Вводится целое число n (1000≤?≤9999).

А при print(input()[1:3]) число, да ещё целое, не вводится, а вводится просто строка, а не число! Что строка может обозначать натуральное четырёхзначное число вполне возможно, но, вообще говоря, нет никакого основания считать вводимую строчку числом. А выводятся в данном варианте кода второй и третий символ вводимой строки, а вовсе даже не двузначное число, как чёрным по белому написано в задании:

Выведите двузначное число

поэтому первый вариант кода более соответствует заданию! А проверять ввод числа на корректность здесь не требуется — вводить четырёхзначное положительное число просто надо правильно!
А ответы нейросетей как, например, предыдущий, лучше всего отправлять сразу в бан, просто нажав на минус!

Терр ОнталМыслитель (9844) 1 месяц назад

Чем отличается, в вашем понимании, ввод числа 22 и строки «22»? Они на разные потоки подаются? Тут лучшее решение именно со строкой

Ксения Райт Гений (71527) Ещё один! Ну вот четырёхзначное натуральное число: +0000009876 Вот его и надо вводить как число целого типа, а не как строку! А ещё, в принципе, может быть, например, и такая запись четырёхзначного целого числа: 1.234e3 — оно целое по факту! Но числа в такой записи лучше вводить как рациональные и проверять их на целостность, что в данном случае излишне.

Да, всё делается в одну строку:

print(input()[1:-1])

На случай, если вокруг числа могут быть пробелы:

print(input().strip()[1:-1])

Делать преобразования строка<->число и выделять два символа числовыми операциями не имеет смысла — в этой части кода нейросеть «Татьяна» нашла в интернете лучший вариант.

Ксения РайтГений (71527) 1 месяц назад

Как мне это нравится! Попробуйте ввести четырёхзначное натуральное число, например, так:
+0001234
И сами увидите что у Вас получится.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *