-1

Добрый день. Как узнать аппаратный адрес переменной в python? И какой функцией(именно функцией, если есть таковая) можно проверить правильность ввода вещественных чисел в python? isdigit() и isnumeric() ловят только неотрицательные целые. Спасибо заранее.

dio4
  • 95
  • 8
  • Что вы называете аппаратным адресом? Вы в курсе о существовании виртуальной памяти? – VladD Nov 08 '16 at 08:03
  • я про вирт. память вроде ничего не спрашивал. slippyk все четко ответил и спасибо ему. – dio4 Nov 08 '16 at 08:13
  • 1
    Если у вас есть два раздельных вопроса, стоит задавать их отдельно друг от друга. – Timofei Bondarev Nov 08 '16 at 17:53
  • Вы знаете, а slippyk это не смутило. Он просто помог мне исчерпывающим ответом и все. Да и вопросы не космического масштаба были для знающего человека. Не хотел форум засорять двумя разными темами. – dio4 Nov 09 '16 at 11:05

1 Answers1

2

Чтобы получить адрес объекта есть функция id()

Более подробно читайте здесь: 1, 2, 3, 4

Интересная особенность (по первой ссылке):

Заметки к реализации из CPython

Идентификатор является адресом объекта в памяти.

Следует иметь в виду, что некоторые объекты могут иметь один и тот же идентификатор, например: мелкие целые (с -5 по 256), True и False.

a = 1
b = 1

id(a) == id(b)  # True

a = 257
b = 257

id(a) == id(b)  # False

По поводу проверки уже был такой вопрос:

def isfloat(value):
    try:
        float(value)
        return True
    except ValueError:
        return False


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


x = '156'
isint(x) # True
isfloat(x) # False

x = '156.0'
isint(x) # False
isfloat(x) # True
slippyk
  • 6,161
  • спасибо. Я не нашел такого ранее данного ответа. Наверное плохо искал. – dio4 Nov 08 '16 at 08:12
  • @ jfs Понял, спасибо. Но я не вел речь за маленькие int. Меня интересовало получение адреса переменной (именованной области памяти) или ссылки на такую область. И может дополните ответ slippyk - что это за число такое получается при выводе id() ? В какой системе счисления? спасибо заранее. – dio4 Nov 09 '16 at 11:11
  • @dio4 Return the “identity” of an object. This is an integer which is guaranteed to be unique and constant for this object during its lifetime. Two objects with non-overlapping lifetimes may have the same id() value.

    CPython implementation detail: This is the address of the object in memory.

    – slippyk Nov 09 '16 at 11:45
  • @dio4 type(id(x)) # <class 'int'> - число в десятичной системе, адрес объекта в памяти для CPython (уникальный идентификатор объекта) – slippyk Nov 09 '16 at 11:46
  • @slippyk и снова очень благодарю – dio4 Nov 09 '16 at 13:06