我是一个完整的新手程序员,并且无法将用户输入的ASCII代码列表打印为字符列表:
ascii_code = [109, 121, 32, 110, 97, 109, 101, 32, 105, 115,
32, 106, 97, 109, 101, 115]
#ascii_code = input("Please input your ASCII code:")
character_list = list()
for x in ascii_code:
character_list.append(chr(x))
print (character_list)
['m', 'y', ' ', 'n', 'a', 'm', 'e', ' ', 'i', 's', ' ', 'j', 'a', 'm', 'e', 's']
正如您所看到的,程序在预定义ASCII列表时(在第一行代码中)但在我尝试运行输入时工作,例如:
-
ascii_code =输入("Please input your ASCII code:")
-
ascii_code = int(输入("Please input your ASCII code:"))
-
ascii_code = eval(输入("Please input your ASCII code:"))
我得到TypeError:需要一个整数(得到类型str)或TypeError:'int'对象不可迭代 .
任何帮助将非常感激!
1 回答
从
input()
得到的结果是元组(python 2,所以使用raw_input()
来获得正确的行为)或字符串(python 3) . 我'll assume you'使用Python 3或将切换到使用raw_input
因为Python 2中的input
只是不好的做法 .您从用户获得的结果是逗号分隔的字符串 . 您需要将该字符串分成几部分,您可以使用
.split(',')
:但是你会注意到列表中的数字是1)字符串,而不是整数,2)周围有空格 . 我们可以通过循环数字并使用
.strip()
删除空格来解决这个问题,并使用int()
将剥离的字符串转换为我们可以传递给chr()
的数字:...但是使用列表理解来执行此操作更具Pythonic:
所以你的最终代码最终将成为: