美文网首页
Python基础(8)-变量

Python基础(8)-变量

作者: 皓月的简书 | 来源:发表于2017-02-19 21:32 被阅读0次

8.1-什么是变量:

如果,我们想把数据存到内存里,以便在程序中多次使用,就需要通过变量来存储数据,然后在需要的时候通过变量的名字来提取数据。

变量就是编程中最基本的存储单位,会暂时的储存你放进去的东西(即代指内存里某个地址中保存的内容)。

在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。

在python中我们可以把各种类型的数据赋值给同一个变量,比如:

#!/usr/bin/env python
# -*- coding:utf-8 -*-

#s1 存储的内容为字符串"hello world"
s1 = "hello world"
print(type(s1))
print(s1)

print("-----" * 8)

#s1 存储的内容变为整形 123
s1 = 123
print(type(s1))
print(s1)

运行结果:

Python能自由改变变量类型的特征被称为动态类型。并不是所有的语言都支持动态类型。在静态类型的语言中,变量有事先说明好的类型。特定类型的数据必须存入特定类型的变量。相比于静态类型,动态类型显得更加灵活便利。

8.2-变量的命名规范:

  1. 变量名只能是是大小写英文字母、数字和_组成。
  2. 不能用数字开头。
  3. 以下关键字(python内部的关键字)不能声明为变量名。
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
在 Python3 中, exec 不再是关键字,但 nonlocal 是一个新的关键字。

注:变量对大小写敏感

8.3-变量赋值:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
user = "root"
pwd = "root123"

user = "root"的过程:python解释器会在内存中创建一个"root"字符串,将"root"存储在一个内存空间里,然后user变量指向存储"root"字符串的内存地址。

在内存中的表示:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
user = "root"

#将变量pwd指向了user变量所指向的地址
pwd = user

在内存中的表示:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
user = "root"

#将变量pwd指向了user变量所指向的地址
pwd = user

#将变量user的指向改为"root123",但变量pwd并没有改变
user = "root123"

在内存中的表示:

8.4-垃圾回收机制:

在Python基础中还有一个比较重要的概念就是垃圾回收机制,下面我们通过代码来验证:

>>> a = 1
>>> b = a
>>> id(a),id(b)
(1731718960, 1731718960)

首先我们声明了一个变量a,a等于1,然后又声明了变量b,b等于a,其实就是变量b指向了a所指向的内存地址, 通过id()内置函数我们可以清楚地看到这两个变量指向的是同一块内存区域。

再继续下列实例代码:

>>> name = "root"
>>> name = "root123"
>>> name
'root123'

通过上面这个实例,可以清楚的理解到垃圾回收机制是如何工作的:

  1. 创建一个变量 name ,指向 "root" 的内存地址;
  2. 如果 "root" 这个值之前没有在内存中创建,那么现在创建它,并让这个内存地址的引用数+1,此时等于1;
  3. 然后对变量 name 重新赋值,让其指向 "root123" 的内存地址;
  4. 那么此时 "root" 值的引用数现在变成了0,当python一旦检测到某个内存地址的引用数等于0时,就会把这个内存地址给删掉,从而释放内存;
  5. 最后变量 name 指向了 "root123" 的内存地址,所以 name 就等于 "root123"。

相关文章

  • Python基础(8)-变量

    8.1-什么是变量: 如果,我们想把数据存到内存里,以便在程序中多次使用,就需要通过变量来存储数据,然后在需要的时...

  • python学习目录

    Python基础 --- 变量 (1) Python基础---数据类型(2)

  • Python基础入门6_文件和异常

    Python 基础入门前五篇: Python 基础入门--简介和环境配置 Python基础入门_2基础语法和变量类...

  • Python 基础入门 5--面向对象

    Python 基础入门前四篇: Python 基础入门--简介和环境配置 Python基础入门_2基础语法和变量类...

  • Python 基础入门 7--编写测试用例(完)

    Python 基础入门前六篇: Python 基础入门--简介和环境配置 Python基础入门_2基础语法和变量类...

  • Python 基础入门 4--函数

    Python 基础入门前三篇: Python 基础入门--简介和环境配置 Python基础入门_2基础语法和变量类...

  • Python基础入门_3条件语句和迭代循环

    Python 基础入门前两篇: Python 基础入门--简介和环境配置 Python基础入门_2基础语法和变量类...

  • Python-01基础-11基础知识

    Python 基础知识 tags: Python 基础 2019 年 10 月 内容说明: 变量 列表/元组 字典...

  • 无标题文章

    Python基础 在 Python 中,每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建 等号(=)用来给...

  • Python ABC

    Python基础语法框架笔记 变量 变量声明定义 Python的变量的声明和定义很简单,或者说已经淡化了变量声明和...

网友评论

      本文标题:Python基础(8)-变量

      本文链接:https://www.haomeiwen.com/subject/qalgittx.html