我一直在尝试将python列表中的字母更改为类中项目的相应字母数字。我已经尝试了所有知道的方法,但仍然无法解决问题。如果有人可以回答这个问题,那将对我有很大帮助,谢谢
def main():
miriam = True
def letters():
a = 1
b = 2
c = 3
d = 4
e = 5
f = 6
g = 7
h = 8
i = 9
j = 10
k = 11
l = 12
m = 13
n = 14
o = 15
p = 16
q = 17
r = 18
s = 19
t = 20
u = 21
v = 22
w = 23
x = 24
y = 25
z = 26
A = 1
B = 2
C = 3
D = 4
E = 5
F = 6
G = 7
H = 8
I = 9
J = 10
K = 11
L = 12
M = 13
N = 14
O = 15
P = 16
Q = 17
R = 18
S = 19
T = 20
U = 21
V = 22
W = 23
X = 24
Y = 25
Z = 26
while miriam == True:
codeDeCode = input("would you like to code or decode? ")
if codeDeCode == "code":
code = input("enter the text you would like to code")
listedCode = list(code)
listedCodeAmount = len(listedCode)
print(listedCodeAmount)
for x in range(0, listedCodeAmount):
listedCode[x] = letters()
print(listedCode)
我从中得到的结果是
>>> main()
would you like to code or decode? code
enter the text you would like to codemiriam
6
[None, None, None, None, None, None]
would you like to code or decode?
我想得到这样的结果
[13, 9, 18, 9, 1, 13]
非常感谢有人对此提供的帮助,谢谢。
for x in range(0, listedCodeAmount):
listedCode[x] = letters()
这不是函数的工作方式。您的函数没有返回值,因此返回None
。您正在尝试将该函数视为列表或其他容器。您只需要在函数作用域中设置一堆变量,然后在完成时将它们放到地板上即可。
import string
miriam = True
def get_letter_dict():
return {val: idx for idx, val in enumerate(string.ascii_lowercase, 1)}
while miriam == True:
letter_dict = letters()
code_decode = input("would you like to code or decode? ")
if code_decode.lower() == "code":
code = input("enter the text you would like to code:\n") # makes it easier to read
listed_code= [letters[c] for c in code.lower()]
print(listed_code)
因此,我们要做的第一件事是导入string
模块,这将帮助我们制作字典。然后,将您的变量设置为,True
以便您以后可以退出程序。
接下来,我们创建了一个函数来获取字典。您当然可以手动执行此操作,但这要容易得多。我使用字典理解。注意我如何在函数中使用return
(在此处了解更多信息)。这样就可以将函数的结果保存到变量中。请注意,我曾经string.ascii_lowercase
建立过字典。这是一个包含所有小写字母形式az的字符串。使用键或比较字符串时,大小写很重要。请记住'm' != 'M'
。您可以在此处阅读有关枚举的信息
下面的一些代码应该看起来很熟悉,因此我将不再赘述。但是我确实改变了您建立列表的方式。我使用了列表理解,您可以在这里阅读有关列表的信息。
我还将变量的名称更改为建议的Python命名约定。变量likeThis
用其他语言命名,在Python中,我们like_this
改用变量命名。它更容易阅读。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句