所以我有代码:
intex = input("Enter in a letter of text\n")
if intex == 'a' or 'b' or 'c' or 'd' or 'e' or 'f' or 'g' or 'h' or 'j' or 'k' or 'l' or 'm' or 'n' or 'o' or 'p' or 'q' or 'r':
counter += intex
print(counter)
顺便说一下,所有的字母都被定义了,我只是觉得没有必要把它们放进去(a = 1,b = 2等),但每当我运行代码时,它都给了我错误TypeError: unsupported operand type(s) for +=: 'int' and 'str'
我知道这个错误意味着什么,我不能给一个数字添加一个字母,但有没有办法在没有错误的情况下这样做?我试过float(),但这给了我另一个错误!请帮忙!
答案 0 :(得分:7)
or
运算符无法按您的想法运行。表达式a or b
如果有truth value则返回a
,否则返回b
。你可能意味着
if intex in "abcdefghijklmnopqr":
...
要将字母翻译成整数,a
映射到1
等,您可以使用ord()
:
counter += ord(intex) - ord("a") + 1
答案 1 :(得分:4)
if intex == 'a' or 'b' or 'c'
应改为intex == 'a' or intex == 'b' ...
更简单的方法是使用in
运算符。
我只能假设你想要这样的东西来存储值。
my_list = []
if ord(intex) >= ord("a") and ord(intex) <=ord("r"):
my_list.append(ord(intex))
您能指定代码应该做什么吗?看起来很奇怪。