【问题标题】:Integer to letters with a loop带循环的整数到字母
【发布时间】:2018-01-16 19:32:45
【问题描述】:

我正在尝试在 python 上创建一个程序,它将采用 3 个整数并使用它们的 ASCII 将它们转换为字母,但我不确定这个程序有什么问题。你能帮帮我吗?

num = []
letter = []
x = 0
numx = 0
for x in range(0,3):
    numx = int(input('Enter an integer'))
    num.append(numx)
    letter.append(str(chr(num[x]))

print(letter)

【问题讨论】:

  • 好吧,letter.append(str(chr(num[x])) 有不平衡的括号
  • 那么,它应该做什么?
  • 而且,chr 也已经给了你一个字符串,所以你的str 是多余的。
  • @MarcusMüller 它打印 '\x01' 而不是一个字母
  • “谢谢你,它现在已修复”编辑在这里通常不受欢迎。要么发布您自己的答案(非常鼓励您这样做!)并接受,或者接受解决您的问题的答案。或者,只有当您遇到与您的问题无关的基本错误时,关闭/删除您自己的问题才有意义。这是一大步,因为它使发布答案的人的工作无效。

标签: python


【解决方案1】:

我认为您的问题只是循环的第三行中的三个开放括号只有两个闭合括号。进行更改,您的代码似乎对我有用。

此外,由于您是在循环内执行追加操作,因此没有理由直接使用 num[x] 而不是 numx。除非您将它用于其他用途,否则您可以完全摆脱 num。而且您无需致电str

【讨论】:

  • 这感觉更像是对 cme​​ts 的评论/收集,而不是完整的答案。
  • 如果这篇文章的内容使有问题的代码工作,这怎么能不是答案?
【解决方案2】:

要将 ASCII 数字转换为字符串,您可以执行以下操作:

letters = []

for x in range(0,3):
    numx = int(input('Enter an integer: '))
    letters.append(str(chr(numx)))

print(''.join(letters))

例如:

Enter an integer: 65
Enter an integer: 66
Enter an integer: 67
ABC

letters 是转换为字母的数字列表,join() 用于将它们连接在一起(在它们之间不添加任何内容)。

【讨论】:

    猜你喜欢
    • 2018-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-08
    • 2022-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多