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

时间:2016-04-22 11:09:49

标签: python-3.x alphabet

我需要知道文本中第n个字符的字母位置,然后阅读answerthis 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')   回溯(最近一次调用最后一次):

     

文件“”,第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')

     

文件   “C:\用户\华硕\桌面\ Perso \ WinPython-64-3.4.3.4 \ python的-3.4.3.amd64 \ LIB \站点包\ spyderlib \部件\ externalshell \ sitecustomize.py”   第685行,在runfile中       execfile(filename,namespace)

     

文件   “C:\用户\华硕\桌面\ Perso \ WinPython-64-3.4.3.4 \ python的-3.4.3.amd64 \ LIB \站点包\ spyderlib \部件\ externalshell \ sitecustomize.py”   第85行,在execfile中       exec(compile(open(filename,'rb')。read(),filename,'e​​xec'),namespace(

)      

文件   “C:/Users/Asus/Desktop/Perso/WinPython-64bit-3.4.3.4/python-3.4.3.amd64/Scripts/ESSAI.py”   第11行,在       string.lowercase.index( '消息2')

     

AttributeError:'module'对象没有属性'lowercase'

2 个答案:

答案 0 :(得分:3)

你可能正在拍摄像

这样的东西
string.ascii_lowercase.index(message[2])

返回13.您遗失了ascii_

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

相反,只需使用

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

此外,您可以使用

ord(message[2].lower()) - ord('a')
如果message中的某些字母大写,则

。如果您希望此方法有效。

如果你想要,例如将a的等级设为1而不是0,使用

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

答案 1 :(得分:1)

import string
message='bonjour'

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

o / p

13

这将适合您,删除更改索引中的'

当您提供''时,它将被视为字符串。