一.注释

1.什么是注释

  • 注释就是对代码的解释说明,注释的内容不会被当作代码运行

2.为什么要注释

  • 增强代码的可读性

3.怎么用注释?

  • 代码注释单行和多行注释

    1. 单行注释用#号,可以跟在代码的正上方或正后方
    2. 多行注释可以用三对引号(单双都行)""" """
    3. pycharm注释快捷键
      ctrl + ?

4.代码注释的原则:

  1. 不用全部加注释,只需要为自己觉得重要或不好理解的部分加注释即可
  2. 注释可以用中文或英文,但不要拼音

二.变量

1.什么是变量?

​ 变量就是可以变化的量,量指的是事物的状态,比如人的年龄、性别,游戏角色的等级、金钱等等

2.为什么要有变量?

​ 为了让计算机能够像人一样去记忆事物的某种状态,并且状态是可以发生变化的。

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

3.怎么使用变量(先定义、后使用)

3.1 变量的定义与使用

变量的定义由三部分组成,如下图

日常生活中:
姓名:Jason
年龄:18
爱好:学习
程序中:
username = 'jason'
age = 18
hobby = 'music'

语法格式
username = 'jason'
变量名 赋值符号 变量值

解释器执行到变量定义的代码时会申请内存空间存放变量值,然后将变量值的内存地址绑定给变量名,以变量的定义age=18为例,如下图

底层原理(必会!!!)
遇到赋值符号先看符号右边的再看左边的
age = 18
1.在内存空间中申请一块内存空间存储18
2.将18所在的内存空间地址绑定给变量名age
3.之后如果要访问18就通过变量名age访问即可

通过变量名即可引用到对应的值,用print(age)即可验证

3.2 变量名的命名规范

变量名的命名应该见名知意

如果我们要存储的数据18代表的是一个人的年龄,那么变量名推荐命名为age

age = 18

如果我们要存储的数据18代表的是一个人的等级,那么变量名推荐命名为level

level = 18

1.变量名只能由数字、字母、下划线任意组合
user@name(不对)、_(可以)、pwd_123_aaa(可以)
2.变量名不能以数字开头,下划线建议不要开头因为有特殊含义
3.变量名不能与关键字冲突,比如print就不能是变量名
4.变量名的命名一定要做到见名知意,这个是核心。(重要)

3.3 变量名的命名风格

1.驼峰体

​ 大驼峰 # 所有的单词首字母大写

​ UserNameFromDb

​ 小驼峰 # 第一首字母小写其余首字母大写

​ userNameFromDB

​ JavaScript推荐使用驼峰体

  1. 下划线 # 单词与单词之间的下划线隔开

    ​ user_name_from_db

    python推荐使用下划线

3.4 变量三要素

1.变量的值
2.变量的内存地址
3.变量的数据类型

name = 'jason'
print(name) # 值
print(id(name)) # 一串数字 相当于是内存地址编号
print(type(name)) # 数据类型 <class 'str'>

一个变量名只能指向一个内存地址
一个内存地址可以有多个变量名指向

三. 常量

3.1 什么是常量?

常量是值在程序运行过程种不会改变的量

3.2 为什么要有常量?

在程序运行过程种,有些值是固定的、不应该被改变的,比如圆周率3.1415926......

3.3 怎么使用常量

在python中没有真正意义上的常量 我们墨守成规的将全大写的变量看成是常量

HOST = '127.0.0.1' # 一般情况下在配置文件中使用较多

在其他编程语言中是存在真正意义上的常量 定义了就无法修改
const pi = 3.14 # 定义常量
pi = 4 # 不支持修改

四. 垃圾回收机制

4.1 什么是垃圾回收机制?

垃圾回收机制(简称GC)是Python解释器自带一种机制,专门用来回收不可用的变量值所占用的内存空间

4.2 为什么要用垃圾回收机制?

程序运行过程中会申请大量的内存空间,而对于一些无用的内存空间如果不及时清理的话会导致内存使用殆尽(内存溢出),导致程序崩溃,因此管理内存是一件重要且繁杂的事情,而python解释器自带的垃圾回收机制把程序员从繁杂的内存管理中解放出来。

4.3 垃圾回收机制原理分析

  1. 引用计数

    内存中变量值身上有几个变量名绑定引用计数就是几,只要为0就是垃圾

  2. 标记清除

    当内存即将沾满的时候 python会自动暂停程序的执行 从头到尾将内存中数据进行扫描
    并打上标记 之后一次性清除掉标记的数据

  3. 分代回收

    分代回收是一种以空间换时间的操作方式,Python将内存根据对象的存活时间划分为不同的集合,每个集合称为一个代,Python将内存分为了3“代”,分别为新生代(第0代)、青春代(第1代)、老年代(第2代),他们对应的是3个链表,它们的垃圾收集频率与对象的存活时间的增大而减小。新创建的对象都会分配在新生代,新生代链表的总数达到上限时,Python垃圾收集机制就会被触发,把那些可以被回收的对象回收掉,而那些不会回收的对象就会被移到青春代去,依此类推,老年代中的对象是存活时间最久的对象,甚至是存活于整个系统的生命周期内。同时,分代回收是建立在标记清除技术基础之上。分代回收同样作为Python的辅助垃圾收集技术处理那些容器对象。

