从python3解释器中执行脚本并显示解释器结果

时间:2016-07-21 08:16:46

标签: python python-3.x exec interpreter

我在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提示符访问的解释器。

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

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

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

1 个答案:

答案 0 :(得分:0)

如果您没有使用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)打印该区域,并返回其值)