Python: есть ли встроенная функция, которая преобразует строку только в целое число без знака, выдает ошибку, если строка является целым числом со знаком - PullRequest
0 голосов
/ 13 января 2019

Рассмотрим этот пример в Python 3.X:

strX = "-5"
print (int(strX))

Выше программы возвращается -5

Вопрос: Существует ли какая-либо встроенная функция, подобная "int ()", которая возвращает сообщение об ошибке, если преобразуется строка (в приведенном выше примере "strX" ) это отрицательное число?

Я ищу какую-то встроенную функцию, например "unsigned_int ()", которая должна продолжаться только в том случае, если переданная строка имеет ноль или более, иначе вернет ошибку, если передано отрицательное число.

Ответы [ 2 ]

0 голосов
/ 13 января 2019

Я не думаю, что для этой конкретной цели есть однострочная или встроенная функция, но простой оператор if должен работать.

strX = "-5"
strX = int(strX)
if strX >= 0 or strX >= -0:
  print (strX)
else:
  print ("Not a non-negative value.")

Ваш пример был написан с синтаксисом Python 2.7, но, поскольку мне это неудобно, я переписал его в Python 3.X. Приносим извинения за неудобства.

0 голосов
/ 13 января 2019

Для этого нет ничего встроенного, Python распознает только тип "int". Вы можете проверить, есть ли (или есть) какие-либо '-' перед фактическими цифрами, и, если да, с помощью % определить, является ли их число четным или нечетным, определить, должно ли оно быть положительным или отрицательным.

Не забывайте, что 0 и -0 оба должны быть положительными.

...