无法在字符串中找到字符?

时间:2016-12-20 10:05:16

标签: python parsing beautifulsoup

我从不同的维基百科页面获取数据。首先,这些数据存储在本地位置(以python pickle的形式)。这是代码:

    k = '9–10000000'

    if '-' in k:
        print('Found')

' - ' if语句中的字符是从键盘输入的,而print语句没有显示任何内容。但是,如果我复制' - '从k值开始,它显示了所需的输出(即打印'找到')。我不知道这两者之间有什么不同 - ' - '字符。

这是最简单的例子,我可以在这里分享。有多个其他字符,显示相同的结果?

任何想法,为什么?????

2 个答案:

答案 0 :(得分:1)

可能是因为您输入的字符是" Hyphen"你k中的那个是" En dash" (不同的字符代码,但肉眼看起来都一样)

答案 1 :(得分:1)

尝试运行修改后的程序,你会看到两个字符与你的想法相反,不一样。

k = '9–10000000'  # first dash
print(ord('–'))   # printing first dash
print(ord('-'))   # printing second dash
if '-' in k:      # second dash
    print('Found')

其中ord()给出了UNICODE编码中char的数字表示。

打印

8211   
45     

8211代表EN-DASH

45代表HYPHEN-MINUS

如果您想了解更多内容,请查看此内容: http://www.fileformat.info/info/unicode/char/2013/index.htm http://www.fileformat.info/info/unicode/char/2d/index.htm