2014-11-01 4 views
0

я эта переменная называется var1:Вызов переменной и печать переменной возвращает два различных выхода

var1 = tweet[0]["id_str"]

Когда я только типа var1 на консоли, это выход:

>>> var1 
u'528427823468642304' 

Но, тогда я печатаю var1, это выход:

>>> print var1 
528427823468642304 

Почему выходы разные? Мне нужны только цифры без одиночных кавычек или буквы u, но два разных выхода меня путают.

+0

Возможный дубликат [Разница между \ _ \ _ str \ _ \ _ и \ _ \ _ repr \ _ \ _ в Python] (http://stackoverflow.com/questions/1436703/difference-between-str-and- rep-in-python) – tripleee

ответ

1

Префикс u 'указывает, что рассматриваемый объект является строкой в ​​Юникоде. Это автоматически удаляется при печати переменной. Вам не нужно беспокоиться о появлении части, если вы пытаетесь использовать или индексировать строку.

Угрожает казаться маленьким snarky (чего я не намерен), кажется довольно ясным, что вы на самом деле не пытались использовать var1 в любом смысле. Если бы вы попытались:

print(var1[0]) 

вы бы поняли, что первый индекс самой строки был 5.

И если бы вы попытались:

print(var1 == '528427823468642304') 

вы бы посмотрели True. В любом случае вы бы поняли, что префикс u не имел никакого отношения к тому, как вы могли бы использовать строку. Чтобы загрузиться, вы могли бы просто подобрать «python u prefix» и первый результат сказал бы вам, что именно вам нужно знать. Это не означает категорически, что вы не должны задавать вопросы о том, что кто-то уже спрашивает где-то в Интернете, просто мой опыт в том, что я знаю, что вы ищете специфику своей проблемы, прежде чем тратить время, чтобы задать вопрос об этом как правило, приведет к более быстрому обучению.

+0

Спасибо. Печать '(var1 [0])' или try' print (var1 == '528427823468642304') ', чтобы увидеть, не было ли это реальным содержимым переменной, не перешло мне в голову. Я буду использовать эту технику самостоятельно, прежде чем задавать вопросы. –

+0

@VinceVinegar Не беспокойтесь, чтобы задавать вопросы. Это действительно не было навязыванием - у меня есть 25 репутации от этого - моя точка зрения в основном состоит в том, что вы научитесь быстрее и получите больше программ, если найдете ранее существовавшие ответы, а не потратите не пренебрежимую сумму время, которое требуется, чтобы задать вопрос о SO. Удачи. – furkle

0

Символ u показывает, что это строка в Юникоде. Если вы хотите фактический номер, вы можете выполнить int(var1), чтобы преобразовать его в целое число.

Смежные вопросы