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

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

我不知道这里出了什么问题。

最佳答案

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

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

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

注意:*sh 在这里表示 sh 的任何派生词:bash、zsh 等。

关于python - Python 中似乎有效的函数定义的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20528815/

相关文章:

python - 如何用 bash 脚本杀死 python 脚本

bash - 如何将部分变量提取到shell脚本中的另一个变量中

bash - 在 Bash 中获取精确引用的字符串参数

linux - shell 脚本 : How to read standard output of a program from console

linux - 验证文本文件显示每个数据集的预期字段

python - 如何使用 Selenium WebDriver 和 Python 提取元素中的文本?

python - GoogleAppEngine 和最新的 Python2.7 : location of "google" directory

Python-使用不同的参数重载相同的函数

linux - shell脚本中的递归问题

python - cifs 共享上的 shutil.copy2 只能作为 root 使用