2010-04-23 3 views
-1

Я ищу строку на веб-сайте и проверяю, находится ли местоположение этой строки в ожидаемом местоположении. Я знаю, что строка начинается с символа 182-й, и если я печатаю темп будет даже сказать мне, что это 182, однако, если оператор говорит 182 не 182.Оператор Python if не работает должным образом

Некоторый код

f = urllib.urlopen(link) 

#store page contents in 's' 
s = f.read() 
f.close() 
temp = s.find('lettersandnumbers') 

if (htmlsize == "197"): 
    #if ((s.find('lettersandnumbers')) == "182"): 
    if (temp=="182"): 
    print "Glorious" 
    doStuff() 
    else: 
    print "HTML not correct. Aborting." 
else: 
    print htmlsize 
    print "File size is incorrect. Aborting." 
+0

oh ... не могли бы вы отредактировать свой ответ, чтобы код был понятен? Я ничего не понимаю, но я вижу некоторые сравнения строк и строк (find возвращает int) – YuppieNetworking

+0

Nevermind ... уже ответил – YuppieNetworking

+2

Вам не нужны все круглые скобки - это не C. –

ответ

3

Im не питон гуру, но плохо взять выстрел

Попробуйте как этот

if (temp == 182) 

Почему? См. SilentGhost ответ. Он включает типы

+1

Вы также можете использовать тип (темп), чтобы узнать, какой тип он есть. Он должен возвращать , если это «182» и , если он равен 182. В качестве альтернативы вы можете использовать if (str (temp) == '182'), чтобы убедиться, что он сравнивает значения в виде строки. –

+1

@Greg: пока вы * можете * сделать это, зачем вы хотите это сделать? возвращаемое значение 'str.find' хорошо определено и понято, не нужно вводить больше сложностей – SilentGhost

+0

@Greg. Но все это показало бы, что вы не знаете, что происходит. –

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