本文主要介绍Python中的变量和常量,包括变量的命名规范,使用注意事项

-------------- 完美的分割线 ---------------

1.变量

1.1.变量理解

1)什么是变量

变量即变化的量,核心是“变”与“量”二字,变即变化,量即衡量状态。
完整的变量包括:变量名,等号,变量值
对于计算机,变量可以看做是一种存放信息的容器,用于存储在计算机程序中需要引用和操作的信息。
对于人,提供一种用描述性的名称对数据进行标记的方法,这样我们写的程序就可以更清楚地被读者和我们自己理解。
Python的变量不需要特别的声明,数据类型是Python自动决定的,可以直接输入

拓展知识:
变量的声明、定义、赋值和初始化有什么区别?
变量声明或定义:在环境中指定一个变量的名字。代表在内存中开辟一块区域。
赋值:销毁一个变量原来的值,并赋予一个新值。相当于改变了一个变量的状态。更改内存区域里的值。
初始化:一个声明后尚未初始化的变量一个有意义的初始值。即开辟内存区域时赋的值。不指定的话开辟时赋该类型的默认值。
注意:应注意区分初始化和赋值,在初始化之前不应该允许对变量进行赋值操作。

2)为什么要有变量

程序执行的本质就是一系列状态的变化,变是程序执行的直接体现,所以我们需要有一种机制能够反映或者说是保存下来程序执行时状态以及状态的变化。

3)何时需要用到变量?

一段程序或者数值需要在后面经常用到就可以用变量

1.2.变量的定义(创建)及命名规范

1)变量名要具有描述性的作用,要写的简洁直观易懂,且不要太长
2)变量名只能是字母、数字或下划线的任意组合,且不能以数字开头,可以下划线开头。
3)变量名可以用中文和拼音,但是尽量不要这样定义
4)以下关键字不能声明为变量名(被系统占用)

['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']

5)变量定义的等号左右建议用空格隔开(有无空格效果相同)

6)有两种定义方式:驼峰体和下划线

实例:

studentNumber = 30          # 驼峰体,java,asp开发人员常用
student_number = 30  # python常用这种的,下划线连接词组

注意区分:

1)定义函数用小写字母
def sayhi      # 全小写
2) 定义类用驼峰体
class LuffyCity # 驼峰体

1.3.变量的多行赋值(格式化输出)

注释符号的其他应用---多行打印

msg = '''
name1 = "ddd"
name2 = name1
'''
print (msg,name1,name2)
--->
name1 = "ddd"
name2 = name1
bbb aaa
<---

1.4.Python中变量的修改和回收

如果你想让a存储不同的数据,你不需要删除原有变量就可以直接赋值。
1)直接重新赋值,相当于取消变量名与变量值的关系

a = 1.3
print(a,type(a))
--->1.3 <class 'float'>

2)删除变量delete

del aaa

3)超时清理

python有自己的内存回收机制,每隔一段时间,检查没有变量名的变量值,进行清理,一般不用担心内存会变满

4)用变量为变量赋值会涉及到变量的二次赋值问题

name1 = "aaa"
name2 = name1
print (name1,name2 )
--->aaa aaa
name1 = "bbb"
print (name1,name2 )
--->bbb aaa

# 结论:
用变量name1给变量name2赋值,name1只是将他自己变量的值交付给name2,赋完值之后name2获取到新的值,
之后他们俩就没有关系了,此时无论name1如何变化也不会影响name2的值,因为”name2 = name1“并不是建立name1和name2的关系

1.5.变量的其他知识

定义变量会产生id,type,value等信息
1)等号比较的是变量的value值
2)is比较的是变量的id值
3)id相同的两个变量,代表占用的同一块内存空间,所以其type和value必定相同
4)两个变量的value相同,那么type肯定相同,但id可能不同,如下

x="I'm 18"
y="I'm 18"
id(x)
--->139641415263432
id(y)
--->139641415263488
x == y
--->True
x is y
--->False

拓展知识:小整数池

1)在交互式模式下

Python实现int的时候有个小整数池。为了避免因创建相同的值而重复申请内存空间所带来的效率问题, Python解释器会在启动时创建出小整数池,范围是[-5,256],该范围内的小整数对象是全局解释器范围内被重复使用,永远不会被GC回收,每创建一个-5到256之间的整数,都是直接从这个池里直接拿走一个值,例如

y=4
id(y)
--->4297641184
x=3
x+=1
id(x)
--->4297641184

2)在pycharm中

在pycharm中运行python程序,pycharm出于对性能的考虑,会扩大小整数池的范围,其他的字符串等不可变类型也都包含在内一便采用相同的方式处理了,我们只需要记住这是一种优化机制,至于范围到底多大,无需细究

2.常量:不变的量

2.1.什么是常量?

全部都大写用于表示常量
例如:PIE = 3.1415926...

2.2.常量和变量区分

1)大写字母用于表示常量,小写字母用于表示变量,
2)在Python中没有一个专门的语法代表常量,所有的变量都是可变的,程序员约定俗成用变量名全部大写代表常量,常量也可以修改,但不建议
3)在c语言中有专门的常量定义语法,const int count = 60;一旦定义为常量,更改即会报错

拓展知识:在linux下声明变量

