Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 11, 2011 05:04:27

solyony
От:
Зарегистрирован: 2010-12-01
Сообщения: 58
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа со строками

Как проверить, является входящая строка числом или нет, и перевести строку в число при возможности.

То есть что бы распознавало строки типа:
-0.000001
12851285.12591
и т.д.

Спасибо,



Офлайн

#2 Апрель 11, 2011 05:21:34

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Работа со строками

try:
value = float(word)
except ValueError:
value = None
..bw



Офлайн

#3 Апрель 11, 2011 05:28:22

solyony
От:
Зарегистрирован: 2010-12-01
Сообщения: 58
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа со строками

Спасибо, я что-то втыканул немного…



Офлайн

#4 Апрель 11, 2011 07:48:27

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Работа со строками

Число довольно широкое понятие. Стандартный способ Питона произвести eval над строкой.

eval("3.3") # ok
eval("3") # ok
eval("3+3")# ok
eval("0x33")# ok
eval("0xxx33")# fail

float("3.3")# ok
float("3") # ok
float("3+3") # fail
float("0x33")# fail
float("0xxx33")# fail
Этим я хочу сказать что в eval более широкое понимание числа. А дальше вам решать что такое число.



Офлайн

#5 Апрель 12, 2011 00:40:39

solyony
От:
Зарегистрирован: 2010-12-01
Сообщения: 58
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа со строками

Спасибо, но float мне лучше потому что :

>>> float("-inf")
-inf
>>> s=float("-inf")
>>> print s*100
-inf
>>> print -100*s
inf
>>> print 1/s
-0.0
>>> float ("-0")
-0.0
>>> float("-inf")+float("+inf")
nan
А мне это как раз и надо…



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version