python-2.7 - 为什么我的代码只输出第一个和最后一个输入的答案?
问题描述
在这里,我应该计算一个字母的数值。我能够计算它,但是当我输入 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
解决方案
line1 = ["A","B","C"]
list1 = [ ord(i) - 64 for i in line1]
print(list1)
可能是一种更好的方法。
要回答您的问题,请查看您的代码,第一个else
语句出现在for
循环之外,因此只有当您退出for
循环时,您才会进入else
语句内部,因为line1
is not的最后一个元素'A'
。你应该非常小心 Python 中的缩进。
推荐阅读
- if-statement - Excel formula has too many arguments
- r - 加权中位数 by_group()
- etl - SAP BODS - 从表比较中获取 PK 违规
- asp.net-core - 在 asp.net core 中加密 appsettings 和其他配置
- karate - Fetching few elements using "$.[:2]" operator throws error in karate. might be a bug
- python - keras access layer parameter of pre-trained model to freeze
- python - 使用枚举时禁用 pylint 警告 E1101
- c - 使用 C 中的指针确定数据类型大小
- pdf - 如何获得 cfdocument 的输出
- sql-server - 我可以对多个代码页使用 CHAR 数据类型吗?