我需要知道文本中第n个字符的字母位置,然后阅读answer的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') 回溯(最近一次调用最后一次):
文件“”,第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,'exec'),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'
答案 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
这将适合您,删除更改索引中的'
。
当您提供''
时,它将被视为字符串。