2

有人可以帮我处理if声明和数组。因此,例如我0001在数组中输入的"1"[3]. "working"如果1在 array 上键入,我试图让它打印[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

这是因为您将 aint与单个字符(类型str)进行比较。将您的if-statement 更改为:

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

您的问题是您正在根据 str 检查一个 int,这将是 False。请参阅此交互式会话:

>>> 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 回答