【问题标题】: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
        >>>
        

        【讨论】:

          猜你喜欢
          • 2023-03-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-11-27
          • 1970-01-01
          • 1970-01-01
          • 2018-12-05
          相关资源
          最近更新 更多