【问题标题】:Why does the following code not output the corresponding letters correctly?为什么下面的代码没有正确输出对应的字母?
【发布时间】:2020-12-06 13:05:24
【问题描述】:

为什么下面的代码没有正确输出对应的字母?

它输出number to letter is['\x03', '\x03']

final_numbers = [3, 3]
final_letters = []

for i in range(len(final_numbers)):
    print(i)
    number_to_letter=chr(final_numbers[i])
    final_letters.append(number_to_letter)

print ("number to letter is" + str(final_letters))

【问题讨论】:

  • 你希望它输出什么?
  • 你可能打算使用str(final_numbers[i])chr(value)返回ASCII码为value的字符。

标签: python chr ord


【解决方案1】:

chr(3) 返回 ASCII 码为 3 的字符(即 '\x03')。
将数字转换为字符串 (int-str) 你必须做str() 而不是chr()

所以这样做:

final_numbers = [3, 3]
final_letters = []

for i in range(len(final_numbers)):
    print(i)
    number_to_letter=str(final_numbers[i])
    final_letters.append(number_to_letter)

print ("number to letter is" + str(final_letters))

或者如果你想这样做chr()(尝试猜测结果是什么)

final_numbers = [115, 116, 97, 99, 107, 32, 111, 118, 101, 114, 102, 108, 111, 119]
final_letters = []

for i in range(len(final_numbers)):
    print(i)
    number_to_letter=chr(final_numbers[i])
    final_letters.append(number_to_letter)

print ("number to letter is" + str(final_letters))

【讨论】:

  • 啊,我没有意识到它是 ASCII - 我只是在 chr 中添加了 96。谢谢!!
  • @BenjaminMcDowell 如果解决了问题,请acceptit
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-05
  • 1970-01-01
  • 2023-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多