在Python中用户输入后如何避免换行?

时间:2015-05-20 15:35:44

标签: python input newline

如何更改以下代码并删除不必要的新行?

#"Please guess a number!"
choice = input ("Is it ")
print ("?")
  

是10

     

所以结果看起来像

  

是10吗?

6 个答案:

答案 0 :(得分:2)

你的意思是那样的吗?

choice = input ("enter somthing...")
print ("Is it "+str(choice)+"?")

答案 1 :(得分:2)

To"删除"在您的代码片段中的换行符中,您需要发送光标控制命令以将光标移回上一行。任何具体的解决方案都取决于您使用的终端。严格来说,上面的示例中没有不必要的换行符。用户提供了10行之后的换行符,而不是Python。我想您可以尝试重写输入处理器,以便用户输入不会像getpass.getpass()那样回显。

答案 2 :(得分:1)

如果有人在寻找解决方案,我发现了单行:

print('Is it ' + input('Please guess a number: ') + '?')
  • 首先,请求上述行用户输入为

    Please guess a number:
    
  • 然后用户输入值

    Please guess a number: 10
    
  • 输入确认后(按Enter键),下一行显示为

    Is it 10?
    

答案 3 :(得分:0)

如果你需要它比上面那个更长,你可以把它拖出来。

选择=输入("数字:") 回答="是%s?" % 选择 打印(回答)

我喜欢Shohams,更喜欢pythonic imho

答案 4 :(得分:0)

与此问题中接受的答案非常相似:remove last STDOUT line in Python

但是这里是根据您的解决方案量身定制的。不可否认的是,对一个更好的方式感兴趣!

choice = input ("Is it ")
CURSOR_UP_ONE = '\x1b[1A'
ERASE_LINE = '\x1b[2K'
print CURSOR_UP_ONE + ERASE_LINE + 'Is it ' + str(choice) + '?'

答案 5 :(得分:-1)

我做得很深,你不能。因为如果程序是"选择=输入("是它")",你必须到输入的那一端,该行必须是新线。你可以改变快递。 选择=输入("请输入数字:") 打印"它是" + str(选择)+" ?"