2

if誰かがステートメントと配列で私を助けてくれませんか。たとえば0001、配列に入力する"1"と is[3]です。array に入力された"working"場合に印刷しようとしています。1[3]

このコードはそれをもっと説明するはずです:

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"
4

3 に答える 3

5

これは、 をint単一の文字 (type str) と比較しているためです。if-ステートメントを次のように変更します。

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

そしてそれはうまくいくでしょう。

キーからの入力は文字 ( '0001') で構成されているため、比較ではそれを考慮する必要があります。

例えば、

type(original[3])
str

type(1)
int
于 2012-06-17T13:31:06.877 に答える
4

まず、文字列はすでに配列であるため、リストに変換する必要はありません。Python では、文字列は整数と等しいと比較されないため、'1'代わりに比較する必要があります。最後に、if ステートメントは角かっこなしの方が見栄えがします :D

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


working
于 2012-06-17T13:32:09.993 に答える
0

あなたの問題は、False になる str に対して 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
>>>
于 2012-06-17T13:33:42.183 に答える