Python变量详解

一、变量的定义

  变量:记录事物变化的状态。

  为了让计算机具备人的某项功能,能更好的完成人类下达的任务,由此诞生了变量。

二、变量组成的三部分

变量是有三部分构成。

# 变量名 赋值符号 变量值
name = "Tom"

  

2.1 变量名

  当变量定义的时候,会在内存中申请一块空间专门用来存放变量值,而变量名,就是这个空间的门牌号,能方便的找到这块内存空间。

2.1.1 变量名的命名规范

  变量名要能描述变量值的意思,最好做到顾名知意,合理的变量名命名可以让你的程序的可阅读性提高。

  1. 为了提高自己在程序员中的地位,切记不可用拼音。
  2. 为了提高自己在程序员中的地位,切忌不可用中文。
  3. 不可使用Python中的关键字。
  4. 不可数字开头。

2.1.2 变量名的命名风格

  变量名一般有三种命名方式。

  1. 纯小写+数字+下划线。变量名一般会采用这种方式。
  2. 驼峰体。首字母大写。
  3. 纯大写。这一般是用来定义程序中的常量。注意,这是约定俗成的规范,不是Python本身的语法。

2.2 赋值符号

  这个等号就是变量的赋值符号。它的意义是将右侧的变量值内存地址绑给左侧的变量名,当我们在使用变量名的时候就可以找到变量值了。

2.3 变量值

  变量值就是事物的状态了,定义的之后可以用变量名来访问。变量值有一个引用次数,一旦这块空间被引用次数为0,就意味着我们没有途径能找到这块空间了,如果不进行清理, 会导致内存被占用。一旦找不到这块空间,就会触发Python的内存管理:垃圾回收机制,对该空间进行回收在利用。

三、变量的三个重要特性

3.1 特性

  变量一共有三个特性

  1. id.就是变量值得内存空间地址,每一个值都有唯一一个id。内存地址不同,id就不相同。可以使用id()来查看变量的内存地址。
  2. type。不同类型的值记录事物的状态有所不同,这就是Python的数据类型。可以使用type()来查看。
  3. 变量值。就是存储值的本身。

3.2 is和==

  两者都是用来比较的,但是又不相同。

  is:主要是用来判断两个值是不是属于同一个内存空间,即内存地址是否相同。

  ==:是判断值是否相等,而不管是否是一个内存空间。

3.3 小整数池

  我们不说pycharm中的变化,只说python解释器中的变化。

  通常来说,我们定义两个值相同的变量,他们会存在两个不同的内存空间,如此的话,他们的id肯定会有所不同,但是实际情况是,我们会发现在python交互式环境下,定义的两个值相同的变量的id是相同的,为什么会发生这种变化呢?

  小整数池的概念就来了,当Python解释器运行的饿时候,它会把一些常用的整数和字母先提前定义,我们在使用的时候,不是申请内存空间,而是直接使用的已经定义好的空间,这就是小整数池。

  小整数池的范围是[-5,256],还有纯字母,笔者实验了字母加数字,依然得到id相同。

  注意:python解释器和pycharm有所不同,pycharm中对常用的小整数池进行了扩容,建议开发时以Python解释器为主。

tip:练习作业

#1、病毒程序需要定期将监控到的数据写入日志文件,请记录下日志文件路径C:\a\b\c\adhsvc.dll.system32,方便后期处理
LOGFILELOAD = C:\a\b\c\adhsvc.dll.system32
#2、病毒程序在上传文件时,发送的报头数据里需要包含文件信息:文件名a.txt、大小360,请记录下文件信息
head_info = {"file_name": "a.txt",
"file_size": 360}
#3、程序运行过程中有一段错误日志需要记录下来,错误日志为"上传文件失败"
mis_info = "上传文件失败"
#4、假设我收到一条信息要记录,信息为中病毒客户端的信息"[2020-02-18-17:00:48] 癞蛤蟆病毒感染者-> 80.82.70.187:33649 正在上传数据"
msg_client = "[2020-02-18-17:00:48] 癞蛤蟆病毒感染者-> 80.82.70.187:33649 正在上传数据"
#5、把服务端ip地址存放下来,ip地址为10.0.10.11
server_ip = "10.0.10.11"
#6、病毒程序需要每隔3秒才运行一次,请记录下这个时间间隔
interval_seconds = 3

