接收字母、返回字母表中(从 0 开始)数字位置的 Python 函数

标签 python function python-3.x numerical alphabet

我正在尝试创建一个 Python 函数,它接收一个字母(一个只有一个字母字符的字符串)并返回该字母在字母表中从 0 开始的数字位置。应该是不区分大小写的,我不能用import。

所以输入“a”应该返回

0

输入“A”也应该返回

0

输入“O”应该返回

14

等等。

我注意到了this question但是最上面的答案使用 import 而第二个答案对我来说没有任何意义/不起作用。我试着像这样应用第二个答案:

letter = input("enter a letter")

def alphabet_position(letter):

    return ord(letter) - 97

print((alphabet_position)(letter))

但是我得到了一个类型错误:

TypeError: ord() expected a character, but string of length 2 found

就像我链接的问题中的提问者一样,我也试图将字符“x”发送回字母表中的步数,但为了做到这一点,我需要先创建这个辅助函数。

我在想一定有一种方法可以将字母存储在两个单独的列表中,一个小写字母和一个大写字母,然后查看用户输入的字符串是否与该列表中的一项相匹配?然后一旦我们找到匹配项,我们就返回它的(基于 0 的)数字位置?

letter = input("enter a letter")

def alphabet_position(letter):

    position = 0
    #letter_position = index value that matches input
    lower_case_list ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x',
 'y', 'z'] 

    upper_case_list ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
 'Y','Z']              

#if letter is in lower_case_list, return it's 0-based numerical position.
#else, if letter is in upper_case_list, return it's 0-based numerical position.
#else, print("Enter a valid letter")

return letter_position

如果您有任何建议,请提供帮助。谢谢。

最佳答案

使用 .lower() 方法从大写或小写转换为特定的小写可能更简单,并使用内置的字母列表 (string.ascii_lowercase)。您可以使用 .index() 方法找到列表元素的索引。

import string

letter = input('enter a letter: ')

def alphabet_position(letter):
    letter = letter.lower()
    return list(string.ascii_lowercase).index(letter)


print(alphabet_position(letter))

当您调用 alphabet_position 时,它需要一个参数,因此您需要执行 func_name(arg) 格式。

关于接收字母、返回字母表中(从 0 开始)数字位置的 Python 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41007646/

相关文章:

python - 如何在 mongoengine 中使用 python 对 dict 中包含的嵌套字典或数组执行此类过滤器查询?

python - 循环行并将数据打印到新数据框

python - 无法合并两个已排序的单链表,因为 "type object ' _Node' 没有属性 '_element' "

python - 计算字典中 get 方法返回第二个选项的次数

python - 使用 python 访问 ECMWF 数据库时出错

python - 如何在 python ssmtp 与 smtplib 中发送邮件

python - 函数名作为另一个函数的输入?

cygwin 中的 bash 函数语法错误

Javascript 在动态调用其他 js 文件中的另一个类时出现问题

python-3.x - 当我尝试重新创建来自 Hands On Machine Learning with Sci-Kit Learn & Tensorflow 的住房数据集时,该数据集不显示