我对python有点新意,无法弄清楚为什么这不起作用。 我有一个类似的变量:
[u'\n Data I want ']
但我也有简单的变量:
[u' more Data I want ']
我通过循环运行变量,但我需要去除数据周围的所有额外内容。我创建了一个处理这个问题的函数,但我不确定它为什么不起作用(我不确定,但我怀疑\ n是一个特殊字符)
def stripName(name):
name = str(name)
if name.startswith( "\n" ):
print "starts with new line"
name = name[5:-2]
else:
print "does not start with new line"
name = name[3:-2]
return name
问题是“如果name.startswith(”\ n“)”永远不会匹配..我看过其他的例子,我想我正在按原样这样做。我甚至试过if name.startswith( "\n" ) == 'True':
,但这也没有用。
提前感谢您提供的任何见解。
答案 0 :(得分:4)
怎么样:
def stripName(name):
return name[0].strip()
答案 1 :(得分:3)
我认为您正在传递list
个实例,然后使用str
(在name=str(name)
中)将其转换为字符串。请改为name=name[0]
。
此外,代码看起来格式不正确。 def
后面的行应缩进一级。
另一件事,startswith
不是命令。这是一个方法。请直截了当地说出你的术语,否则你最终会变得非常困惑。像Python这样的编程语言没有任何“命令”。相反,代码由语句和表达式组成,包括方法调用。
答案 2 :(得分:1)
如果名称为[u'\n data ']
,则str(name)
包含方括号。你应该写
name = name[0]