我正在参加比赛,但不知道如何让 python 接受输入。这是一个典型的例子。该站点给出了如何获取输入的示例,但这些示例使用的是 C 和 Java(单击此处)。请帮我弄清楚如何让python在这种情况下接受输入。
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.argv
。sys.argv[0]
是第一个参数,sys.argv[1]
是第二个参数,依此类推。
例子:
import sys
my_input = sys.argv[0]
#do something with my_input
请在此处查看详细信息 此方法适用于 Python 3.x 和 2.x 两个版本。
希望这可以帮助!
其中一种方法是: http ://docs.python.org/2/library/functions.html#raw_input
对于更高级的东西:http: //docs.python.org/2/library/cmd.html
为用户获取输入的最佳方式是使用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
是最佳选择。
既然你得到了string
from 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