2016-11-29 37 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

謝謝板球! –