Python中的基本搜索和替换isn';t执行
我试图用Python编写一些东西,这将简单地从字符串输入中删除任何HTML标记。但由于某些原因,代码不会在我的主Python安装上执行(只是挂起),并在Udacity接口上被杀死 我哪里做错了Python中的基本搜索和替换isn';t执行,python,Python,我试图用Python编写一些东西,这将简单地从字符串输入中删除任何HTML标记。但由于某些原因,代码不会在我的主Python安装上执行(只是挂起),并在Udacity接口上被杀死 我哪里做错了 def remove_tags(sentence): list = [] state = 0 while state == 0: location1 = sentence.find('<') location2 = sentence.find(
def remove_tags(sentence):
list = []
state = 0
while state == 0:
location1 = sentence.find('<')
location2 = sentence.find('>',location1)
if location1 != -1:
chamber = sentence[location1:location2+1]
sentence.replace(chamber,'')
elif location1 == -1:
state = 1
return sentence.split()
return sentence.split()
print remove_tags('''<table cellpadding='3'>
<tr><td>Hello</td><td>World!</td></tr>
</table>''')
def删除标签(句子):
列表=[]
状态=0
当state==0时:
位置1=句子。查找(“”,位置1)
如果位置1!=-1:
分庭=句子[地点1:地点2+1]
句子.替换(第“”号分庭)
elif位置1==-1:
状态=1
返回句子split()
返回句子split()
打印删除标签(“”)
地狱世界!
''')
您正在执行替换,但没有将结果存储在任何位置,因此结果将丢失。我想你的意思是这样的:
sentence = sentence.replace(chamber,'')
def remove_tags(html):
while '<' in html:
start = html.find('<')
end = html.find('>', start)
tag = html[start:end+1]
html = html.replace(tag, '', 1)
return html.split()
而不是:
sentence.replace(chamber,'')
字符串在Python中是不可变的,因此不能“就地”修改。始终会创建一个新字符串,因此如果要保留该字符串,则必须将其指定给名称
如果
while
循环没有找到您正在执行替换,但没有将结果存储在任何位置,则该循环将仅退出(通过return
语句),因此它将丢失。我想你的意思是这样的:
sentence = sentence.replace(chamber,'')
def remove_tags(html):
while '<' in html:
start = html.find('<')
end = html.find('>', start)
tag = html[start:end+1]
html = html.replace(tag, '', 1)
return html.split()
而不是:
sentence.replace(chamber,'')
字符串在Python中是不可变的,因此不能“就地”修改。始终会创建一个新字符串,因此如果要保留该字符串,则必须将其指定给名称
如果while
循环未找到,则while
循环将仅退出(通过return
语句),要终止while
循环,需要包含一条更改状态值的语句
实际上,您正在等待没有“”,以便while
循环终止,您需要包含一条语句来更改状态的值
事实上,你在等待没有“对不起,我漏掉了一行内容,在添加到帖子中时会改变状态。”。遗憾的是,代码仍然没有产生结果:/选择一种控制结构--while
或内部return
,并坚持这样做。这种方式太让人困惑了(至少对于像我这样的傻瓜来说是如此)。对不起,我漏掉了一行内容,在添加到帖子中时会改变状态。遗憾的是,代码仍然没有产生结果:/选择一种控制结构--while
或内部return
,并坚持这样做。这种方式太令人困惑了(至少对于像我这样的傻瓜来说是如此)。