2012-06-17 59 views
2

有人可以用if語句和數組來幫助我。因此,例如我輸入0001排列"1"[3]。我試圖讓它打印"working"如果1鍵入[3]陣列。數組和if語句

此代碼應解釋更多:

original = raw_input("Type is your input? ") 
original_as_array = list(original) 
print original_as_array 
print original[3] 

if (original[3] == 1): 
    print "working" 

回答

5

這是因爲你與單個字符(類型str)比較的int。將您的if陳述更改爲:

if (original[3] == "1"): 
    print "working" 

它會起作用。

您輸入的密鑰由字符組成('0001'),所以您的比較必須考慮到這一點。

例如,

type(original[3]) 
str 

type(1) 
int 
+2

非常感謝!!!!! – codeX

4

首先,字符串數組已經這樣你就不會需要將它們轉換成列表。 在Python中,一個字符串不會等於一個整數,所以您應該將其與'1'進行比較。最後,if語句看起來沒有括號更好:d

>>> original = raw_input("Type is your input? ") 
Type is your input? 0001 
>>> if original[3] == '1': 
     print "working" 


working 
0

你的問題是,你正在檢查針對海峽,這將是虛假的int。看到這個互動會議:

>>> original = raw_input("Type is your input? ") 
Type is your input? 0001 
>>> original_as_array = list(original) 
>>> print original_as_array 
['0', '0', '0', '1'] 
>>> print original[3] 
1 
>>> if original[3] == 1: 
...  print "working" 
... 
>>> print type(original[3]) 
<type 'str'> 
>>> if original[3] == '1': 
...  print "working" 
... 
working 
>>>