一.注释

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. 使用Docker 部署MongoDB

    使用 Docker 部署 MongoDB 查看官网安装教程后感觉直接使用包管理器安装mongo比较复杂,本文主要介绍使用docker安装部署mongo的方法,并对基本配置项进行自定义.保姆式全程指导. ...

  2. vctl 使用镜像/换源/mirrors

    ️ 更新:事实证明,以下方法仅对部分镜像有效 换源 VMware16新增vctl管理容器,使用时发现是从docker.io拉取镜像,国内连接网速较慢.官方似乎并没有给出换源方法. 解决方法:从指定的U ...

  3. Python3输出九九乘法表

    for i in range(1,10): for j in range(1,i+1): print('{}x{}={}\t'.format(i, j, i*j), end='') #format格式 ...

  4. Python GUI tkinter 学习笔记(一)

    第一个python程序 #!/usr/bin/python # -*- coding: UTF-8 -*- from Tkinter import * # 创建一个根窗口,其余的控件都在这个窗口之上 ...

  5. CRI容器运行时

    CRI容器运行时 我们知道 Kubernetes 提供了一个 CRI 的容器运行时接口,那么这个 CRI 到底是什么呢?这个其实也和 Docker 的发展密切相关的. 在 Kubernetes 早期的 ...

  6. 职场PUA

    哈哈 你这个的底层逻辑是什么? 顶层设计在哪? 最终交付价值是什么? 过程的抓手在哪里? 如何保证结果的闭环? 你比别人的亮点在哪里? 优势在哪里? 你的思考和沉淀在哪里? 你有形成自己的方法论吗?

  7. Spring cache源码分析

    Spring cache是一个缓存API层,封装了对多种缓存的通用操作,可以借助注解方便地为程序添加缓存功能. 常见的注解有@Cacheable.@CachePut.@CacheEvict,有没有想过 ...

  8. 【转】pringMVC+Hibernate+Spring 简单的一个整合实例

    ref:http://langgufu.iteye.com/blog/2088355 SpringMVC又一个漂亮的web框架,他与Struts2并驾齐驱,Struts出世早而占据了一定优势,我在博客 ...

  9. RabbitMQ 的集群?

    镜像集群模式 你创建的 queue,无论元数据还是 queue 里的消息都会存在于多个实例上,然后 每次你写消息到 queue 的时候,都会自动把消息到多个实例的 queue 里进行消息 同步. 好处 ...

  10. jvm-learning-类加载器分类

    public class ClassLoaderTest { public static void main(String[] args) { //获取系统类加载器 ClassLoader syste ...