Python变量详解的更多相关文章

  1. Python 变量详解[学习 Python 必备基础知识][看此一篇就够了]

    您的"关注"和"点赞",是信任,是认可,是支持,是动力...... 如意见相佐,可留言. 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新. 目录 ...

  2. Python—变量详解

    变量赋值 a = 1 b = 2 c = 3 print a, b, c # 1 2 3 a = b = c = 1 print a, b, c # 1 1 1 a, b, c = 1, 2, 3 p ...

  3. 第7.25节 Python案例详解:使用property函数定义与实例变量同名的属性会怎样?

    第7.25节 Python案例详解:使用property函数定义与实例变量同名的属性会怎样? 一.    案例说明 我们上节提到了,使用property函数定义的属性不要与类内已经定义的普通实例变量重 ...

  4. Python闭包详解

    Python闭包详解 1 快速预览 以下是一段简单的闭包代码示例: def foo(): m=3 n=5 def bar(): a=4 return m+n+a return bar >> ...

  5. Maya 常用环境变量详解

    Maya 常用环境变量详解 前言: Maya 的环境变量让用户可以很方便的自定义 Maya 的功能. 在 Maya 的 Help 帮助文档中有专门的一个章节< Environment Varia ...

  6. Shell学习之Bash变量详解(二)

    Shell学习之Bash变量详解 目录 Bash变量 Bash变量注意点 用户自定义变量 环境变量 位置参数变量 预定义变量 Bash变量 用户自定义变量:在Bash中由用户定义的变量. 环境变量:这 ...

  7. python 数据类型详解

    python数据类型详解 参考网址:http://www.cnblogs.com/linjiqin/p/3608541.html 目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8 ...

  8. python线程详解

    #线程状态 #线程同步(锁)#多线程的优势在于可以同时运行多个任务,至少感觉起来是这样,但是当线程需要共享数据时,可能存在数据不同步的问题. #threading模块#常用方法:'''threadin ...

  9. python数据类型详解(全面)

    python数据类型详解 目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8.字典9.日期 1.字符串1.1.如何在Python中使用字符串a.使用单引号(')用单引号括起来表示字 ...

随机推荐

  1. 题解 P3205 【[HNOI2010]合唱队】

    讲讲我的做法 看了题目发现要用区间\(dp\),为什么? 我们发现区间\(dp\)有一个性质--大区间包涵小区间,这道题就符合这样的一个性质 所以我们要用区间\(dp\)来解决这道题. 如何设计状态 ...

  2. AQS机制

    一,Lock接口 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源,比如读写锁).在Lock接口出现之前,Java ...

  3. C 2012年笔试题

    1指出程序段中的错误:分析错误的原因,并进行修改 1.1函数 swap 将两个字符串(字符数组作实参,长度不超过 100)的内容进行交换 void swap(char *pa,char *pb) { ...

  4. 【笔记3-27】Python语言基础

    流程控制语句 if语句 input() if-else if-elif-else

  5. UVA - 11426 欧拉函数(欧拉函数表)

    题意: 给一个数 N ,求 N 范围内所有任意两个数的最大公约数的和. 思路: f 数组存的是第 n 项的 1~n-1 与 n 的gcd的和,sum数组存的是 f 数组的前缀和. sum[n]=f[1 ...

  6. 从使用到原理,探究Java线程池

    什么是线程池 当我们需要处理某个任务的时候,可以新创建一个线程,让线程去执行任务.线程池的字面意思就是存放线程的池子,当我们需要处理某个任务的时候,可以从线程池里取出一条线程去执行. 为什么需要线程池 ...

  7. SVN钩子HOOK设置自动备份,服务本地可以看到所有更新内容。

    可以实现SVN本机备份.或者其他备份.关键是可以保持有一份最新的SVN文件可以查看. 实现SVN与WEB同步,可以CO一个出来,也可以直接用自动更新web目录的方法,我们要在svn版本库中配置钩子来实 ...

  8. Linux下段错误(C语言)

    问题描述:在Linux下编程有时会出现段错误的提醒,出现这种错误有可能是因为以下几种原因 1.数组越界:如果在初始化或者接收输入时内容超过了定义好的数组元素个数时会出现段错误,Linux的数组越界检查 ...

  9. Linux下的ngnix安装与启动

     Linux安装Nginx 1.安装gcc gcc-c++(如新环境,未安装请先安装)$ yum install -y gcc gcc-c++2.安装wget$ yum -y install wget ...

  10. Ubuntu文件(文件夹)创建(删除)

    创建 创建文件: touch a.txt创建文件夹: mkdir NewFolderName 删除 删除文件: rm a.txt删除文件夹: rmdir FolderName删除带有文件的文件夹: r ...