2

我正在尝试将整数列表打印为 Python 中的字符,但是当我尝试打印它时,前几个值丢失了,

这是正在发生的事情,

S = [55, 58, 5, 13, 14, 12, 22, 20, 70, 83, 90, 69, 84, 91, 80, 91]
# Now create an empty String,
D = ""
for i in S:
    D += chr(i)

D = ', '.join(map(str, D))
print(D)

最终的输出是,

, ♫, ♀, ▬, ¶, F, S, Z, E, T, [, P, [

显然, 和的chr55 , 58, 513被打印出来

这是未打印的值,

7:♣

chr13可能是空格或回车键。这只是我的猜测,因为当我打印时chr(13),什么都没有出现。但是为什么它也删除了前三个值。?

但是,如果我应用这个条件,

if i == 13:
    i = i-1

代码打印所有值,

7, :, ♣, ♀, ♫, ♀, ▬, ¶, F, S, Z, E, T, [, P, [
4

1 回答 1

8

Ascii 13 是回车(\r,回车键)。就像在 type writer 中一样,它将光标返回到行首,但它不会创建新行(\n),因此当您打印某些内容时,它会覆盖之前该行中的内容。看这个:

for i in range(10):
    print("\r%d" % i, end="")
    sleep(1)

额外信息:在基于 Unix 的系统上,\n意味着回车和换行,但在 Windows 系统上,您应该明确指定换行(\n)和回车(\r)。这就是为什么在基于 Unix 的系统上创建的文本文件在 Windows 上看起来像一长串连续的行。

于 2013-10-20T14:34:39.520 回答