首页 > 解决方案 > 为什么我的代码只输出第一个和最后一个输入的答案?

问题描述

在这里,我应该计算一个字母的数值。我能够计算它,但是当我输入 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

标签: python-2.7if-statement

解决方案


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

可能是一种更好的方法。

要回答您的问题,请查看您的代码,第一个else语句出现在for循环之外,因此只有当您退出for循环时,您才会进入else语句内部,因为line1is not的最后一个元素'A'。你应该非常小心 Python 中的缩进。


推荐阅读