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

  • 相关阅读:
    Knockout应用开发指南 第八章:简单应用举例(2)
    微软ASP.NET站点部署指南(7):生产环境部署
    Knockout应用开发指南 第七章:Mapping插件
    《Microsoft Sql server 2008 Internals》读书笔记第九章Plan Caching and Recompilation(6)
    《Microsoft Sql server 2008 Internals》读书笔记第九章Plan Caching and Recompilation(5)
    《Microsoft Sql server 2008 Internals》读书笔记第九章Plan Caching and Recompilation(3)
    《Microsoft Sql server 2008 Internals》读书笔记第九章Plan Caching and Recompilation(9)
    《Microsoft Sql server 2008 Internals》读书笔记第九章Plan Caching and Recompilation(8)
    Microsoft Visual Studio .NET 2003 引导程序插件下载地址(非官方)
    Vs2010在没有安装SQL Server 2005/2008 Express时如何连接MDF数据文件?
  • 原文地址:https://www.cnblogs.com/xiangcl/p/6861391.html
Copyright © 2011-2022 走看看