【问题标题】:Arrays and if statements数组和 if 语句
【发布时间】:2012-06-17 13:28:51
【问题描述】:
有人可以帮我处理if 语句和数组。例如,我在数组"1" 中输入0001 是[3]。如果在数组[3] 上键入1,我正在尝试让它打印"working"。
这段代码应该解释得更清楚:
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"
【问题讨论】:
标签:
python
arrays
list
if-statement
【解决方案1】:
这是因为您将int 与单个字符(键入str)进行比较。将您的 if-statement 更改为:
if (original[3] == "1"):
print "working"
它会起作用的。
您的密钥输入由字符 ('0001') 组成,因此您的比较必须考虑到这一点。
例如,
type(original[3])
str
type(1)
int
【解决方案2】:
首先,字符串已经是数组,因此您不需要将它们转换为列表。
在 Python 中,字符串不等于整数,因此您应该与 '1' 进行比较。最后,如果没有括号,if 语句看起来更好:D
>>> original = raw_input("Type is your input? ")
Type is your input? 0001
>>> if original[3] == '1':
print "working"
working
【解决方案3】:
您的问题是您正在检查一个 int 和一个 str,这将是 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
>>>