在linux下声明变量:变量名=变量值, “=”左右不能有空格,使用“$变量名”进行调用
而python中没有严格规定,空格可有可没有,建议等号左右加空格

# 完毕,呵呵呵呵

Python中的变量和常量的更多相关文章

  1. Python基础-2 变量与常量

    变量与常量 变量:在程序运行过程中,值会发生变化的量 常量:在程序运行过程中,值不会发生变化的量 无论是变量还是常量,在创建时都会在内存中开辟一块空间,用于保存它的值. 这里有一点需要注意的是,在py ...

  2. Python基础部分:5、 python语法之变量与常量

    目录 python语法之变量与常量 一.什么是变量与常量 1.什么是变量 2.什么是常量 二.变量的基本使用 1.代码中如何记录事物状态 2.变量使用的语法结构与底层原理 3.变量名的命名规范 4.变 ...

  3. PHP中的变量与常量详解

    几乎所有的编程语言都会涉及到变量和常量这两个概念,PHP也不例外.本节将介绍PHP语言中的变量和常量的应用方法. 一.什么是变量和常量 在程序执行的过程中,变量存储的值可以随时改变,而常量存储的值是不 ...

  4. python中的变量和数据类型

    一.变量定义:变量是计算机内存中的一块区域,存储规定范围内的值,值 可以改变,通俗的说变量就是给数据起个名字. 二.变量命名规则: 1. 变量名由字母.数字.下划线组成 2. 数字不能开头 3. 不可 ...

  5. Python中的变量、引用、拷贝和作用域

    在Python中,变量是没有类型的,这和以往看到的大部分编辑语言都不一样.在使用变量的时候,不需要提前声明,只需要给这个变量赋值即可.但是,当用变量的时候,必须要给这个变量赋值:如果只写一个变量,而没 ...

  6. TensorFlow中的变量和常量

    1.TensorFlow中的变量和常量介绍 TensorFlow中的变量: import tensorflow as tf state = tf.Variable(0,name='counter') ...

  7. Python 中的变量

    Python采用基于值得内存管理模式,赋值语句的执行过程是:首先把等号右侧标识的表达式计算出来,然后在内存中找一个位置把值存放进去,最后创建变量并指向这个内存地址.Python中的变量并不直接存储值, ...

  8. Python中的变量引用对象需注意的几点

    Python中的变量引用对象需注意的几点 分类:Python (55)  (0) 普通引用: Python中,变量的作用仅仅是一个标识,只有赋值后才被创建,它可以引用任何类型的对象,而且在引用之前必须 ...

  9. PHP中的 变量 与 常量 详解

    几乎所有的编程语言都会涉及到变量和常量这两个概念,PHP也不例外.本节将介绍PHP语言中的变量和常量的应用方法. 一.什么是变量和常量 在程序执行的过程中,变量存储的值可以随时改变,而常量存储的值是不 ...

随机推荐

  1. glassfish3新建domain

    下载路径:http://download.oracle.com/glassfish/3.1.2.2/release/index.html .zip (解压缩)cd /glassfish3/glassf ...

  2. hdu 5187 快速幂 + 快速乘 值得学习

    就是以那个ai为分水岭,左边和右边都分别是单调增或单调减如图         就这四种情况,其中头两种总共就是两个序列,也就是从头到尾递增和从头到尾递减.         后两种方式就是把序列中德数分 ...

  3. oracle_多字段统计(多count)

    oracle_多字段统计 查询同一张表中同一字段的不同值的综合,方法如下: select o.code 礼品代码, o.name 礼品名称, l.couponactivityid 券活动定义, cou ...

  4. Docker 版本升级

    当前系统版本:Centos 7.4 x64 删除老版本docker sudo yum remove docker docker-common docker-selinux docker-engine ...

  5. Win32程序支持命令行参数的做法

    作者:朱金灿 来源:http://blog.csdn.net/clever101 首先说说Win 32 API程序如何支持命令行参数.Win 32程序的入口函数为: int APIENTRY _tWi ...

  6. labview学习之“创建数组”函数

    “创建数组”函数 一.位置:“函数”-“编程”-“数组”-“创建数组” 其图标为: 图1 图标 二.简介: “创建数组”函数有两种模式,一种是“连接模式”,一种是“添加模式”. 如需切换两种模式,可右 ...

  7. 基于Oracle Sequence的流水号生成规则

    流水号在各种系统中随处可见,一般都是使用自增.年月日时分秒+自增.UUID等,要么纯数字,要么纯字母,这种流水号缺乏一定的辨识度. 下面为大家介绍一种具有辨识度的流水号的生成方式:领域或者应用的标识 ...

  8. JS+Canvas的棋盘游戏和Java的动态结合

    二维数组的题做了有几个了,感觉很有趣,随后想到想做一个五子棋的游戏. 因为前端知识匮乏,但感觉只是Java中去用二维数组做的话还是不太难的. 首先生成15*15的棋盘,(先不考虑前后端交互),其后Ha ...

  9. c#pdf查看器

    Free Spire.PDF for .NET is a Community Edition of the Spire.PDF for .NET, which is a totally free PD ...

  10. UVa 1662 Brackets Removal

    https://vjudge.net/problem/UVA-1662 题意: 给出一个序列,判断序列中哪些括号是可以去掉的,只可以改变符号.输出括号最少的序列. 思路: 感觉这道题目就是写起来繁琐了 ...