【发布时间】:2020-05-14 12:36:07
【问题描述】:
我将输入一个n,然后打印n行数。如果这个字符串是“++X”或“X++”,每一行我都会输入一个字符串" 那么我将 1 与 0 相加(X 的初始值为 0)。如果我的字符串是“--X”或“X--”,那么我将从 0 中减去 1。(如果我已经取了另一个字符串,则从该字符串值中减去)。
这是我的代码:
n = int(input())
c = 0
for x in range(n):
a = input()
if a == "X++" or "++X":
c = c + 1
elif a == "--X" or "X--":
c = c - 1
print(c)
我的意见:
2
X++
--X
我的输出:
2
预期输出:
0
因为,“X++”的值为 1,“--X”的值为 0。那么,我的代码有什么问题,我该如何解决?
【问题讨论】:
-
您的
or表达式不会像您预期的那样工作。它基本上是在说(a == "X++") or "++X":在 Python 中总是会评估为 True 。相反,您可以这样做if a in ('X++', '++X'): -
不客气 =)
标签: python-3.x for-loop if-statement increment decrement