Python中的if语句未按预期工作

-1 投票
2 回答
2288 浏览
提问于 2025-04-15 21:57

我正在一个网站上查找一个字符串,并检查这个字符串的位置是否在预期的位置。我知道这个字符串是从第182个字符开始的,如果我打印出temp,它会告诉我确实是182,但是if语句却说182不是182。

一些代码

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."

2 个回答

5

str.find 是一个函数,它返回的是一个整数,而不是字符串。在比较字符串和整数的时候,结果总是会是 False

3

我不是Python高手,但我来试试。

你可以这样做:

if (temp == 182)

为什么呢?可以看看SilentGhost的回答。这个问题跟数据类型有关。

撰写回答