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

Как определить положительное или отрицательное число в питоне

  • автор:

Положительное или отрицательное число

Author24 — интернет-сервис помощи студентам

1, если оно положительное,
-1, если оно отрицательное,
0, если оно равно нулю.

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Пользователь вводит число Определить, положительное это число, отрицательное или равно нулю
3. Пользователь вводит число. Определить, положительное это число, отрицательное или равно нулю.

Какое число встречается в списке раньше – положительное или отрицательное
Дан список из N целых чисел. Выяснить, какое число встречается в массиве раньше – положительное или.

Найти минимальное положительное и максимальное отрицательное числа
С клавиатуры вводятся n целых чисел. Найти минимальное положительное и максимальное отрицательное.

Вывести второе отрицательное число в последовательности
дана последовательность из n целых чисел. вывести второе отрицательное число в этой.

Найти в строке минимальное положительное число
Дана строка из пяти целых чисел, разделенных пробелом. Пример входных данных: "2 12 -45 7 10".

Проверка на число

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

В Python проверка строки на число можно осуществить двумя способами:

  • Проверить все символы строки что в них записаны цифры. Обычно используется для этого функция isdigit.
  • Попытаться перевести строку в число. В Python это осуществляется с помощью методов float и int. В этом случае обрабатывается возможное исключение.

Рассмотрим как применяются эти способы на практике.

isdigit, isnumeric и isdecimal

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

a = '0251' print(a.isdigit()) True

Если в строка будет пустой, то функция возвратит False.

a = '' print(a.isdigit()) False

Методы строки isnumeric и isdecimal работают аналогично. Различия в этих методах только в обработке специальных символов Unicode. А так как пользователь будет вводить цифры от 0 до 9, а различные символы, например, дробей или римских цифр нас не интересуют, то следует использовать функцию isdigit.

Проверка с помощью исключения

Что же делать, если требуется проверить строку на отрицательное число. В Python с помощью isdigit не удастся определить отрицательное число или число с плавающей точкой. В этом случае есть универсальный и самый надежный способ. Надо привести строку к вещественному числу. Если возникнет исключение, то значит в строке записано не число.

Приведем функцию и пример ее использования:

def is_number(str): try: float(str) return True except ValueError: return False a = '123.456' print(is_number(a)) True

Для целых чисел

Аналогично можно сделать и проверку на целое число:

def is_int(str): try: int(str) return True except ValueError: return False a = '123.456' print(is_int(a)) False

Встроенные функции Python 3 для работы с числами

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

Данное руководство ознакомит с некоторыми встроенными функциями для работы с числовыми типами данных в Python 3:

  • abs() – абсолютная величина.
  • divmod() – частное и остаток от деления.
  • pow() – возведение в степень.
  • round() – округление десятичного числа.
  • sum() – сумма членов изменяемой последовательности.

Все эти методы делают разработку программы более гибкой.

Абсолютная величина

Встроенная функция abs() возвращает абсолютную величину указанного числа. В математике абсолютная величина, или модуль числа – это неотрицательное число, выражающее расстояние от этого числа до нуля. Например, абсолютная величина 15 – это 15, а -75 – число 75. Абсолютная величина 0 равна 0.

Абсолютная величина – важный аспект вычислений и анализа.

Рассмотрим такой пример: вам нужно проехать 58 км, вместо этого вы проехали 93 км. Чтобы узнать, сколько км осталось, нужно вычесть из расстояния (58 км) количество километров, которое вы проехали (93 км). В данном случае в результате будет отрицательное число. Но проехать отрицательное количество километров невозможно. Попробуйте решить эту задачу с помощью abs():

km_from_origin = 58 # расстояние до пункта назначения
km_travelled = 93 # преодоленное расстояние (больше)
km_to_go = km_from_origin — km_travelled
print(km_to_go) # покажет, сколько км осталось (отрицательное число)
print(abs(km_to_go)) # выведет абсолютную величину отрицательного числа
-35
35

Без функции abs() в результате получится -35, отрицательное число. Функция abs() возвращает положительное число, так как абсолютная величина всегда представлена положительным числом или нулём.

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

Частное и остаток от деления

Деление floor (возвращает частное), и деление по модулю (возвращает остаток), тесно связаны между собой, потому функция, которая сочетает в себе обе эти операции, будет очень полезна.

Для этого Python предоставляет встроенную функцию divmod().

Функция divmod() работает с двумя значениями:

Она выполняет такие операции:

Предположим, вы написали книгу, которая состоит из 80000 слов. На одной странице можно разместить либо 300, либо 250 слов. Нужно посчитать, сколько страниц получится в первом и во втором варианте. Попробуйте сделать это с divmod():

