当我运行此操作时,我收到以下错误:有人知道可能导致此问题的原因吗?这个程序的目的是创建一个数组,从数组中删除所有标点符号,并从数组中删除所有小写字符
文件“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()
答案 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--^
就个人而言,我会推荐以后的解决方案。您应该只在以下情况下使用括号:
语法要求您。
它会显着提高代码的清晰度。
否则,它们只是多余的字符。