python else语句语法错误

时间:2014-02-18 00:01:08

标签: python if-statement

当我运行此操作时,我收到以下错误:有人知道可能导致此问题的原因吗?这个程序的目的是创建一个数组,从数组中删除所有标点符号,并从数组中删除所有小写字符

文件“words.py”,第37行     其他:        ^ SyntaxError:语法无效

shell返回1

import sys
from scanner import *
arr=[]
def main():
    print("the name of the program is",sys.argv[0])
    for i in range(1,len(sys.argv),1):
        print("   argument",i,"is", sys.argv[i])
    tokens = readTokens("text.txt")
    cleanTokens = depunctuateTokens(arr)
    words = decapitalizeTokens(result)


def readTokens(s):
    s=Scanner("text.txt")
    token=s.readtoken()
    while (token != ""):
        arr.append(token)
        token=s.readtoken()
    s.close()
    return arr

def depunctuateTokens(arr):
    result=[]
    for i in range(0,len(arr),1):
        string=arr[i]
        cleaned=""
        punctuation="""!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~"""
        for i in range(0,len(string),1):
            if string[i] not in punctuation:
                cleaned += string[i]
        result.append(cleaned)
    print(result)
    return result


def decapitalizeTokens(result):
    if (ord(result) <= ord('Z')):
        return chr(ord(result) + ord('a') - (ord('A'))
    else:
        return result

main()

1 个答案:

答案 0 :(得分:1)

修改

您已经从result返回depunctuateTokens,所以只需在main内执行此操作:

cleanTokens = depunctuateTokens(arr)
words = decapitalizeTokens(cleanTokens)


您需要一个右括号:

return chr(ord(result) + ord('a') - (ord('A'))
#                                       here--^

或者,您可以删除额外的左括号:

return chr(ord(result) + ord('a') - (ord('A'))
#                             here--^

就个人而言,我会推荐以后的解决方案。您应该只在以下情况下使用括号:

  1. 语法要求您。

  2. 它会显着提高代码的清晰度。

  3. 否则,它们只是多余的字符。