所以我有代码:
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(),但这给了我另一个错误!请帮帮我!
发布于 2012-02-21 03:53:45
or运算符的工作方式与您想象的不同。如果表达式a or b具有trucy truth value,则返回a,否则返回b。你的意思可能是
if intex in "abcdefghijklmnopqr":
...要将字母转换为整数,以便a映射到1等,可以使用ord()
counter += ord(intex) - ord("a") + 1发布于 2012-02-21 03:54:54
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))你能指定代码应该做什么吗?它看起来很奇怪。
https://stackoverflow.com/questions/9367513
复制相似问题