Skip to main content
 首页 » 编程设计

Python 字符串赋值问题!

2025年05月04日26tuyile006

所以我是 Python 的新手,但我完全不知道为什么在我进行解析调用后这个强大的 oldUser 会更改为当前用户。任何帮助将不胜感激。

while a < 20: 
    f = urllib.urlopen("SITE") 
    a = a+1 
 
    for i, line in enumerate(f): 
        if i == 187: 
            print line 
 
            myparser.parse(line) 
            if fCheck == 1: 
                result  = oldUser[0] is oldUser[1] 
                print oldUser[0] 
                print oldUser[1] 
            else: 
                result = user is oldUser 
 
            fCheck = 1 
            print result 
 
            user = myparser.get_descriptions(firstCheck) 
 
            firstCheck = 1 
            print user 
 
            if result: 
                print "SAME" 
                array[index+1] = array[index+1] +0 
            else: 
                oldUser = user 
 
        elif i > 200: 
            break 
        myparser.reset() 

我不明白为什么 result 也不起作用...我打印出两个值,当它们相同时它告诉我它们不相等...另外,为什么 myparser.parse(line ) 将 oldUser 变成大小为 2 的数组?谢谢!

** 这是 myparse 的定义...

class MyParser(sgmllib.SGMLParser): 
"A simple parser class." 
 
def parse(self, s): 
    "Parse the given string 's'." 
    self.feed(s) 
    self.close() 
 
def __init__(self, verbose=0): 
    "Initialise an object, passing 'verbose' to the superclass." 
 
    sgmllib.SGMLParser.__init__(self, verbose) 
    self.divs = [] 
    self.descriptions = [] 
    self.inside_div_element = 0 
 
def start_div(self, attributes): 
    "Process a hyperlink and its 'attributes'." 
 
    for name, value in attributes: 
        if name == "id": 
            self.divs.append(value) 
            self.inside_div_element = 1 
 
def end_div(self): 
    "Record the end of a hyperlink." 
 
    self.inside_div_element = 0 
 
def handle_data(self, data): 
    "Handle the textual 'data'." 
 
    if self.inside_div_element: 
        self.descriptions.append(data) 
 
 
def get_div(self): 
    "Return the list of hyperlinks." 
 
    return self.divs 
 
def get_descriptions(self, check): 
    "Return a list of descriptions." 
if check == 1: 
    self.descriptions.pop(0) 
    return self.descriptions 

请您参考如下方法:

不要将字符串与 is 进行比较。这会检查它们是否是同一个对象,而不是同一字符串的两个副本。见:

>>> string = raw_input() 
hello 
>>> string is 'hello' 
False 
>>> string == 'hello' 
True 

此外,myparser 的定义也很有用。