Python中的变量和常量
本文主要介绍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中的变量和常量的更多相关文章
- Python基础-2 变量与常量
变量与常量 变量:在程序运行过程中,值会发生变化的量 常量:在程序运行过程中,值不会发生变化的量 无论是变量还是常量,在创建时都会在内存中开辟一块空间,用于保存它的值. 这里有一点需要注意的是,在py ...
- Python基础部分:5、 python语法之变量与常量
目录 python语法之变量与常量 一.什么是变量与常量 1.什么是变量 2.什么是常量 二.变量的基本使用 1.代码中如何记录事物状态 2.变量使用的语法结构与底层原理 3.变量名的命名规范 4.变 ...
- PHP中的变量与常量详解
几乎所有的编程语言都会涉及到变量和常量这两个概念,PHP也不例外.本节将介绍PHP语言中的变量和常量的应用方法. 一.什么是变量和常量 在程序执行的过程中,变量存储的值可以随时改变,而常量存储的值是不 ...
- python中的变量和数据类型
一.变量定义:变量是计算机内存中的一块区域,存储规定范围内的值,值 可以改变,通俗的说变量就是给数据起个名字. 二.变量命名规则: 1. 变量名由字母.数字.下划线组成 2. 数字不能开头 3. 不可 ...
- Python中的变量、引用、拷贝和作用域
在Python中,变量是没有类型的,这和以往看到的大部分编辑语言都不一样.在使用变量的时候,不需要提前声明,只需要给这个变量赋值即可.但是,当用变量的时候,必须要给这个变量赋值:如果只写一个变量,而没 ...
- TensorFlow中的变量和常量
1.TensorFlow中的变量和常量介绍 TensorFlow中的变量: import tensorflow as tf state = tf.Variable(0,name='counter') ...
- Python 中的变量
Python采用基于值得内存管理模式,赋值语句的执行过程是:首先把等号右侧标识的表达式计算出来,然后在内存中找一个位置把值存放进去,最后创建变量并指向这个内存地址.Python中的变量并不直接存储值, ...
- Python中的变量引用对象需注意的几点
Python中的变量引用对象需注意的几点 分类:Python (55) (0) 普通引用: Python中,变量的作用仅仅是一个标识,只有赋值后才被创建,它可以引用任何类型的对象,而且在引用之前必须 ...
- PHP中的 变量 与 常量 详解
几乎所有的编程语言都会涉及到变量和常量这两个概念,PHP也不例外.本节将介绍PHP语言中的变量和常量的应用方法. 一.什么是变量和常量 在程序执行的过程中,变量存储的值可以随时改变,而常量存储的值是不 ...
随机推荐
- activiti 数据表设计
activiti数据表分为5个部分: 通用数据表.流程存储表.身份数据表.运行时数据表.历史数据表 1.通用(general)数据表 以ACT_GE开头 资源表-act_ge_btyearray: 用 ...
- Linux系统——Nginx基础
Nginx是一个开源的,支持高性能.高并发(特别是静态资源)的www服务和代理服务软件,还具有反向代理复杂均衡功能和缓存服务功能,与lvs负载均衡及Haproxy等专业代理软件相比,nginx部署更简 ...
- Linux系统——http协议原理
Web服务基础 用户访问网页基本流程 (1)在浏览器中输入域名,系统会查找系统本地的DNS缓存及hosts文件信息,查找是否存在域名对应的IP解析记录 (2)DNS解析域名为IP地址,系统会把浏览器的 ...
- hdu 5140 主席树
这题说的是每个员工有工资 水平 在公司待的年限这几个属性,有大量的查询 查的是在一定的水平和工作年限的工人总工资是多少 这个思路是比较简单的我们按照他们的水平排序,排完后,使用主席树不断地往里面插,然 ...
- mongodb的存储引擎
mongodb版本为3.4 mongodb存储引起的一些概述 存储引擎是MongoDB的核心组件,负责管理数据如何存储在硬盘和内存上.从MongoDB 3.2 版本开始,MongoDB 支持多数据存储 ...
- AngularJs 控制台
在控制台查看$scope对象 html: 通过控制器里面的一个元素来获取这个控制器的$scope var node=document.getElementById("NewsVote&quo ...
- pickle & cPickle ValueError: unsupported pickle protocol: 3
pickle and cPickle pickle和cPickle是python对象的转储文件,保存的是python对象 他们分别是python2和python3的对应部分,建议引入的时候采用以下方法 ...
- Python学习札记(三十三) 面向对象编程 Object Oriented Program 4
参考:继承和多态 NOTE 著名的开闭原则: 对扩展开放:允许新增Animal子类: 对修改封闭:不需要修改依赖Animal类型的Animal_func()等函数. 1.eg. #!/usr/bin/ ...
- HDU 2485 Destroying the bus stations(费用流)
http://acm.hdu.edu.cn/showproblem.php?pid=2485 题意: 现在要从起点1到终点n,途中有多个车站,每经过一个车站为1时间,现在要在k时间内到达终点,问至少要 ...
- POJ 2486 Apple Tree(树形dp)
http://poj.org/problem?id=2486 题意: 有n个点,每个点有一个权值,从1出发,走k步,最多能获得多少权值.(每个点只能获得一次) 思路: 从1点开始,往下dfs,对于每个 ...