2016-11-29 33 views
1

1/A该Python3.5代码不同的结果在pycharm和python CONSOL使用切片步骤

a=[1,2,3,4,5,6,7,8] 
a[::-1] 
print(a) 

蟒IDE输出(预期的结果):

[8, 7, 6, 5, 4, 3, 2, 1] 

Pycharm输出(一个错误的结果):

[1, 2, 3, 4, 5, 6, 7, 8] 

我觉得根据控制台得到不同的结果会让人困惑。为什么不同?

2 /同上这一个:

x = "Hello World !" 
x[6:2:-1] 
print(x) 

蟒蛇输出:

'W ol' 

Pycharm输出:

Hello World ! 
+0

控制台肯定会产生正确的输出。你正在运行哪个版本的PyCharm? – DrZoo

+2

语句''a [:: - 1]''不会做任何事 - 它抛弃反转的字符串。你必须做''a = a [:: - 1]''来获得预期的结果。 – jasonharper

+0

@jasonharper非常感谢您的回复。我现在知道了。 (@DrZoo:我正在使用pycharm 2016.3 –

回答

0

我jasonharper这里同意,什么PyCharm说明你是正确的,因为你实际上并没有改变。

你会得到这个的唯一行为是在交互式python会话中。因此,如果您在控制台中拨打python,请运行a=[1,2,3,4],然后输入a[::-1],您将在控制台中获得该计算结果。如果你再运行a,你会看到a没有改变。

0

让我们来看你的第二个例子

字符串是不可变的。 python控制台只是立即吐出slice命令的结果。 x从不改变,所以print(x)在这种情况下应该在所有python环境中都是相同的。

但是,PyCharm只输出print命令,因为整个脚本是被解释的,而不是逐行的。

+0

谢谢板球! –