Добрый день. Как узнать аппаратный адрес переменной в python? И какой функцией(именно функцией, если есть таковая) можно проверить правильность ввода вещественных чисел в python? isdigit() и isnumeric() ловят только неотрицательные целые. Спасибо заранее.
Asked
Active
Viewed 271 times
-1
-
Что вы называете аппаратным адресом? Вы в курсе о существовании виртуальной памяти? – 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 Answers
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
-
-
-
@ 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 -