Python 的 startswith 方法
我刚接触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
问题是“if name.startswith( "\n" )”这个条件从来没有匹配成功……我看过其他的例子,觉得我做的和他们一样。我甚至试过if name.startswith( "\n" ) == 'True':
,但那也不行。
谢谢大家提前给的任何建议。
3 个回答
1
如果名字是 [u'\n data ']
,那么用 str(name)
转换后会包含方括号。你应该这样写:
name = name[0]
3
我觉得你传入的是一个 list
(列表)实例,然后用 str
把它转换成字符串(在 name=str(name)
这一行)。你可以试试用 name=name[0]
来代替。
另外,代码的格式看起来不太对。跟在 def
后面的行应该缩进一个层级。
还有一点,startswith
不是一个命令。它是一个 方法。请搞清楚这些术语,不然你会很容易搞混。像 Python 这样的编程语言没有“命令”。相反,代码是由语句和表达式组成的,包括方法调用。
5
这样怎么样:
def stripName(name):
return name[0].strip()
?