zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    谈敏捷的好文章
    梁信军说的话
    如何做需求管理
    支持向量机通俗解释
    如何写数据报告
    数据分析注意点
    傅盛谈管理的本质
    I Hate It HDU
    敌兵布阵 HDU
    P3372 【模板】线段树 1 (区间查询)
  • 原文地址:https://www.cnblogs.com/xautxuqiang/p/5328700.html
Copyright © 2011-2022 走看看