• Python数据类型之变量


    变量

    在程序设计中,变数(英语:Variable,scalar)是指一个包含部分已知或未知数值或资讯(即一个值)之储存位址,以及相对应之符号名称(识别字)。通常使用变数名称参照储存值;将名称和内容分开能让被使用的名称独立于所表示的精确讯息之外。电脑原始码中的识别字能在执行期间绑扎一个值,且该变数的值可能在程式执行期间改变。 程序设计中的变数不一定能直接对应到数学中所谓的变数之概念。在程序设计中,变数的值不一定要为方程或数学公式之一部分。程序设计中的变数可使用在一段可重复的程序:在一处赋值,然后使用于另一处,接著在一次赋值,且以相同方式再使用一次(见迭代)。程序设计中的变数通常会给定一个较长的名称,以描述其用途;数学中的变数通常较为简洁,只给定一、两个字母,以方便抄写及操作。

    一个变数的储存位址可以被不同的识别字所参照,这种情况称之为别名。使用其中一个识别字为变数赋值,将会改变透过另一个识别字存取的值。

    编译器必须将代表变数的名称替代成该数据所在的实际位址。变数的名称、类型及位址通常会维持固定,但该位址所储存之数据于程式执行期间则可能会改变。

    --以上是维基百科对 《变量(程序设计)》的解释

    • 我们知道在计算机运行程序时数据都是暂存在内存中的,用通俗的话说:就是代指内存中某个地址中所保存的内容。

    • 在Python中,上述图示用代码表示为(代码演示均在linux中完成):
    ubuntu@VM-0-26-ubuntu:~$ python                                                                 # 在linux命令行模式下进入python交互式环境
    Python 2.7.12 (default, Nov 19 2016, 06:48:10)                                                  # 显示python的版本号信息
    [GCC 5.4.0 20160609] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> name = "xiangcl"                                                                            # 在内存中创建一个内容为xiangcl,变量名为name的变量
    >>> id(name)                                                                                    # 获得对象的内存的地址
    3072794496L
    
    • 在这个例子中就是变量name和字符串xiangcl之间建立了对应的关系。
    • 在Python中,有一句话叫做:对象有类型,变量无类型。
    • 在上述例子中对象xiangcl是字符串类型,这就好比将name这个标签粘贴在了字符串xiangcl上面。

    变量的命名规则

    • 在Python中,变量只能是由字母、数字以及下划线组成,且不能以数字作为开头。
    • 下列Python的关键字也不能作为变量名使用(需特别注意):
    python2.7
    >>> import keyword                                   # 引入keyword库
    >>> keyword.kwlist                                   # 查看关键字列表
    ['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']
    >>> keyword.iskeyword("and")                         # 判断and是否为关键字
    True                                                 # 返回True,则为python关键字,反之不是,在python3中的判断方法是一样的,这里不在重复
    >>> keyword.iskeyword("has")
    False
    
    python3.5.2
    >>> import keyword
    >>> keyword.kwlist
    ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
    

    可以看到Python2和Python3的关键词还是有所不同的。

    变量的赋值

    >>> name1 = "xiangcl"          
    >>> name2 = "向常乐"
    >>> id(name1)                    
    3072443392
    >>> id(name2)
    3072427744
    

    >>> name1 = "xiangcl"
    >>> id(name1)
    3072443392
    >>> name2 = name1
    >>> id(name2)
    3072443392
    

  • 相关阅读:
    C#使用HttpWebRequest和HttpWebResponse上传文件示例
    c#深拷贝和浅拷贝的区别
    C#redis缓存应用
    如何设计一个高并发系统?
    第2章 关系数据库(重点) | 数据库知识点整理
    第1章 绪论 | 数据库知识点整理
    基于套接字的班级聊天群设计
    两数交换的三种方法(C/C++)
    关于知识图谱的思考
    如何找出唯一成对的数(C/C++)
  • 原文地址:https://www.cnblogs.com/xiangcl/p/6861391.html
Copyright © 2020-2023  润新知