1

我正在参加比赛,但不知道如何让 python 接受输入。这是一个典型的例子。该站点给出了如何获取输入的示例,但这些示例使用的是 C 和 Java(单击此处)。请帮我弄清楚如何让python在这种情况下接受输入。

4

4 回答 4

4

有不止一种方法可以做到这一点。

接受解释器的输入

对于 Python 2.x,您可以使用以下raw_input()函数:

my_input = raw_input("Please enter an input: ")
#do something with my_input

请注意,输入始终是一个字符串。要检索数字,您可以使用内置int()函数:

my_input = int(raw_input("Please enter an input: "))
#do something with my_input

正如提到的另一个答案,如果输入是浮点数,这将引发错误。

input在 Python 2.x 中还有另一个函数. 然而,在这个版本的 Python 中,input评估输入,这是一个坏主意。不建议使用它。

但是,对于 Python 3.x,您可以input()毫无问题地使用该函数,因为它可以替代raw_input:

my_input = input("Please enter an input: ")
#do something with my_input

从命令行参数获取输入

在执行这样的脚本时,您还可以从命令行参数中检索输入:

$ python my_script.py arg1 arg2

参数将存储在列表中sys.argvsys.argv[0]是第一个参数,sys.argv[1]是第二个参数,依此类推。
例子:

import sys
my_input = sys.argv[0]
#do something with my_input

请在此处查看详细信息 此方法适用于 Python 3.x 和 2.x 两个版本。

希望这可以帮助!

于 2013-10-27T07:20:57.650 回答
2

其中一种方法是: http ://docs.python.org/2/library/functions.html#raw_input

对于更高级的东西:http: //docs.python.org/2/library/cmd.html

于 2013-10-27T06:53:17.287 回答
1

您可以使用inputraw_input函数。

注意: input容易出现安全问题,请raw_input改用。

例如:

inputString = raw_input()

这将读取输入行并将其存储在inputString. 如果你想要一个int

inputInt = int(raw_input())
于 2013-10-27T06:52:57.373 回答
1

为用户获取输入的最佳方式是使用raw_input,这会将用户输入作为字符串接收。让我演示一下:

>>> var = raw_input("Enter")
Enter>? happy
>>> var
'happy'

注意happy 上的引号,这表示一个字符串。您可能还会注意到 ,input和 yes用于接受用户输入,但这里有一个例子表明这是个坏主意:

>>> a = 2
>>> input("Enter")
Enter>? a+1
3

在这里,input实际上得到了评估,因为我们已经声明了a, a + 1 == 3,并且我们将其视为控制台会话中的输出。后来成为一个安全问题(您不希望用户弄乱您的变量),因此对于用户输入,raw_input是最佳选择。

既然你得到了stringfrom raw_input,你可以把它转换成你喜欢的任何东西,如果它可以转换的话,例如:

>>> var = raw_input("Enter")
Enter>? 122
>>> var = int(var)
>>> var
122

但是,浮点数不适用于int

>>> int('1.223')
Traceback (most recent call last):
  File "<console>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '1.223'

您将需要在float这里使用,然后它可以工作:

>>> float('1.223')
1.223
于 2013-10-27T06:58:21.863 回答