words = 80000 # количество слов в книге
per_page_A = 300 # вариант А, 300 слов на странице
per_page_B = 250 # вариант B, 250 слов на странице
print(divmod(words,per_page_A))
print(divmod(words,per_page_B))
(266, 200)
(320, 0)

Если на каждой странице будет по 300 слов, в книге будет 266 страниц, и ещё одна страница будет заполнена на две трети (итого 267 страниц). Если на каждой странице будет по 250 слов, в книге будет ровно 320 страниц.

Функция divmod() может работать с целыми числами и с числами с плавающей точкой. Например:

a = 985.5
b = 115.25
print(divmod(a,b))
(8.0, 63.5)

Где 8.0 – частное, 63.5 – остаток.

Возведение в степень

В Python существует оператор ** для возведения числа в степень. Но также вы можете использовать встроенную функцию pow().

К примеру, вы исследуете бактерии, и вам нужно подсчитать, сколько бактерий будет в конце дня, если утром была одна бактерия, а количество бактерий в час увеличивается вдвое.

hours = 24
total_bacteria = pow(2,hours)
print(total_bacteria)
16777216

К примеру, в обычной математике 3 в кубе записывается так:

Это равно 3 x 3 x 3 (27).

Чтобы вычислить 3³ в Python, нужно записать это так:

Округление десятичного числа

При работе с десятичными числами важно иметь возможность быстро округлить его до N знаков после запятой. Строенная функция round() выполняет эту задачу. При этом ей необходимо два числа: A – число, которое нужно округлить, B – количество знаков после запятой.

i = 17.34989436516001
print(round(i,4))
17.3499

Попробуйте написать простую программу, которая будет подсчитывать чаевые. К примеру, три человека хотят разделить счет в ресторане в $87.93 и оставить 20% чаевых.

bill = 87.93 # общая сумма счёта
tip = 0.2 # 20% чаевых
split = 3 # количество человек
total = bill + (bill * tip)
each_pay = total / split # посчитает, сколько должен заплатить каждый
print(each_pay) # сумма без округления
print(round(each_pay,2)) # округлённая сумма
35.172000000000004
35.17

В результате получилось число с большим количеством десятичных знаков. Функция round() округлила его до двух знаков после запятой.

Чтобы округлить десятичное число до целого числа, задайте 0 в качестве второго параметра (в данном случае тип данных не преобразуется, после запятой будет 0):

Функция round() может работать и с целыми числами. Если в качестве первого параметра задано целое число, в результате функция также вернёт целое число.

Сумма членов

Функция sum() позволяет вычислить сумму членов составных числовых типов данных: списков, кортежей и словарей.

some_floats = [1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9] print(sum(some_floats))
49.5

Точно так же это работает с кортежами и словарями:

print(sum((8,16,64,512))) # сумма членов кортежа
print(sum()) # сумма членов словаря
600
-60

Функции sum() можно задать два аргумента. Второй аргумент – это число, которое нужно прибавить к сумме членов списка/кортежа/словаря. Например:

some_floats = [1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9] print(sum(some_floats, 0.5))
print(sum(,60))
50.0
0

Читайте также:

Как перевернуть знак?

В python, чтобы поменять знак какого-либо числа в переменной num , надо записать -num :

print(-a) # -5 print(-b) # 2 

Как сделать положительное число?

Быстрый способ

Чтобы перевести любое число в ранг положительных, нужно написать abs(num) :

print(abs(a)) # 5 print(abs(b)) # 2 

Почему этот способ самый быстрый?

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

Математический способ

Это более медленный и длинный в написании способ. Для этой задачи не рекомендую его использовать.
Записать можно по-разному, но я приведу два различных способа:

print((a**2)**0.5) # 5 print((b**2)**0.5) # 2 
from math import pow, sqrt print(sqrt(pow(a, 2))) # 5 print(sqrt(pow(b, 2))) # 2 

Как это работает?

Чтобы получить модуль числа (то же число, только всегда положительное) число надо возвести в квадрат и извлечь квадратный корень.
В питоне можно по-разному записать эти операции, один способ — ** (возведение в степень), другой — воспользоваться встроенной библиотекой math .
Возведение в 2 степень — возведение в квадрат, а в 0.5 — эквивалентно извлечению квадратного корня.
Также для возведения в степень можно использовать функцию math.pow , а для извлечения квадратного корня — math.sqrt .

Вывод

Наш выбор для создания положительного числа — использовать функцию abs !
Соединяя инверсию знака с созданием положительного числа мы получаем следующее:

Чтобы перевести любое число num в ранг отрицательных, надо записать -abs(num)

print(-abs(a)) # -5 print(-abs(b)) # -2 

Ремарки

  • Для простоты понимания я опустил деталь, что при использования математического способа результат — float , а не int , и при выводе .0 добавляется к числу.
  • Изначально в вопросе просилось сделать отрицательное число.

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

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