python问题记录
Posted 小黄人python
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python问题记录相关的知识,希望对你有一定的参考价值。
今天才python群里看到一个问题
python2.7:
L = [x for x in ‘hello‘]
print L
print 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 "<pyshell#2>", line 1, in <module>
print (x)
NameError: name ‘x‘ is not defined
>>>
就是这么一个问题,我通过pycharm单步调试了一下,发现python2.7执行完列表解析语句后,变量x任然存在。
而在python3.4中,执行完列表解析后,变量x则消失了。
下面贴出我用pycharm分别在不同环境下调试的结果
python2.7:
python3.4:
我想这可能是python3.4基于安全考虑,避免变量占用内存的情况。
另一方面,也保证了在后面使用变量的情况下不会出现错用变量的现象。
2016-03-28 13:26:34
以上是关于python问题记录的主要内容,如果未能解决你的问题,请参考以下文章