如何在 Python 3.4 中获取字符在字母表中的位置?

How to get character position in alphabet in Python 3.4?

我需要知道文本中第 n 个字符的字母表位置,我阅读了 answer of this question 但它不适用于我的 Python 3.4


我的程序

# -*- coding: utf-8 -*-
"""
Created on Fri Apr 22 12:24:15 2016

@author: Asus
"""

import string

message='bonjour'
string.lowercase.index('message[2]')

它不适用于 ascii_lowercase 而不是小写。


错误信息

runfile('C:/Users/Asus/Desktop/Perso/WinPython-64bit-3.4.3.4/python-3.4.3.amd64/Scripts/ESSAI.py', wdir='C:/Users/Asus/Desktop/Perso/WinPython-64bit-3.4.3.4/python-3.4.3.amd64/Scripts') Traceback (most recent call last):

File "", line 1, in runfile('C:/Users/Asus/Desktop/Perso/WinPython-64bit-3.4.3.4/python-3.4.3.amd64/Scripts/ESSAI.py', wdir='C:/Users/Asus/Desktop/Perso/WinPython-64bit-3.4.3.4/python-3.4.3.amd64/Scripts')

File "C:\Users\Asus\Desktop\Perso\WinPython-64bit-3.4.3.4\python-3.4.3.amd64\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 685, in runfile execfile(filename, namespace)

File "C:\Users\Asus\Desktop\Perso\WinPython-64bit-3.4.3.4\python-3.4.3.amd64\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 85, in execfile exec(compile(open(filename, 'rb').read(), filename, 'exec'), namespace)

File "C:/Users/Asus/Desktop/Perso/WinPython-64bit-3.4.3.4/python-3.4.3.amd64/Scripts/ESSAI.py", line 11, in string.lowercase.index('message2')

AttributeError: 'module' object has no attribute 'lowercase'

import string
message='bonjour'

print(string.ascii_lowercase.index(message[2]))

o/p

13

这对您有用,删除更改索引中的 '

当您输入 '' 时,它将被视为一个字符串。

您可能正在拍摄

string.ascii_lowercase.index(message[2])

哪个 returns 13. 你错过了 ascii_.

这会起作用(只要消息是小写的)但涉及对字母表的线性搜索以及模块的导入。

相反,只需使用

ord(message[2]) - ord('a')

此外,您可以使用

ord(message[2].lower()) - ord('a')

如果 message 中的某些字母为大写,您希望它能正常工作。

如果你想要例如a 的秩为 1 而不是 0,使用

1 + ord(message[2].lower()) - ord('a')