python問題記錄

2022-07-27 19:36:12 字數 1627 閱讀 2659

今天才python群裡看到乙個問題

python2.7:

l = [x for x in 'hello']

print

lprint x

python3.4:

l = [ x for x in 'hello'] 

print

(l)  

print (x)

兩者都可以列印出

l = ['

h', '

e', '

l', '

l', '

o']

但是只有python2.7可以列印出變數x的值:

x = 'o'

>>> l = [x for x in

'hello']

>>> print

l  ['h

', '

e', '

l', '

l', 'o'

]  >>> print

x  o

>>>

python3.4中則顯示x變數沒有定義

>>> l = [x for x in

'hello']

>>> print

(l)  ['h

', '

e', '

l', '

l', 'o'

]  >>> print

(x)  traceback (most recent call last):

file

"", line 1, in

print

(x)  nameerror: name 'x

'isnotdefined

>>>

就是這麼乙個問題,我通過pycharm單步除錯了一下,發現python2.7執行完列表解析語句後,變數x任然存在。

而在python3.4中,執行完列表解析後,變數x則消失了。

下面貼出我用pycharm分別在不同環境下除錯的結果

我想這可能是python3.4基於安全考慮,避免變數占用記憶體的情況。

另一方面,也保證了在後面使用變數的情況下不會出現錯用變數的現象。

2016-03-28     13:26:34

python爬蟲問題記錄

環境搭建 基本庫框架 打碼平台 pycharm官方使用文件 python命名規範 python中文文件 啟動參考 cd d e mongodb bin mongob dbpath e mongodb data db 驗證是否啟動成功 啟動參考 cd d e redis redis server re...

Python學習問題記錄

在學習python的是後遇到點小問題,記錄下來以後忘了再來看看。一.python2 和python3在繼承父類的時候是不同的。super 是乙個特殊的函式,幫助python將父類和子類關聯起來。在python3中,直接使用如下 class father def init self,make,kkk,...

python常見問題記錄

name raw input enter your name 備註 raw input會把所有的輸入當作原始資料 raw data 然後將其放入到字串中,也就是說name是乙個str型別。字串 整數,主要用於接收輸入引數 intvar int strvar 整數 字串,主要用於print列印或者構建...