如何在 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')
我需要知道文本中第 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')