zoukankan      html  css  js  c++  java
  • Python学习笔记 变量

    蒟蒻高举横幅:部分内容转自廖雪峰的Python教学

    1.Python是动态语言,即它的变量是没有类型的。

    1 !/usr/bin/env python
    2 a = 'ABC'
    3 print a
    4 a = 123
    5 print a
    View Code

    2.关于Python 的变量某些方面,类似于JAVA中的一些对象,Java中的对象,也只是指向某一块内存,而非想c中的int 型变量一样。

    a = 'ABC'
    

    时,Python解释器干了两件事情:

    1. 在内存中创建了一个'ABC'的字符串;

    2. 在内存中创建了一个名为a的变量,并把它指向'ABC'

    也可以把一个变量a赋值给另一个变量b,这个操作实际上是把变量b指向变量a所指向的数据,例如下面的代码:

    a = 'ABC'
    b = a
    a = 'XYZ'
    print b
    

    最后一行打印出变量b的内容到底是'ABC'呢还是'XYZ'?如果从数学意义上理解,就会错误地得出ba相同,也应该是'XYZ',但实际上b的值是'ABC',让我们一行一行地执行代码,就可以看到到底发生了什么事:

    执行a = 'ABC',解释器创建了字符串'ABC'和变量a,并把a指向'ABC'

    py-var-code-1

    执行b = a,解释器创建了变量b,并把b指向a指向的字符串'ABC'

    py-var-code-2

    执行a = 'XYZ',解释器创建了字符串'XYZ',并把a的指向改为'XYZ',但b并没有更改:

    py-var-code-3

    所以,最后打印变量b的结果自然是'ABC'了。

  • 相关阅读:
    整理一些笔试题(要求手写代码的)
    网络笔试题
    链表-单链表的各种操作
    C语言-排序-希尔排序
    C语言-排序-选择排序
    C语言-排序-归并排序
    C语言-排序-插入排序
    [转载]iOS 10 UserNotifications 框架解析
    Objective-C枚举的几种定义方式与使用
    【转载】iOS屏幕适配设计
  • 原文地址:https://www.cnblogs.com/silence-tommy/p/6429169.html
Copyright © 2011-2022 走看看