2013-10-27 104 views
1

我正在參加一個比賽,但不知道如何讓python接受輸入。這是一個典型的example。該網站舉例說明了如何進行輸入,但那些正在使用C和Java(click here)。請幫我弄清楚如何讓Python在這種情況下進行輸入。如何在Python中輸入輸入

+0

[其中任何一個](http://ideone.com/Ia1Ru4)將在codechef上正常工作。 –

回答

1

您可以使用inputraw_input函數。

注意:input很容易出現安全問題,所以請使用raw_input代替。

例如:

inputString = raw_input() 

這將讀出的輸入線,並將其存儲在inputString。如果你想要一個int

inputInt = int(raw_input()) 
1

採取輸入的用戶的最佳方法是使用raw_input,這將用戶輸入作爲一個字符串。讓我來演示一下:

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

請注意關於happy的引號,這表示一個字符串。您可能還注意到,input,並且是這可以用於拍攝用戶輸入,但這裏是一個例子這是一個壞主意:

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

這裏,input實得評估,因爲我們已經宣佈a,a + 1 == 3,我們將其視爲控制檯會話中的輸出。 這個後來成爲一個安全問題(你不希望用戶搞亂你的變量),所以對於用戶輸入來說,raw_input是最好的選擇。

既然你從raw_input一個string,你可以把它轉換成任何你喜歡的,如果它可以轉換,例如:

>>> 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 
1

有多種方法可以做到這一點。

以輸入從intepreter

對於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的。

希望這會有所幫助!