如何查找用户输入字符串中所有字母的索引

时间:2016-02-19 22:10:36

标签: python

这是作业: 编写一个从用户那里获取单个单词的程序。对于单词中的每个字母,在字符串'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'中打印该字母的索引(例如,'A'将打印0,'z'将打印51)。在一行上打印所有索引,用空格分隔。

alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'

word = input('Type a word: ')

for ind in word:
    answer = ind.index(alphabet[0,-1])
    print(answer)

我的代码无法运行。它说“TypeError:字符串索引必须是整数”。 0和-1都是整数,它们表示给定字符串的第一个和最后一个位置。我不明白为什么这不能正常运行。代码应该在位置0处取字母表,看到单词中没有匹配的值,然后移动到下一个,直到它到达键入字符串中的第一个字符的位置。然后它应该打印出这个数字,并继续前进。我做错了什么?

3 个答案:

答案 0 :(得分:1)

你以错误的方式致电index。你需要交换参数:

answer = alphabet.index(ind)

答案 1 :(得分:1)

我认为你的意思是遵循这样的模式。从输入单词中获取每个字符,并在字符出现的字母表中查找索引。

IVXLCDM

您可以使用列表理解进一步简化

answer = []
for char in word:
    answer += [alphabet.index(char)]

答案 2 :(得分:0)

或者您可以使用ord()函数

来使用ASCII代码
word = input("word:")
for i in range(len(word)):
    print(ord(word[i:i+1]), end="")

这将为您提供字符串的数字输出,而不仅限于字母

相关问题