在python中将整数放入列表

在python中将整数放入列表,python,string,list,char,ord,Python,String,List,Char,Ord,我正在创建一个使用凯撒密码对消息进行编码和解码的程序。到目前为止,我正在做基础工作,我正在尝试获取用户给我的字符列表,并使用ord创建一个整数列表……到目前为止,我遇到的所有问题都是将收到的整数返回到列表中 import random encode_decode = input("Do you want to encode, or decode? (e/d)") shift_amount = input("Please enter the shift amount for your mess

我正在创建一个使用凯撒密码对消息进行编码和解码的程序。到目前为止,我正在做基础工作,我正在尝试获取用户给我的字符列表,并使用ord创建一个整数列表……到目前为止,我遇到的所有问题都是将收到的整数返回到列表中

import random

encode_decode = input("Do you want to encode, or decode? (e/d)")

shift_amount = input("Please enter the shift amount for your message")

if encode_decode == "e" or encode_decode == "E":
    user_words_unrefined = input("Enter your message to encode!")
elif encode_decode == "d" or encode_decode == "D":
    user_words_unrefined = input("Enter your message to decode!")

user_words_refined = list(user_words_unrefined)

Alphabet = [chr(i) for i in range(ord('a'), ord('z') + 1)]

Counter = 0
for i in range(len(user_words_refined)):
    user_words_numbers = (ord(user_words_refined[Counter]))
    user_numbers_list = [user_words_numbers]
    print(user_numbers_list)
    Counter += 1
输入(“你好,聚会人员!”) 输出 它用方括号把它们分开打印出来…有什么想法吗

[72]
[101]
[108]
[108]
[111]
[44]
[32]
[80]
[97]
[114]
[116]
[121]
[32]
[112]
[101]
[111]
[112]
[108]
[101]

您可以使用列表理解,而不是使用覆盖整个输入字符串长度的for循环

user_numbers_list = [ord(letter) for letter in user_words_refined]

这应该能帮你解决问题。请参阅代码中的注释。如有需要,我将乐意提供进一步的解释

user_numbers_list = []    #initialise the list
Counter = 0
for i in range(len(user_words_refined)):
    user_words_numbers = (ord(user_words_refined[Counter]))
    user_numbers_list.append(user_words_numbers)     #add to the end of the list
    print(user_numbers_list)
    Counter += 1

最好的办法实际上是列表理解。。。请参见Jordan Lewis的答案,了解更简洁的方法

将最后一部分改为

user_numbers_list = []
Counter = 0
for i in range(len(user_words_refined)):
    user_words_numbers = (ord(user_words_refined[Counter]))
    user_numbers_list.append(user_words_numbers)
    print(user_numbers_list)
    Counter += 1

也可以考虑直接通过UsReWord细化,如

for word in user_words_refined:
    user_words_numbers = ord(word)
    user_numbers_list.append(user_words_numbers)
    print(user_numbers_list)

作为旁注,而不是

encode_decode = input("Do you want to encode, or decode? (e/d)")
你可以用

encode_decode = input("Do you want to encode, or decode? (e/d)").lower()

因此,您不必在if语句中使用太多的

您在
用户编号列表=[user\u words\u numbers]
行的每次迭代中都会创建一个新列表。您想使用
append
方法将
用户单词\u数字添加到列表中。只需一个旁白-
字母表
在写入
Alphabet=[ord(c)表示字符串中的c。ascii\U小写]