Проверка натурального числа

Задача 1.1
Дано число Х. Если оно натуральное, то вывести на экран сообщение: “Х — натуральное число”, иначе — вывести сообщение “Х — действительное число”.
Прежде чем начать решать эту задачу, давайте вспомним, что такое натуральные и действительные числа.
Что такое натуральное число
Натуральные числа (от лат. naturalis — естественный; естественные числа) — это числа, возникающие естественным образом при счёте (например, 1, 2, 3). Последовательность всех натуральных чисел, расположенных в порядке возрастания, называется натуральным рядом.
Существуют два подхода к определению натуральных чисел:
- Натуральные числа — это числа, возникающие при подсчёте (нумерации) предметов (первый, второй, третий и т.д.).
- Натуральные числа — это числа, возникающие при обозначении количества предметов (нет предметов, один предмет, два предмета и т.д).
В первом случае ряд натуральных чисел начинается с единицы, а во втором — с нуля.
Отрицательные и нецелые (рациональные, вещественные, …) числа к натуральным не относятся.
Что такое действительное число
Вещественное, или действительное число (от лат. realis — действительный) — это математический объект, возникший из потребности измерения геометрических и физических величин окружающего мира, а также проведения таких вычислительных операций, как извлечение корня, вычисление логарифмов, решение алгебраических уравнений, исследование поведения функций.
Если натуральные числа возникли в процессе счёта, а рациональные — из потребности оперировать частями целого, то вещественные числа предназначены для измерения непрерывных величин.
Не будем углубляться в теорию. Попробуем подвести итог простыми словами. Итак,
Натуральное число — это целое положительное число.
Вещественное (действительное) число — это не целое число (число с дробной частью).
Теперь попробуем найти решение задачи. Вариантов может быть несколько. Мы попробуем два из них — проверку натурального числа и проверку действительного числа. Они мало чем отличаются, но всё же.
Чтобы как-то отличить их, оформим их в виде функций.
Как проверить натуральное число
Можно выбрать, например, такой алгоритм:
- Получить число Х
- Проверить, не является ли число отрицательным
- Если да, то вывести “Х — действительное число”
- Если нет, то
- Выделить дробную часть числа
- Если она равна нулю, то вывести “Х — натуральное число”
- Иначе вывести “Х — действительное число”
- Завершить программу
Поскольку мы решили оформить решения в виде функций, то проверка натурального числа поместится в одну строку исходного кода.
//********************************************************* // Проверяет, является ли число натуральным. // ВХОД: проверяемое число // ВЫХОД: TRUE - число является натуральным, // FALSE - не является //********************************************************* function NumIsNatural(N : Single) : boolean; begin Result := (N >= 0) and (Frac(N) = 0); end;
Проверка действительного числа
Как я уже говорил, такая проверка мало чем отличается от предыдущей и также помещается в одну строку исходного кода:
//********************************************************* // Проверяет, является ли число действительным (вещественным) // ВХОД: проверяемое число // ВЫХОД: TRUE - число является действительным, // FALSE - не является //********************************************************* function NumIsReal(N : Single) : boolean; begin Result := (N < 0) or (Frac(N) > 0); end;
Ниже приведены примеры программ на языках Паскаль и С++.
Решение задачи 1.1 на Паскале
program natural; var X : Single; N : Single; //**************************************************************** // Проверяет, является ли число натуральным. // ВХОД: проверяемое число // ВЫХОД: TRUE - число является натуральным, FALSE - не является //**************************************************************** function NumIsNatural(N : Single) : boolean; begin Result := (N >= 0) and (Frac(N) = 0); end; //**************************************************************** // Проверяет, является ли число действительным (вещественным). // ВХОД: проверяемое число // ВЫХОД: TRUE - число является действительным, // FALSE - не является //**************************************************************** function NumIsReal(N : Single) : boolean; begin Result := (N < 0) or (Frac(N) >0); end; //**************************************************************** // ОСНОВНАЯ ПРОГРАММА //**************************************************************** begin //Проверка натурального числа Write('X = '); ReadLn(X); if NumIsNatural(X) then WriteLn('X is a natural number') else WriteLn('X is a real number'); //Проверка действительного числа Write('X = '); ReadLn(X); if NumIsReal(X) then WriteLn('X is a real number') else WriteLn('X is a natural number'); ReadLn; end.
Решение задачи 1.1 на С++
#include #include using namespace std; //**************************************************************** // Проверяет, является ли число натуральным. // ВХОД: проверяемое число // ВЫХОД: TRUE — число является натуральным, FALSE — не является //**************************************************************** bool NumIsNatural(float N) < int a = (int)N; return ((N >= 0) && ((N — a) == 0)); > //**************************************************************** // Проверяет, является ли число действительным (вещественным). // ВХОД: проверяемое число // ВЫХОД: TRUE — число является действительным, // FALSE — не является //**************************************************************** bool NumIsReal(float N) < int a = (int)N; return ((N < 0) || ((N - a) != 0)); >//**************************************************************** // ОСНОВНАЯ ПРОГРАММА //**************************************************************** int main(int argc, char *argv[]) < float X; //Проверка натурального числа cout << "X X is a natural number" << endl; else cout << "X is a real number" << endl; //Проверка действительного числа cout
ВАЖНО!
Из-за особенностей представления вещественных чисел в памяти компьютера эти примеры не будут работать с большими числами. Например, эти функции, скорее всего, определят, что число 567894,01 является натуральным, а число 567894,1 — действительным. Числа с меньшими значениями будут определяться более точно. Например, число 1,0000001 (шесть нулей) определится как вещественное, а число 1,00000001 (семь нулей) определится как натуральное.
Можно, конечно, постараться и сделать работу этих функций более точной. Но это уже будет более сложное решение.
Проверка на целое число—условие на проверку данных, введенных пользователем
Да, в данной ветке уже был, внимательно ознакомился. Все идеально, но там описывают числа с плавающей точкой, хотелось бы то-же самое, но для целых чисел.
1 ноя 2016 в 6:02
float меняете на int и будет тоже самое
1 ноя 2016 в 6:19
Взяв за основу: print(‘это число’ if isfloat(input(‘введите число’)) else ‘это не число’) и заменив «float» на «int» получил: «NameError: name ‘isint’ is not defined»
1 ноя 2016 в 6:58
Насколько я понял из ваших комментариев к другим ответам, вам нужно просто проверить, что строка содержит только цифры или минус на первой позиции. Это элементарно реализуется в несколько строчек.
1 ноя 2016 в 12:23
6 ответов 6
Сортировка: Сброс на вариант по умолчанию
Чтобы проверить является ли строка введённая пользователем целым числом, можно воспользоваться int в try/except, похожим образом как показано в ответе на вопрос «Python 3 Проверка на дробное число введённое пользователем», порекомендованный @Alex.B, заменив float на int как @gil9red предложил и @slippyk явно показал:
def isint(s): try: int(s) return True except ValueError: return False
>>> isint('10') True >>> isint('a') # не десятичная цифра False >>> isint('²') # верхний индекс False >>> isint('১') # Bengali (Unicode) True
Это может сломаться, если ввод не строка, например:
>>> isint(0.5) # XXX не работает для float True >>> 0.5 .is_integer() False >>> from numbers import Integral >>> isinstance(0.5, Integral) False >>> isinstance(123, Integral) True >>> isinstance(1., Integral) # XXX float False >>> 1..is_integer() # но целое значение True >>> from fractions import Fraction >>> isint(Fraction(1, 2)) # XXX не работает для дробей True >>> isinstance(Fraction(1, 2), Integral) False >>> isinstance(Fraction(1), Integral) # XXX дробь False >>> Fraction(1) == 1 # даже если целое значение True
Если вы хотите проверить, что переданная строка содержит только десятичные цифры и ничего более (к примеру, нет ‘+’ , ‘-‘ , ‘ ‘ , ‘\n’ символов в ней), то можно str.isdecimal использовать:
>>> '123'.isdecimal() True >>> '+123'.isdecimal() False >>> isint('+123') True >>> isint(' 123\n') True >>> ' 123\n'.isdecimal() False
isdecimal() можно использовать, чтобы имена файлов, содержащие цифры, в «естественном» порядке отсортировать (как Windows-проводнике). См. Python analog of natsort function (sort a list using a “natural order” algorithm).
Если хотите несколько таких чисел из ввода извлечь, можно регулярное выражение использовать:
>>> import re >>> from datetime import datetime >>> date_string = '2016-11-01 23:04:05' >>> datetime(*map(int, re.findall(r'\d+', date_string))) datetime.datetime(2016, 11, 1, 23, 4, 5)
Последнее, это возможно более простой, менее строгий (и эффективный) вариант для:
>>> datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S') datetime.datetime(2016, 11, 1, 23, 4, 5)
Если вы хотите разрешить задавать целые числа в произвольном основании как в исходном коде Питона, то передайте base=0 :
>>> int('0b1110', 0) # binary ("01") 14 >>> int('0xcafe', 0) # hexadecimal 51966
Проверка, является ли переменная целым числом
Часто при программировании на Python возникает необходимость проверить, является ли значение переменной целым числом. Это может быть полезно в различных ситуациях, например, при валидации пользовательского ввода или при обработке данных разного типа. Рассмотрим пример.
value = "123"
Если попытаться использовать это значение в математических операциях, возникнет ошибка, так как это строка, а не число. Для избежания таких ошибок и проводится проверка типа переменной.
Как проверить, является ли переменная целым числом
Python предоставляет встроенную функцию isinstance() , которая позволяет проверить, принадлежит ли объект к определенному классу или типу данных.
value = 123 print(isinstance(value, int))
В этом примере isinstance() вернет True , если значение является целым числом ( int ), и False в противном случае.
Проверка на целочисленность для чисел с плавающей точкой
Если работа ведется с числами с плавающей точкой ( float ), которые могут быть целыми, можно использовать метод is_integer() .
value = 123.0 print(value.is_integer())
В этом примере value.is_integer() вернет True , если число с плавающей точкой является целым числом, и False в противном случае.
Заключение
Проверка, является ли переменная целым числом, в Python — простая и полезная операция, которую можно легко реализовать с помощью встроенных функций и методов. Она помогает избежать ошибок при выполнении операций с переменными разных типов.
Нахождение натуральных чисел с условием
Попробуем применить знания, полученные при изучении Питона , чтобы решить математическую задачу за несколько минут. Метод решения задачи с применением математики очень прост, но вот подсчитать и не сбиться по точному количеству чисел трудно. Почему бы не поручить решить эту задачу Питону? Такое ему точно по зубам!

Условие задачи
Найти общее количество всех натуральных чисел, меньшие числа n, квадраты которых, делятся на число b .
Решение задачи в математике
Любой квадрат числа делится на само число, поэтому следующее число отстоит от первого на это же число. Поясним примером.
Допустим n=100 , а b=15 . Следовательно, последовательность этих чисел: 15, 30, 45, 60, 75, 90 . А их общее количество равно 6.
Задача в Питоне решается следующим образом.
Из математики мы знаем, что признак делимости любого натурального числа на другое натуральное число — нулевой остаток.
В Питоне остаток деления числа x на число y можно найти через операцию x%y .
Также нужно учесть, что число не может быть меньше числа b. Это мы проверяем, заведя новое условие.
Исходные данные ( n и b ) вводим с клавиатуры.
В итоге, у вас может получится следующий код программы:
n=int(input(«Введите максимальное натуральное число Введите число на которое делить Таких чисел knopka»>len() .
n=int(input(«Введите максимальное натуральное число Введите число на которое делить margin:10px»>
© 2013-2020 Информатика. Полезные материалы по информационным технологиям. Использование материалов без активной ссылки на сайт запрещено! Публикация в печати только с письменного разрешения администрации.