为什么我的代码仅输出第一个和最后一个输入的答案?

时间:2019-05-27 04:39:29

标签: python-2.7 if-statement

在这里,我应该计算一个字母的数值。我可以计算出来,但是当我输入3个不同的输入时,我只会收到第一个和最后一个。

我尝试使用不同的字母,我真的不知道该怎么做,因为我是Python的新手。

line1 = ["A","B","C"]
list1 = []
for i in line1:
  if i == "A":
    list1.append(1)
else:
  if i == "B":
    list1.append(2)
  else:
    if i == "C":
      list1.append(3)
    else:
      if i == "D":
        list1.append(4)
      else:
        if i == "E":
          list1.append(5)
        else:
          if i == "F":
            list1.append(6)
          else:
            if i == "G":
              list1.append(7)
            else:
              if i == "H":
                list1.append(8)
              else:
                if i == "I":
                  list1.append(9)
                else:
                  if i == "J":
                    list1.append(10)
                  else:
                    if i == "K":
                      list1.append(11)
                    else:
                      if i == "L":
                        list1.append(12)
                      else:
                        if i == "M":
                          list1.append(13)
                        else:
                          if i == "N":
                            list1.append(14)
                          else:
                            if i == "O":
                              list1.append(15)
                            else:
                              if i == "P":
                                list1.append(16)
                              else:
                                if i == "Q":
                                  list1.append(17)
                                else:
                                  if i == "R":
                                    list1.append(18)
                                  else:
                                    if i == "S":
                                      list1.append(19)
                                    else:
                                      if i == "T":
                                        list1.append(20)
                                      else:
                                        if i == "U":
                                          list1.append(21)
                                        else:
                                          if i == "V":
                                            list1.append(22)
                                          else:
                                            if i == "W":
                                              list1.append(23)
                                            else:
                                              if i == "X":
                                                list1.append(24)
                                              else:
                                                if i == "Y":
                                                  list1.append(25)
                                                else:
                                                  if i == "Z":
                                                    list1.append(26)

print(list1)

当我输入“ A”,“ B”,“ C”时,我希望输出为1、2和3

1 个答案:

答案 0 :(得分:0)

line1 = ["A","B","C"]
list1 = [ ord(i) - 64 for i in line1]
print(list1)

可能是一种更好的方法。

要回答您的问题,请看一下代码,第一个else语句出现在for循环之外,因此只有退出for循环时,您才可以进入{ {1}}语句,因为else的最后一个元素不是line1。 对于Python中的缩进,您应该非常小心。