python - 简单的 Python 脚本不起作用

标签 python python-2.7 syntax

我正在尝试学习 Python。这是我第一次编写 Python 脚本。我想要做的就是将一个字符串作为输入,如果它不是“退出”则将其打印出来。但它显示各种错误。

def main():
    while True:
        data = input('Please enter a string');
        if data == 'exit': 
            break
        else:
            print(data)

if __name__ == '__main__':
    main()

错误如下。第一次说:

unexpected EOF while parsing

第二次它说:

nameerror: name 'asd' not defined

最佳答案

您的缩进已关闭。应该是:

def main():
    while True:
        data = input('Please enter a string');
        if data == 'exit': 
            break
        else:
            print(data)

if __name__ == '__main__':
    main()

Python 非常重视缩进(事实上,这就是它知道 if 语句、函数声明等内容的方式)

编辑:

我上面的帖子是针对你使用 Python 3.x 的问题(毕竟,那是你给的标签)。因为你没有使用 3.x,而是 2.x,那么你的函数应该是这样的:

def main():
    while True:
        # Use raw_input instead so input is not evaluated
        data = raw_input('Please enter a string');
        if data == 'exit': 
            break
        else:
            print data

if __name__ == '__main__':
    main()

关于python - 简单的 Python 脚本不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18235220/

相关文章:

python - 如何在列表理解期间检查列表的条件?

linux - 如何使用 SPARC 求解器的输出作为 python 文件的输入?

python - 无法识别 Tkinter 单选按钮指示器

syntax - 是否有语法来定义 Turtle RDF 中匿名节点之间的循环引用?

python - 使用 Gunicorn + Nginx + Flask 有什么好处?

用于查找空格、字符串结尾和/或单词边界的 Python 正则表达式

python-2.7 - celery :连接到 RabbitMQ 服务器时出错

c++ - 在标识符 ";"之前缺少 "name",即使它在那里

objective-c - objective-c 中的第一个参数名称?

python - 监听 dbus 信号以在 debian linux 上挂载 mtp 设备