更改几个语法python 2.7.7时出错

时间:2014-11-28 23:24:13

标签: python if-statement

我在将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

2 个答案:

答案 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:

我知道你的版本看起来更像是英文,但它对计算机没有意义。