我在将if 'x' == 'y'
更改为if 'y' in 'x'
时收到错误
更准确的是,我可以使用第一个加密/解密,但不能仅使用第二个加密/解密。
示例脚本(不是整个代码): 工作的
for char in sourceString:
if (n == k or n == -k):
n = 0
if (cc == 'decryption'):
const = -const
cc = 'off'
if char.isupper():
resultString += encrypt(char, UPPER_LETTERS);
if (c == 'encryption'):
n += p
elif (c == 'decryption'):
n -= p
else:
break
elif char.islower():
resultString += encrypt(char, LOWER_LETTERS);
if (c == 'encryption'):
n += p
elif (c == 'decryption'):
n -= p
else:
break
else:
resultString += char;
if (c == 'encryption'):
n += p
elif (c == 'decryption'):
n -= p
else:
break
我在这里收到错误:
for char in sourceString:
if (n == k or n == -k):
n = 0
if ('de' or 'De' or 'dE' or 'DE' in cc):
const = -const
cc = 'off'
if char.isupper():
resultString += encrypt(char, UPPER_LETTERS);
if ('en' or 'En' or 'eN' or 'EN' in c):
n += p
elif ('de' or 'De' or 'dE' or 'DE' in c):
n -= p
else:
break
elif char.islower():
resultString += encrypt(char, LOWER_LETTERS);
if ('en' or 'En' or 'eN' or 'EN' in c):
n += p
elif ('de' or 'De' or 'dE' or 'DE' in c):
n -= p
else:
break
else:
resultString += char;
if ('en' or 'En' or 'eN' or 'EN' in c):
n += p
elif ('de' or 'De' or 'dE' or 'DE' in c):
n -= p
else:
break
答案 0 :(得分:0)
你不能像这样链接or
;它应该是'de' in c or 'De' in c or #...
。
或者,看起来你可以在c
中使用str.lower()
小写所有字符串,然后只需检查if 'de' in c
。
另一种方法是做这样的事情:
if any(x in c for x in ['de', 'De', 'dE', 'DE']):
最后,行cc
中的if ('de' or 'De' or 'dE' or 'DE' in cc):
应该只是c
。
答案 1 :(得分:0)
首先,你在if条件中不需要'()' 如果你写:
if 'en' or ...somthing:
python寻找之间的条件你的'或'。这意味着如果你想制造更多的条件,你需要做这样的事情:
if 'en' in c or 'En' in c or 'eN' in c or 'EN' in c:
我知道你的版本看起来更像是英文,但它对计算机没有意义。