zoukankan      html  css  js  c++  java
  • 003-python基础-变量与常量

    一、变量的定义

    变量就是用来在程序运行期间存储各种需要临时保存可以不断改变的数据的标示符,一个变量应该有一个名字,并且在内存中占据一定的存储单元,在该存储单元中存放变量的值。

    二、变量的声明

    1 #!/usr/bin/env python
    2 # -*- coding: utf-8 -*-
    3   
    4 name = "wupeiqi"

    上述代码声明了一个变量,变量名为: name,变量name的值为:"wupeiqi"

    变量的作用:昵称,其代指内存里某个地址中保存的内容

     

    三、变量的命名规则

    • 变量名只能是 字母、数字或下划线的任意组合
    • 变量名的第一个字符不能是数字
    • 以下关键字不能声明为变量名
    • ['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']

      注意:在python中,大写字母和小写字母被认为是两个不同的字符。因此,sum和SUM是两个不同的变量名。一般的,变量名用小写字母表示,与人们的日常习惯一致,以增加可读性。

    四、变量名的命名习惯

      变量名的定义在能表达清楚它的作用的前提下越简洁越好,能用一个单词表述清楚的就不要用两个。

      复杂变量命名,选择下划线“_”或首写字母大写的形式。如:

      CheckCurrentConnCount

      check_current_conn_count

    五、常量

    常量就是不能变的变量。在python中,通常用全部大写的变量名表示常量,如:

    PI = 3.14159

    但事实上PI仍然是一个变量,python根本没有任何机制保证变量PI不会被改变,所以全部大写的变量名表示常量只是一个习惯上的用法。

    六、变量的赋值及在内存中的理解

    1 #!/usr/bin/env python
    2 # -*- coding: utf-8 -*-
    3 
    4 name1 = "wupeiqi"
    5 name2 = "alex"

    1 #!/usr/bin/env python
    2 # -*- coding: utf-8 -*-
    3 
    4 name1 = "wupeiqi"
    5 name2 = name1

    当变量name1赋值给另一个变量name2时,解释器只是把name1所指向的内存地址赋值给了name2,因此name1和name2并没有发生直接的关联,只不过是他们都同时指向同一个内存地址而已,这也就是为什么你把name1指向一个新地址后,而name2的值还是保持不变的原因。

     1 name1 = "wupeiqi"
     2 name2 = "alex"
     3 print("name1 id is",id(name1))
     4 print("name2 id is ",id(name2))  
     5 print("".center(40,"-"))
     6 name2 = name1
     7 print("name1:", name1)
     8 print("name2:", name2)
     9 print("name1 id is",id(name1))
    10 print("name2 id is ",id(name2))
    11 print("".center(40,"-"))
    12 name1 = "new"
    13 print("name1:", name1)
    14 print("name2:", name2)
    15 print("name1 id is",id(name1))
    16 print("name2 id is ",id(name2))
    17 
    18 # 输出
    19 name1 id is 10728928      # name1的初始id
    20 name2 id is  10729600     # name2的初始id
    21 ----------------------------------------
    22 name1: wupeiqi
    23 name2: wupeiqi
    24 name1 id is 10728928
    25 name2 id is  10728928      # name1把内存地址赋值给name2
    26 ----------------------------------------
    27 name1: new
    28 name2: wupeiqi
    29 name1 id is 9362712       # name1指向新的内存地址
    30 name2 id is  10728928     # name2不变
  • 相关阅读:
    C# 调用线程并行上下文穿透-ILogicalThreadAffinative+CallContext
    C# 多线程调用静态方法或者静态实例中的同一个方法-方法内部的变量是线程安全的
    解析 .Net Core 注入——注册服务
    [Python]编码声明:是coding:utf-8还是coding=urf-8呢
    Vue加载组件、动态加载组件的几种方式
    源码版本管理工具 :TFS GIT
    Microsoft/Git-Credential-Manager-for-Mac-and-Linux
    SqlServer 对分组的内容进行拼接-group_concat
    MFC中页面设置对话框CPageSetupDialog
    MFC中查找替换对话框CFindReplaceDialog类
  • 原文地址:https://www.cnblogs.com/chhphjcpy/p/6059983.html
Copyright © 2011-2022 走看看