【问题标题】:execute script from within python3 interpreter and show interpreter results从 python3 解释器中执行脚本并显示解释器结果
【发布时间】:2016-07-21 08:16:45
【问题描述】:

我在 python 3 解释器中工作,我想用它来做作业。

首先,我有一个像这样的名为 mylibrary.py 的库

from math import pi
def area_circle(r):
   return(r*r*pi))

其次,我有一个像这样叫homework.py的脚本

from mylibrary import *
area_circle(3)
area_circle(5)
area_circle(3) + area_circle(5)

现在,我想进入 python 解释器并以某种方式执行脚本homework.py,就好像我已经将这些行直接输入到解释器中一样,我希望结果显示在屏幕上,因为解释器通常会显示它们。

在 BASH 提示符下:

$python3

Python 3.4.3 (default, Oct 14 2015, 20:28:29) 
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.

>>> exec "homework"

有这样的命令吗?我希望它读取我的脚本并将这些行输入到解释器中,以便接下来出现在屏幕上的是:

>>> from mylibrary import * 
>>> area_circle(3)
28.274333882308138
>>> area_circle(5)
78.53981633974483
>>> area_circle(3) + area_circle(5)
106.81415022205297

请注意,我没有Idle,我没有iPython,我只有从 BASH 提示符访问的解释器。

我知道我可以替换库中的函数来显式调用打印函数,如下所示:

def area_circle(r):
   a=r*r*pi
   print(a)
   return()

但我不希望这样,因为它会阻止我将此函数用作未来函数的构建块。
所以我想我要问的是如何以最简单的方式将homework 脚本逐行执行到解释器中。

【问题讨论】:

  • 您可以从 bash 运行 homework.py,方法是将文件名传递给解释器:python3 homework.py
  • 这个答案没有输出任何结果
  • 如果你想在运行代码后进入交互式python,你可以使用-i选项:python3 -i homework.py。它运行您的代码,然后给出>>> 提示,以便您可以查询变量。
  • 这只有在我将每个结果存储在一个单独的变量中时才有效,而且它也不会打印出脚本中的命令。对于作业,我希望显示命令及其结果输出。

标签: python python-3.x exec interpreter


【解决方案1】:

如果你不使用 python 提示,你不能在不使用'print'的情况下显示内容......

你可以修改你的函数,所以如果给出第二个参数,它就会打印,否则不打印:

def area_circle(r, do_print=False):
    a=r*r*pi
    if do_print:
        print(a)
    return a

此函数将在所有情况下返回区域。如果您将True 作为第二个参数,它也会打印其值(area_circle(3) 不打印任何内容并返回区域,而area_circle(3,True) 打印区域并返回其值)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-22
    • 1970-01-01
    • 1970-01-01
    • 2013-02-20
    • 2011-09-06
    • 1970-01-01
    相关资源
    最近更新 更多