关于 Python 的一个问题

2019-02-26 12:15:23 +08:00
 chenqh
a='ÿþU\x00S\x00E\x00 \x00[\x00P\x00h\x00o\x00n\x00e\x00D\x00a\x00t\x00a\x00]\x00\n'
print(a)
index=a.find('PhoneData')

为什么 index==-1 呢?有点看不懂呀?
有人指点下吗?

1975 次点击
所在节点    Python
7 条回复
40huo
2019-02-26 12:18:49 +08:00
-1 就是没找到
ysc3839
2019-02-26 12:51:35 +08:00
你是对 find 有误解吗? find 寻找的是连续的整段字符串,中间不能包括别的字符的。
Vegetable
2019-02-26 13:43:09 +08:00
`\00`相当于 ascii 码的 NUL(null),空字符,虽然不可见但是他是存在的.
所以你的 PhoneData 之间有别的字符.和你找的不一样.
Vegetable
2019-02-26 13:46:40 +08:00
RyougiShiki
2019-02-26 14:03:07 +08:00
a=u'ÿþU\x00S\x00E\x00 \x00[\x00P\x00h\x00o\x00n\x00e\x00D\x00a\x00t\x00a\x00]\x00\n'
print(a) # ÿþUSE [PhoneData]
est
2019-02-26 14:09:46 +08:00
a='ÿþU\x00S\x00E\x00 \x00[\x00P\x00h\x00o\x00n\x00e\x00D\x00a\x00t\x00a\x00]\x00\n'
b=a.encode('latin1').decode('utf16', 'ignore')
b.find('PhoneData')
SleipniR
2019-02-26 14:13:04 +08:00
In [29]: u"\x00P\x00h\x00o\x00n\x00e\x00D\x00a\x00t\x00a\x00" == u"PhoneData"
Out[29]: False

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/538821

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX