在Python上覆盖输入行

在Python上覆盖输入行,python,Python,我想清除cammand上的输入行,并在输入选项后立即打印下一行 a = "apple" b = "banana" c = "cucumber" x = input("Enter your choice: ") print("You choose ", x) 所以不是 Enter your choice: a You choose apple 在我输入一封信后,它将提供我的这一行 Yo

我想清除cammand上的输入行,并在输入选项后立即打印下一行

a = "apple"
b = "banana"
c = "cucumber"
    
x = input("Enter your choice: ")
print("You choose ", x)
所以不是

Enter your choice: a
You choose apple
在我输入一封信后,它将提供我的这一行

You choose apple

我从另一篇文章中得到了这个解决方案,它包括使用ANSI转义码删除最后一行,因此它可能会根据您使用的终端而改变

a = "apple"
b = "banana"
c = "cucumber"

prompt = "Enter your choice: "
x = input(prompt)
print ('\033[1A' + "You choose " +  locals()[x]  + '\033[K')

“\033”是ANSI转义字符,“[1A”表示向上移动一行,“[K”擦除到此行的末尾。

您可以使用
局部变量
内置函数,甚至
if
语句。我将编写这两个语句,以便您决定要使用哪一个

如果
语句

a = "apple"
b = "banana"
c = "cucumber"

choice = input('Enter your choice: ')
if choice == 'a'.lower():
    print(f'You choose {a}')
elif choice == 'b'.lower():
    print(f'You choose {b}')
elif choice == 'c'.lower():
    print(f'You choose {c}')
局部变量
函数

a = "apple"
b = "banana"
c = "cucumber"

choice = input('Enter the choice: ')
print(f'You chose {locals()[choice]}')

玩得开心:)

您好,欢迎来到SO,您所说的
是什么意思?我想在输入一个选项后立即清除输入行并打印下一行
?您需要
if
语句吗?或者编辑帖子并告诉我们您想要得到什么。您好!谢谢您的关注,我不认为我需要if语句,我的意思是我需要nt删除命令行上的“输入您的选择:A”行,就像os.system(“cls”)一样,但只有最后一行会被删除。您好,谢谢您,尽管我不太熟悉ANSI转义字符的工作方式。我尝试了您的建议,得到了这个输出,输入您的选择:A[1AYou choose apple[K它打印了[1A]和[1A][k]并且没有覆盖最后一行,虽然我觉得这个建议可能有效,但顺便说一下,我使用了windows CMD。