Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中从打印输出中删除字符_Python_List_Python 3.x - Fatal编程技术网

如何在python中从打印输出中删除字符

如何在python中从打印输出中删除字符,python,list,python-3.x,Python,List,Python 3.x,我正在尝试从另一个打印语句中删除打印在打印语句中的额外字符 下面是我的代码的样子: 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-

我正在尝试从另一个打印语句中删除打印在打印语句中的额外字符

下面是我的代码的样子:

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')
但它不起作用

我将如何着手实现这一点

编辑:


只是澄清一下,我知道我可以更改原始的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
或者更好地使用
sep
作为
'->'
:

>>> print(*s, sep='->')
9->5->1989->1->2->3->4->5->6->7->8->9

我注意到您想要使用
回车
命令。首先,您需要了解当前活动行的
\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  
但这并没有多大用处,正确的方法正是他所展示的

编辑:我发现你的代码有错误

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解释器,您可以使用一些东西,只需播放、使用
str.join
或使用
print()
中的
sep
参数即可)

您将需要比打印命令更强大的功能。谢谢。。我知道如何更改打印语句以正确打印。。我有兴趣在打印错误后更正它done@sukhvir否一旦您在标准输出上打印,您就不能覆盖它(如果您不在库中工作)。所以,这里的答案就是,做你想做的,否则就学习ncurses模式。谢谢,伙计。看看您的命令行解释器代码,您将如何在我的for循环代码中实现它?非常感谢。。这有助于命令提示。。。为什么这个在pythonshell中不起作用呢???@sukhvir不,它在pythonshell中使用
如我所示。注意:在python解释器上,您显式输入以运行注释,该注释在输出时也给出换行符。@sukhvir在使用您的代码大约5分钟后,我可以在python的命令行解释器上为命令行拦截器编写一个将要运行的代码