Python中如何在循环里打印数字对应的ASCII字符?
解决Python中打印数字对应ASCII字符的问题
我来帮你搞定这个问题!你现在的问题出在字符串转义和格式化的时机不对,咱们一步步拆解:
为什么你的代码没达到预期?
你写的代码:
for i in range(100, 150): b = "\%d" %i print(b)
这里的\%是把百分号转义成了字面量的%,所以格式化后得到的是\100、\101这类字符串——Python只会在解析字符串字面量的时候处理转义序列,而运行时拼接出来的\和数字并不会被当作转义序列解析,自然就输出了字面内容。
正确的实现方法
这里有几种简单直接的方式,都能帮你打印数字对应的ASCII字符:
方法1:使用内置函数chr()
这是最直观的方式,chr()函数专门用来把整数(Unicode码点,ASCII是它的子集)转换成对应的字符:
for i in range(100, 150): print(chr(i))
运行这段代码,就能直接输出d、e、f……这些ASCII字符了。
方法2:使用格式化字符%c
如果你习惯用格式化操作符,也可以用%c格式符,它会自动把整数转换成对应的字符:
for i in range(100, 150): char = "%c" % i print(char)
方法3:使用f-string的格式说明符(Python 3.6+)
对于Python 3.6及以上版本,用f-string会更简洁,加上:c格式说明符就能实现转换:
for i in range(100, 150): print(f"{i:c}")
这些方法都能完美实现你想要的效果,把100-150之间的整数转换成对应的ASCII字符输出。
内容的提问来源于stack exchange,提问作者user12241444
相关产品推荐
相关产品推荐

