我试图从另一个print语句中删除我的print语句中打印出的额外字符。
这是我的代码的样子:
print(addedlist) #addedlist = [9,5,1989,1,2,3,4,5,6,7,8,9]
for x in range(0, len(addedlist)):
print('%d->'%addedlist[x],end="")
print('\n')
这个输出看起来像这样:
[9, 5, 1989, 1, 2, 3, 4, 5, 6, 7, 8, 9]
9->5->1989->1->2->3->4->5->6->7->8->9->
我想删除最后的->
字符。我试过做:
print(addedlist) #addedlist = [9,5,1989,1,2,3,4,5,6,7,8,9]
for x in range(0, len(addedlist)):
print('%d->'%addedlist[x],end="")
print('\b\b\n')
但它不起作用。
我将如何实现这一目标?
编辑:
只是一些澄清,我知道我可以改变我原来的打印声明,以更正确地打印它,以避免尾随->
...我正在解决如何删除尾随' - >'这一旦错误已经完成
我注意到你想玩'回车'命令。首先,你需要学习'\b'
(将活动位置移动到前一个位置)和'\r'
(将活动位置移动到行的起点)适用于当前活动行。
我认为你正在研究命令行解释器;您明确按Enter键进入下一行。
在命令行解释器上使用;
如下:
>>> print("abb", end=""); print("\b\bcc")
acc
>>> print("a->", end=""); print("\b\b ")
>>> a
如果您使用的是某些脚本,那么您的代码应该可以运行,请参阅
Upload$ cat s.py
print ("abcd->", end="")
print ("\b\b ")
Upload$ python3.2 s.py
abcd # notice -> is removed
但这没有太大用处,正确的方法是Aशwini चhaudhary在他的answer中所展示的。
编辑:我发现你在代码中犯了错误
print('%d->' % addedlist[x], end="")
print('\b\b\n')
你使用'\b'
将活动位置移动到前一个位置,但你没有覆盖"->"
,你只输出将游标移到下一行的'\n'
,你应该纠正你的代码如下。
print('%d->' % addedlist[x], end="")
print('\b\b \n')
# ^^^^ /b then overwrite with spaces
在Linux shell上运行$ python scriptname.py
(对于命令行Python的解释器,你可以使用like code I written,它只是玩,使用str.join或在sep
中使用print()
参数)。
使用str.join
:
>>> s = [9,5,1989,1,2,3,4,5,6,7,8,9]
>>> print ('->'.join(map(str, s)))
9->5->1989->1->2->3->4->5->6->7->8->9
或者更好的print()
与sep
作为'->'
:
>>> print(*s, sep='->')
9->5->1989->1->2->3->4->5->6->7->8->9