Почему мой код выводит только ответы для 1-го и последнего ввода? - PullRequest
0 голосов
/ 27 мая 2019

Здесь я должен вычислить числовое значение буквы. Я могу рассчитать его, но когда я ввожу 3 разных входа, я получаю только 1-й и последний.

Я пробовал использовать разные буквы, я действительно не знаю, что попробовать, так как я довольно плохо знаком с 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)

Я ожидаю, что мои выходные данные будут равны 1, 2 и 3 при вводе «A», «B», «C»

1 Ответ

0 голосов
/ 27 мая 2019
line1 = ["A","B","C"]
list1 = [ ord(i) - 64 for i in line1]
print(list1)

Возможно, это лучший способ сделать это.

Чтобы ответить на ваш вопрос, глядя на ваш код, первое выражение else появляется вне цикла for, поэтому только когда вывыйдя из цикла for, вы попадете внутрь оператора else, поскольку последний элемент line1 не равен 'A'.Вы должны быть очень осторожны с отступами в Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...