• 变量与常量


    变量与常量

    变量:在程序运行过程中,值会发生变化的量。

    常量:再程序运行过程中,值不会发生变化的量。

    无论是变量还是常量,在创建时都会在内存中开辟一块空间,用于保存他的值。

     1.Python中的变量不需要生命类型

    这是根据Python的动态语言特性而来。变量可以直接使用,而不需要提前生命类型。例如:name,age,sex三个变量,在使用之前没有不需要声明 str name,int age,str sex,而这声明变量是C和Java中必须的。而Python使用变量:

    name = "xiaohei"
    age = 20
    sex = "man"

    2.用 “=”号给变量赋值

    age = 100

    这里的等号要理解并读作“赋值”,而不是“等于”,“赋值”是对变量的操作,而“等于”是对两个变量进行比较的。上面的 name、age、sex变量就是通过"="号赋值的。

    3.每个变量在使用前都必须赋值,变量赋值后才会被创建

    新的变量通过赋值的动作,创建并开辟内存空间,保存值。如果没有赋值而直接使用就会抛出异常,例如:

    age  # 没有赋值
    print(age)  # 报异常 NameError: name 'age' is not defined
    
    # 修改后
    
    age = 1  # age赋值
    print(age)  # 打印正常

    4.Python中,一切皆对象,变量引用的是对象或者说是对象在内存中的地址

     后边详细说

    5.Python中,变量本身没有数据类型的概念

    通常说的“变量类型”是变量所引用的对象的类型,或者说是变量的值得类型。

    name = "xiaohei"
    name = 333
    name = [1, 2, 3, 4]
    name = {"k1": "v1"}
    print(name)

    例子中,变量name在创建的时候,赋值为xiaohei字符串类型,然后又被改为整数类型,再变成一个列表类型,最后是字典类型。变量name在动态的改变,他的值分别是不同的数据类型,这就是动态语言的特点。

    6.“=”号这个赋值运算符是从右往左计算顺序

    x = 1
    y = 2
    z = x + y  # 先计算x+y值在赋值个z
    print(z)

     7.Python可以同时为多个变量赋值

    a = b = c = 1
    print(a)  # 1
    print(b)  # 1
    print(c)  # 1

    8.同时为多个变量分别赋值,用逗号分隔,逐一对应

    a, b, c = 1, 2, 3  # 一一对应
    print(a, b, c)

    9.不要把赋值语句的等号等同于数学的等号

    a = 1
    a = a + 2
    print(a)

    从数学的角度理解a = a+2是不成立的,但在程序中,赋值语句先计算a+2得到结果后再赋值给a,之前a的值是1,那么重新赋值后a得值是3。

    如果理解变量计算机内存中的表示也很重要。如:

    name = "xiaohei"

    1.在内存中创建一个"xiaohei"的字符串对象。

    2.在内存中创建一个名为name的变量,并将它指向"xiaohei"。

    也可以把一个变量name赋值给a,这个操作实际上是将变量a指向name所指向的数据,如下:

    name = "xiaohei"
    a = name
    name = "xiaohei1"
    print(name)
    print(a)

    最后变量a的内容到底是"xiaohei"还是"xiaohei1"?从数学的角度上理解,就会错误的得出a和name是"xiaohei1",但实际的a的值还是"xiaohei"。

    ps:Python中的一切都是对象,变量是对象的引用。

    1.执行name = "xiaohei",解释器创建字符串"xiaohei",对象和变量name,并将name指向"xiaohei"对象。

    2.执行a = name,解释器创建变量a,并将其指向变量name指向的字符串"xiaohei"对象。

    3.执行name = "xiaohei1",解释器创建字符串"xiaohei1"对象,并把name指向的对象改变为"xiaohei1",与a变量无关

    常量

    常量就是不变的变量,比如身份证号码、数学中圆周率都是常量,在Python中通常用全部大写的变量表示常量

    但事实上从Python的语法角度上看,身份证号码、圆周率依然是一个变量,因为Python没有任何机制保障常量不会被改变,改变其值,也不会报错。所以用全部大写的变量名表示常量只是程序员的一种习惯的用法。

    常量通常放在代码的最上部,并作为全局变量使用。

  • 相关阅读:
    [ZJOI2007]时态同步 题解
    Xposed 在android 6.0上报couldn't load class,找不到xposed_init中配置的入口类
    微信小程序http 400问题
    在Mac上 python中使用tesseract OCR (Pytesser) 识别图片中的文字
    微信小游戏跳一跳简单手动外挂(基于adb 和 python)
    第一个微信小程序踩的几个小坑
    android studio/Intellij IDEA(MAC OSX)中android模拟器无法启动的一种原因
    【转载】word2vec原理推导与代码分析
    HTTP Get Post究竟有哪些区别
    初试kotlin:用Kotlin开发桌面/CommandLine 工具
  • 原文地址:https://www.cnblogs.com/xiaohei001/p/10103242.html
Copyright © 2020-2023  润新知