【发布时间】:2017-12-24 21:27:04
【问题描述】:
我是 Python 世界的新手,这是我使用 Python 编写的第一个程序。我来自 R 的世界,所以这对我来说有点不直观。
当我执行时
In[15]: import math
...: import random
...: random.random()
...: math.sqrt(85)
...:
在交互模式下(即在>>> 提示符下),我得到math.sqrt() 的输出。我根本看不到随机数。但是,当我分别执行 random.random() 和 math.sqrt() 时,我确实得到了两个结果。为什么是这样?我如何获得这两个结果?我问这个是因为我有在 R 中选择多行并以交互模式执行它们的习惯,尤其是在我尝试调试代码时。在尝试调试(例如,2000 行代码)时,一次只执行一行将非常痛苦。
当我在 R 中选择多行然后执行它们时会发生以下情况:
runif(1,0,1)
sqrt(85)
它会自动解析这些行并生成以下输出:
> runif(1,0,1)
[1] 0.01597949
> sqrt(85)
[1] 9.219544
我研究了 SO,发现 Write multi-line statement on single line。我不确定如何使用该线程的官方答案。
这是 PyCharm 上的输出:
import math
import random
random.random()
math.sqrt(85)
Out[15]: 9.219544457292887
我正在寻找某种机制来查看随机数和 85 的 sqrt,而无需像在 R 代码中那样添加任何分隔符 , 或 ;。如有任何想法,我将不胜感激。
预期输入:可以使用 PyCharm 中的“使用控制台执行选择”运行代码 [键盘快捷键:Alt + Shift + E]
import math
import random
random.random()
math.sqrt(85)
[请注意,我没有使用任何分隔符“;”或“,”——就像我们在 R 中所做的一样]
预期输出:
random.random()
Out[16]: 0.183145720117748
math.sqrt(85)
Out[17]: 9.219544457292887
【问题讨论】:
-
你能澄清你看不到随机数的意思吗?在 Python 提示符下,在 Python 2.7 上,执行
random.random()只会打印出一个随机数 [0.0, 1.0)。 -
@Mike- 我只是想打印一个随机数和 sqrt。但是,Python 只打印了 sqrt。我根本没有看到随机数。
-
您还提供了您的输入,但您能否以您想要的格式提供您的预期输出?也许这会消除一些混乱????
-
@Miket - 再次感谢您的帮助。我在 PyCharm 中添加了预期的输出和输入以及键盘快捷键。
-
我无法在 pycharm 中复制您的行为,即使在控制台中也是如此。您是否通过基本终端窗口在 python 控制台中尝试过这段代码?