Python 替换打印函数中的字符而不使用。替换
我是编程新手,有一个关于在Python中替换打印函数中的文本的问题 在我当前的代码中,对于倒计时,如果输入5,它将打印“5431GO”,我如何让它替换上一个字符?我以前做过,但我忘了怎么做,我想这与“\r”有关Python 替换打印函数中的字符而不使用。替换,python,python-3.x,string,replace,character,Python,Python 3.x,String,Replace,Character,我是编程新手,有一个关于在Python中替换打印函数中的文本的问题 在我当前的代码中,对于倒计时,如果输入5,它将打印“5431GO”,我如何让它替换上一个字符?我以前做过,但我忘了怎么做,我想这与“\r”有关 正如您所说,\r意味着它会将指针移动到行首,只需在您的打印语句中使用它,如下所示: 导入时间 倒计时时间=int(输入(“输入倒数开始的秒数:”) 当倒计时时间>=0时: 如果倒计时时间=0: 打印(“GO”) 打破 其他: 打印(倒计时,结束=“\r”) 倒计时时间-=1 时间。睡眠(
正如您所说,
\r
意味着它会将指针移动到行首,只需在您的打印
语句中使用它,如下所示:
导入时间
倒计时时间=int(输入(“输入倒数开始的秒数:”)
当倒计时时间>=0时:
如果倒计时时间=0:
打印(“GO”)
打破
其他:
打印(倒计时,结束=“\r”)
倒计时时间-=1
时间。睡眠(.5)
与您所说的完全一样,\r
意味着它会将指针移动到行首,只需在您的打印
语句中使用它,如下所示:
导入时间
倒计时时间=int(输入(“输入倒数开始的秒数:”)
当倒计时时间>=0时:
如果倒计时时间=0:
打印(“GO”)
打破
其他:
打印(倒计时,结束=“\r”)
倒计时时间-=1
时间。睡眠(.5)
我使用此函数在线更新百分比文本。只需调用update\u percentage
,而不是print
def update_percentage(row_string):
row_string = str(row_string)
# clear previous text
sys.stdout.write("\r")
sys.stdout.write(" " * len(row_string))
# reposition at the start of the row
sys.stdout.write("\r")
sys.stdout.write(row_string)
sys.stdout.flush()
我使用此函数以内联方式更新百分比文本。只需调用
update\u percentage
,而不是print
def update_percentage(row_string):
row_string = str(row_string)
# clear previous text
sys.stdout.write("\r")
sys.stdout.write(" " * len(row_string))
# reposition at the start of the row
sys.stdout.write("\r")
sys.stdout.write(row_string)
sys.stdout.flush()
是,
\r
是回车。它转到行首而不转到下一行。是的,\r
是回车。它会转到行的开头,而不会转到下一行。谢谢我的想法,但当我这样做时,直到时间结束,文本才会被打印出来,然后再打印出来,你知道为什么会这样吗?@KevinNisbet,嗯,不知道是什么问题,也许可以尝试在没有IDE的情况下运行它。它们有时会弄乱终端。可能需要将print语句设置为print(f“{countdown\u time}……”,end=“\r”)
,以便完全覆盖以前的数字,否则计数将从10变为90<代码>打印(str(倒计时)+“…”,end=“\r”)也可以。啊,是的,我用记事本运行它,它有点工作,我的新问题是,如果输入是“10”,它会用“10”的“1”替换“9”,我得到“90”:(KevnnISBET,如果它解决了你的问题,考虑选择它作为被接受的答案。谢谢我的想法,但是当我这样做的时候,没有文本被打印,直到时间过去,然后打印出来,你知道为什么会这样吗?”KvnnISBET MMM,不知道是什么问题,也许试着在没有IDE的情况下运行它。使用终端。可能希望打印语句为print(f“{countdown\u time}……”,end=“\r”)
,以便完全覆盖以前的数字,否则计数从10到90。print(str(countdown\u time)+“…”,end=“\r”)< /代码>也可以。啊,是的,我用记事本运行它,它工作了,我的新问题是现在如果输入是“10”,它用“10”的“1”代替“9”,而我得到“90”:(KevnnISBET,如果它解决了你的问题,考虑选择它作为被接受的答案。