python的注释、变量、常量基础的更多相关文章

  1. python 基础之注释变量常量

    一:注释 注释: 就是对代码的解释 方便大家阅读代码 1.注释的分类 (1)单行注释 #  在python中在行首添加一个#号就将这一行进行注释 #单行注释: 用#开头,后面跟上任意字符串 #pyth ...

  2. Python入门 .变量 常量 基础数据类型 用户输入 流程控制语句 小练习题

    # 2.name = input(“>>>”)通过代码来验证name变量是什么数据类型?--str name = input(">>>") pr ...

  3. Python 入门学习 -----变量及基础类型(元组,列表,字典,集合)

    Python的变量和数据类型 1 .python的变量是不须要事先定义数据类型的.能够动态的改变 2. Python其中一切皆对象,变量也是一个对象,有自己的属性和方法 我们能够通过 来查看变量的类型 ...

  4. 【python基础】第04回 变量常量

    本章内容概要 1. python 语法注释 2. python 语法之变量常量 3. python 基本数据类型(整型(int),浮点型(float),字符串(str)) 本章内容详解 1. pyth ...

  5. Python第一讲以及计算机基础

    本周课程安排 python基础(五天) 下周课程安排 tableau图形化表制作 下下周课程安排 spss 今日内容概要 计算机发展史 计算机主要硬件 编程与编程语言 python解释器及IDE编辑器 ...

  6. Java之--Java语言基础组成(关键字、标识符、注释、常量和变量、运算符)

    Java语言基础组成-关键字.标识符.注释.常量和变量.运算符 Java语言由8个模块构成,分别为:1.关键字:2.标识符(包名.类名.接口名.常量名.变量名等):3.注释:4.常量和变量:5.运算符 ...

  7. 第二十一节:Java语言基础-关键字,标识符,注释,常量和变量,运算符

    Java语言基础-关键字,标识符,注解,常量和变量,运算符 class Demo { public static void main(String[] args){ System.out.printl ...

  8. java基础基础总结----- 关键字、标识符、注释、常量和变量、运算符、语句、函数、数组(三)

    Java语言基础组成:关键字.标识符.注释.常量和变量.运算符.语句.函数.数组 一.标识符 标识符是在程序中自定义的一些名称,由大小写字母[a-zA-Z],数字[0-9],下划线[ _ ],特殊字符 ...

  9. pycharm的基本使用 、 Python的注释语法,变量,常量,垃圾回收机制,数据类型

    1.文件路径要注意 我把文件放在了D盘,如下图:你们可以根据自身情况设置 2.python环境要选择本地下载好的 如下图: 点击本机存在的环境,如果提示NO interpr,就点击第二步 如果还是没有 ...

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

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

随机推荐

  1. CF437C题解

    思路很妙/youl 题目大意见翻译,说得很清楚/youl 首先,这个图到最后所有点都会被删除,所以所有边都会被删除. 但是考虑点的贡献会很麻烦,所以在这里我们考虑边的贡献. 边的贡献就是,左端点和右端 ...

  2. Java基础——Math类

    Math包含执行基本数字运算的方法 没有构造方法的情况下如何使用类中的成员? 看类的成员是否都是静态的,是的话可以直接通过类名调用 Mathl类的常用方法: 方法名 说明 public static ...

  3. Arch Linux 系统迁移

    镜像下载.域名解析.时间同步请点击 阿里巴巴开源镜像站 备份 Arch Linux 系统 安装 pigz 使用 pigz 多线程压缩比使用 tar 单线程压缩速度明显提升多倍 sudo pacman ...

  4. 6月29日学习总结 Django自带的用户认证

    Django自带的用户认证 我们在开发一个网站的时候,无可避免的要设计.实现网站的用户系统.此时我们需要实现包括但不限于用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. D ...

  5. Flash XSS

    示例: 创建一个测试flash,代码如下,导出swf文件 //取m参数 var m=_root.m; //取showInfo参数 var showInfo=_root.showInfo; //调用ht ...

  6. SINAMICS S120的核心控制单元CU320使用教程,电机模块接线

    SINAMICS是西门子公司新一代的驱动产品,它正在逐步取代现有的MASTERDRIVES及SIMODRIVE系列的驱动系统.SINAMICS S120是集V/f控制.矢量控制和伺服控制于一体的多轴驱 ...

  7. [bzoj1791][ioi2008]Island 岛屿(基环树、树的直径)

    [bzoj1791][ioi2008]Island 岛屿(基环树.树的直径) bzoj luogu 题意可能会很绕 一句话:基环树的直径. 求直径: 对于环上每一个点记录其向它的子树最长路径为$dp_ ...

  8. mysql覆盖索引与回表

    mysql覆盖索引与回表 Harri2012关注 62019.07.28 11:14:15字数 1,292阅读 77,322 select id,name where name='shenjian' ...

  9. java 基础知识(四)

    自己写一个简单的Map 清浅池塘 程序员,专栏:Java那些事儿唯一作者,咨询前请先点详细资料   130 人赞同了该文章 许多许多年以前,在自学Java的时候,笔者曾经写过一个简单的Map,当年很有 ...

  10. java动态代理--代理接口无实现类

    转载:https://blog.csdn.net/weixin_45674354/article/details/103246715 1.接口定义: package cn.proxy; public ...