当我在这段代码中定义一个函数时:
def is_palindrome(seq):
s=seq[::-1]
if s==seq:
return True
else:
return False
myfile=open('palindrome.txt','r')
for line in myfile:
if is_palindrome(line.srtrip()):
print(line,end='')
myfile.close()
它在我的控制台中返回此错误消息:
./palindrome.py: line 1: syntax error near unexpected token `('
./palindrome.py: line 1: `def is_palindrome(seq):'
我不知道这是怎么回事。
最佳答案
您正在将脚本作为* sh脚本执行。你应该做python palindrome.py
确实,您收到的错误消息通常是* sh脚本的错误...当您通过./palindrome.py
调用脚本时,它将使用匹配的第一个解释器执行该脚本。在您的Linux环境中,这似乎是* sh解释器。
为了避免这种情况,最好的方法是在Python脚本的第一行添加#!/usr/bin/env python
,这将强制您的命令行使用Python解释器而不是* sh解释器。
注意:* sh在这里代表sh的任何派生形式:bash,zsh等。