python中函数定义的语法错误似乎有效

时间:2013-12-11 20:02:12

标签: python sh

当我在此代码中定义一个函数时:

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):'

我不知道这里有什么问题。

2 个答案:

答案 0 :(得分:13)

您正在将脚本作为* sh脚本执行。你应该python palindrome.py

实际上,您收到的错误消息通常是* sh脚本的错误...当您通过./palindrome.py调用脚本时,它会使用匹配的第一个解释器执行它。在Linux环境中,它似乎是一个* sh解释器。

为了避免这种情况,最好的方法是在Python脚本的第一行添加#!/usr/bin/env python,这会强制命令行使用Python解释器而不是* sh解释器。

注意:* sh表示sh:bash,zsh等的任何派生词

答案 1 :(得分:0)

压痕?

def is_palindrome(seq):
    s=seq[::-1]
    if s==seq:
        return True
   else:
        return False