变量的概念和在数学中的变量的概念一样的,只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。

在 python 中变量的声明与其他语言有显著的差别。

在 python 中,使用变量一定要先给变量赋值,不需要专门去声明。如果是第一次赋值则会在内存中创建一个对象,如果不是第一次则会使用已经创建过的。

a = 10    # 第一次使用 a,所以会自动创建变量a,并把它的赋值为10
print(a) #  10
a = 20 # 第二次使用 a, 所以不会再创建变量 a,而是使用前面创建的变量 a,然后赋值为20
print(a) #    20

如果是其他语言比如 java 中,则需要先声明变量,然后赋值。

int a = 10;   //Java 中的声明变量和赋值

所以,python 中各种代码相比其他语言就是精简和优雅 爽


python 的同一个变量,可以先存储数字,然后也可以再更改为其他类型。这是弱类型语言的典型特征。

a = 10    # 赋值为数字
print(a)
a = 'abc你好'    #赋值为字符串
print(a)

变量的命名

  1. 变量名必须是数字、字母(ascii 和 uncode 字符都可以,但是尽量避免使用中文)、下划线_组成
  2. 不能数字开头
  3. 如果有多个单词组成,建议每个字母都用小写字母,且不同的单词用下划线连接

合法:abca1_hellomy_girl

不合法:1a$a

变量的内存模型

​ 虽然 python 的变量使用起来非常简单,但是理解变量的内存模型也是非常重要的。

看下面的代码:

a = "abc"
print(a)
b = a
b = "xyz"
print(a)   # abc
print(b)   # xyz
  • 第1行代码做了3件事情:

    1. 在内存中创建了一个字符串"abc"
    2. 在内容创建了一个变量,变量名为a
    3. 字符串"abc"在内存中的地址赋值给变量 a。即可以理解为变量 a 指向了字符串 "abc"

  • 第3行代码做了2件事情:

    1. 创建一个变量,变量名是 b
    2. 把 变量 a 的值赋给变量 b。因为 a 中是存储的字符串 "abc" 的内存地址,则变量 b 存储的也是字符串 "abc" 的内存地址。即变量 b 也指向了字符串 "abc"

  • 第5行代码做了2件事情:

    1. 在内存中创建了一个字符串"xyz"
    2. 字符串"xyz"在内存中的地址赋值给变量 b。则 b 中的值被更换为字符串 "xyz" 的内存地址, b 与 字符串 "abc" 则再无关系。

Copyright © 李振超 2018 all right reserved,powered by Gitbook
该文件最后修订时间: 2018-02-25 07:12:09

results matching ""

    No results matching ""