【问题标题】:Entering multiple lines / statements into the IDLE shell?在 IDLE shell 中输入多行/语句?
【发布时间】:2021-11-10 14:36:31
【问题描述】:
x=100

输入

if x == 10:
    print("10!")
elif x == 20:
    print("20!")
else:
    print("I don't know!")

它打印出我不知道!虽然它不止一行? 壳的极限是多少? “单独执行”是什么意思——不管你写了多少代码,它都会执行第一行/语句并忽略其余的?

【问题讨论】:

  • 它打印“我不知道!”因为 x 既不是 10 也不是 20
  • 您希望它打印什么?
  • 为什么当它是多行并且他们说你一次不能输入多行时它会起作用?
  • IDLE shell 可以接收任意数量的行。我不知道它在哪里说“你不能输入多于一行”,但事实是在那里编写多于一行的代码并不方便,因为它不是正确的工具。如果你想写一个程序(很可能不止一行),你应该使用文本编辑器(比如 IDLE 自带的编辑器、VS Code、PyCharm、Sublime 等)。
  • @FelipeWhitaker 与面向行的终端和控制台不同,IDLE 设计用于多行语句的条目和历史检索。从 3.10 开始,多行语句的缩进是正确的。正如您所指出的,一次运行多个 语句 需要使用编辑器。

标签: python python-idle


【解决方案1】:

Python 程序是一系列语句。在 IDLE 的 Shell 中,一次输入并执行一条语句。这比一次输入单个物理行要有用得多,就像在 Windows 控制台或 *nix 终端中运行的 python.exe 一样。您引用的文字是在谈论后者,而不是 IDLE。

要理解“语句”,我们必须从“行”开始。 physical line 是“由行尾序列终止的字符序列”。逻辑行可以是两个或多个物理行,使用 \ 字符连接到 explicitly 或使用 (), [], or {} 对连接到 implicitly

simple statement 包含一个逻辑行。一个compound statement 通常包含多条逻辑线,每条逻辑线可能不止一条物理线。您的if 语句是复合语句的示例。

在 IDLE 中,人们在一个或多个物理行上输入一个完整的语句。当一个简单的语句完成时(当一个完整的逻辑行输入时),IDLE 运行它。由于复合语句可以有不定数量的逻辑行,因此需要输入一个空行来表示结束。

【讨论】:

    猜你喜欢
    • 2011-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多