简体   繁体   中英

Why does the following code not output the corresponding letters correctly?

Why does the following code not output the corresponding letters correctly?

It outputs 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))

chr(3) returns the character whose ASCII code is 3 (which is '\x03').
To convert number to string (int-str) You have to do str() not chr()

So do like this:

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))

Or this if you want to do chr() (try to guess what the results are)

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))

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM