2016-01-06 53 views
1

我学编码开始的位置,我开始与Pycharm 5.0.2和Python 3.5.1。的Python 3.5.1输入+插入符号/光标

即使如此,我有点不好意思问这个问题,感觉它应该是显而易见的。

name = input("What is your name? ") 

我在运行时如何确保焦点位于输入字段?

换句话说,当我运行它,我怎么做,使所有用户需要做的就是输入自己的名字,然后按Enter,他们并不需要使用鼠标将光标定位在正确的地方。

+1

你不需要做任何事情。大多数用户不会在PyCharm中运行脚本,而是在终端窗口中运行脚本。如果程序没有为你移动光标,你不能在终端窗口中移动光标。 – kindall

回答

1

简单的用户I/O,如input()print(),使用文本终端(具体细节取决于您所在的平台)。

虽然用户可以运行一个图形桌面,由Python运行时使用的一个终端窗口。在称为控制台的Microsoft Windows上,在像Linux这样的终端仿真器(如xterm)的操作系统上。

这些终端窗口就像打字机一样,在(通常)光标在print()完成时自动提前,或由input()指定的提示。

您可以看到此效果,请注意,在提示"What is your name? "中的?之后放置了一个空格。如果你没有做到这一点,那么光标将难以对付?

它可以控制使用包像curses光标,但与简单的文本I/O没有必要。通常如果需要这种类型的控制,那么将使用完整的GUI软件包,如Tk或PyQt。

+0

让我举另一个例子。 “nameSelf =输入(” 你叫什么名字? “) 打印(nameSelf) nameFriend =输入(” 什么是你的朋友的名字吗? “) 打印(nameFriend)” 如果我运行此代码,我得到这个输出: “你叫什么名字?Penny Penny 你的朋友的名字是什么?” 插入符号在最后一行的开头。换句话说,当处理第二次输入呼叫时,插入符号出现在文本问题之前,而不是之后。 – Pollik

+0

@Polik:对我来说工作得很好,而且任何地方都没有克拉'^'。你如何运行你的程序?如果你使用的话,这可能是PyCharm的一个副作用。我建议你测试一下,因为你的用户会运行它。一种可能是你的环境对stderr做了一件奇怪的事情。 'input()'提示符写入stderr,'print()'写入stdout。 – cdarke

+0

Dang ....插入符号有多个含义,现在我意识到了。 我的意思是插入符号作为文本插入点(这可能是形容它的安全方式。) – Pollik

相关问题