Найти - Пользователи
Полная версия: cannot concatenate 'unicode' and 'float' objects
Начало » Python для новичков » cannot concatenate 'unicode' and 'float' objects
1 2 3
admyn
a = ‘15’ # это строка
b = int(a) # а это уже как бы номер integer
c = float(b) # номер с плавающей точкой, ака float

Если я правильно понял, то вроде так :)
FishHook
robot_chickn
мне нужно их сохранить как числовые переменные.
И в каком месте Вашего кода это происходит?
robot_chickn
я совсем недолго работаю с python и как я понял, то для него нет особой привязки к переменным. поэтому я делал так:
Lan = values[3]
Lat = values[5]

Видимо надо делать так:
Lan = float(values[3])
Lat = float(values[5])

верно??
admyn
Дык, попробуете, посмотрите результат и поймёте верно или нет :)
FishHook

Видимо, нужно периодически включать в творческий процесс голову. Если ты разбиваешь строку на подстроки, каким волшебным образом часть этих подстрок вдруг преобразуются в числа? Интерпретатор должен догадаться, что тебе нужно число?
robot_chickn
))))

спасибо большое!! все работает, вы мне очень помогли.
можете еще сказать, если вдруг туда попадут не цифры, а какая нибудь другая фигня, то программа выдает ошибку, как можно этого избежать? (используя условие)
robot_chickn
FishHook
Видимо, нужно периодически включать в творческий процесс голову. Если ты разбиваешь строку на подстроки, каким волшебным образом часть этих подстрок вдруг преобразуются в числа? Интерпретатор должен догадаться, что тебе нужно число?

до этого в описаниях не встречал таких преобразований в числа и думал, что одним из преимуществ python есть не жесткая привязка к параметрам переменных.
это же все таки раздел для новичков.
alexbadaloff
robot_chickn
можете еще сказать, если вдруг туда попадут не цифры, а какая нибудь другая фигня, то программа выдает ошибку, как можно этого избежать? (используя условие)

Как вариант:
>>> x = 5
>>> isinstance(x, int)
True
>>> x = 'str'
>>> isinstance(x, int)
False

Если с if:
if isinstance(x, int):
   print('Это число')
else:
   print('Это не число')
FishHook
robot_chickn
есть не жесткая привязка к параметрам переменных.
Смотри
print "1"+"1"
>>> 11
print 1+1
>>> 2
print "1"+1
>>>????????

>>>как можно этого избежать? (используя условие)
s=["1.5","3","dsfsd","4.6"]
def is_digit(i):
    try:
        float(i)
        return True
    except ValueError:
        return False
print map(float, filter(is_digit, s))
robot_chickn
alexbadaloff

я не совсем это имел в виду. т.к. я работаю с потоком данных и выхватываю от туда только нужную мне информацию, мне бы хотелось предварительно проверить, что действительно буду сохранять число без всякого мусора.
Данные обычно получаю правильные, но бывает, что числа приходят объединенные с соседней информацией, например так:
3723.2475N
И тогда программа выдает ошибку.
В связи с этим, я бы хотел проверять полученную информацию, что в ней содержатся только цифры и точка.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB