我正在参加比赛,但不知道如何让python接受输入。这是一个典型的example。该站点提供了如何获取输入的示例,但这些是使用C和Java(click here)。请帮我弄清楚如何让python在这种情况下接受输入。
答案 0 :(得分: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
正如提到的另一个答案,如果输入是浮点数,这将抛出错误。
Python 2.x中还有另一个函数input
。但是,在这个版本的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
查看详情here 此方法适用于Python 3.x和2.x两个版本。
希望这有帮助!
答案 1 :(得分:2)
答案 2 :(得分:1)
注意: input
容易出现安全问题,因此请改用raw_input
。
例如:
inputString = raw_input()
这将读取输入行并将其存储在inputString
中。如果您想要int
,
inputInt = int(raw_input())
答案 3 :(得分:1)
为用户输入输入的最佳方法是使用raw_input
,这将把用户输入作为字符串。让我演示一下:
>>> var = raw_input("Enter")
Enter>? happy
>>> var
'happy'
注意happy-quote上的引号,这表示一个字符串。您可能还会注意到input
,是的可以用于获取用户输入,但这里有一个例子,这是一个坏主意:
>>> a = 2
>>> input("Enter")
Enter>? a+1
3
在这里,input
实际上已经评估了,因为我们已经声明了a
,a + 1 == 3
,我们在控制台会话中看到它作为输出。 此以后会成为一个安全问题(您不希望用户搞乱您的变量),因此对于用户输入,raw_input
是最佳选择。
由于您从string
获得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