pycharm快捷键的使用

ctrl+c复制,默认复制整行

ctrl+v粘贴

ctrl+z撤销

ctrl+x剪切,默认剪切整行

ctrl+a全选

ctrl+f查找;选中批量修改

shift+ctrl+z取消撤销

ctrl+d复制粘贴选中内容,没有选中默认整行

ctrl+backspace删除一个单词

shift+enter换行

ctrl+shift+r全局搜索

ctrl+shift+f10运行当前代码

ctrl+alt+l格式化代码

ctrl+/整体注释

home回到首行

end回到行尾

ctrl+end回到末尾

变量

变量:定义世间万物变化的状态

变量名:起到描述作用,接收变量赋值

赋值符号:赋值

变量名 赋值符号 变量值

a=1

变量名命名规则:变量名由数字字母下划线组成,数字不能放最前面。

python内存管理

每当给变量名赋值时内存便会开辟一块空间用于存储变量值,当变量值的引用计数为零时,垃圾回收机制会回收这块内存。

小整数池

当python解释器启动时,会专门开辟一块内存用于存储[-5,256]

范围内的整数,这块内存不会被回收。

引用计数

一个变量值被赋值给几个变量名,这个变量值的引用计数就是几。

垃圾回收机制

1.引用计数

给对象添加一个引用计数器,每当有一个地方引用,引用计数就会加一,每当减少一个引用,引用计数就会减一,当该计数器的值为零时,表示该对象可以被回收。

2.标记清除

Python采用了“标记-清除”(Mark and Sweep)算法,解决容器对象可能产生的循环引用(当两个变量相互引用时它们的引用计数始终不为零)问题。(注意,只有容器对象才会产生循环引用的情况,比如列表、字典、用户自定义类的对象、元组等。而像数字,字符串这类简单类型不会出现循环引用。作为一种优化策略,对于只包含简单类型的元组也不在标记清除算法的考虑之列)

跟其名称一样,该算法在进行垃圾回收时分成了两步,分别是:

A)标记阶段,遍历所有的对象,如果是可达的(reachable),也就是还有对象引用它,那么就标记该对象为可达;

B)清除阶段,再次遍历对象,如果发现某个对象没有标记为可达,则就将其回收。

3.分代回收

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

循环引用

当容器类型中有两个或多个元素相互引用时就会出现循环引用问题,就是它们(容器类元素)的引用计数始终不会为零,这个问题是垃圾回收机制所要解决的最重要的问题。

循环引用暂时参考如下链接

循环引用问题

变量的三种打印形式

x=1
print(x)#打印变量值
print(id(x))#打印变量值的存储地址
print(type(x))#打印变量值的数据类型

数字类型

整型(int)浮点型(float)

i=1#int
j=1.1#float
k=int(j)#int

字符串

就是一串字符,用单引号、双引号、单三引号、双三引号括起来使用。后两者可用于带换行的字符串或多行注释。

注释

单行注释

''' ''' 或""" """多行注释

pycharm快捷键的使用、内存管理、变量、数据类型、注释相关笔记的更多相关文章

  1. Day 03 知识点[python程序运行的方式、变量、注释、内存管理、数据类型]

    执行Python程序的两种方式 第一种:交互式,在cmd中运行 优点:调试程序方便,直接给出结果 缺点:无法保存,关掉cmd窗口数据就消失 第二种:命令行式通过cmd中输入Python3文本 优点:数 ...

  2. Python内存管理以及数据类型

    一.内存管理 1.Cpython解释器的垃圾回收机制 什么是垃圾:当一个值身上没有绑定任何变量名(该值的引用计数=0)时,该值就是一个垃圾. Cpython解释器就会自动回收这样的垃圾. #引用计数增 ...

  3. python常量 变量 数据类型 注释 交互 if语句

    1.认识python python的创始人吉多·范罗苏姆(Guido van Rossum )龟叔在89年圣诞节开始开发python python属于解释型语言,强类型定义语言. 编译型/解释型:编译 ...

  4. 变量、数据类型、python内存管理

    pycharm快捷键 ctrl + c 复制, 默认复制整行 ctrl + v 粘贴 ctrl + x 剪切 ctrl + a 全选 ctrl + z 撤销 ctrl + f 查找 ctrl + sh ...

  5. python-面试常用 --变量、内存管理(小整数池,引用计数)

    执行Python程序的两种方法 第一种:交互式(jupyter就是对这种进行了封装) 优点:直接给出结果 缺点:无法保存 第二种:命令行式,通过Python解释器输入文本(pycharm对这种进行了封 ...

  6. 变量 + 数据类型(数字 + 字符串)(day03整理)

    目录 一.上节课回顾 四 编程语言分类 (一) 机器语言 (二)汇编语言 (三) 高级语言 (四) 网络瓶颈效应 五.执行python程序两种方式 (一) 交互式(jupytre) (二) 命令行式( ...

  7. PHP内核(一)内存管理

    本文链接:http://www.orlion.ml/tag/php-internal/ 一.内存管理基础 用c语言开发时,开发者要手动进行内存管理.PHP经常作为web服务器的模块,内存管理与预防内存 ...

  8. iOS 进阶—— iOS 内存管理

    1 似乎每个人在学习 iOS 过程中都考虑过的问题 alloc retain release delloc 做了什么? autoreleasepool 是怎样实现的? __unsafe_unretai ...

  9. 启动期间的内存管理之bootmem_init初始化内存管理–Linux内存管理(十二)

    1. 启动过程中的内存初始化 首先我们来看看start_kernel是如何初始化系统的, start_kerne定义在init/main.c?v=4.7, line 479 其代码很复杂, 我们只截取 ...

随机推荐

  1. day68—angularJS学习笔记之-过滤器

    转行学开发,代码100天——2018-05-23 今天学习angularJS的过滤器的使用. angular中的常用过滤器用来修改数据格式,主要有以下几类: 1.大写,| uppercase 2.小写 ...

  2. Java定时器Timer

    Java定时器Timer在JDK库中,Timer类主要负责计划任务的功能,也就是在指定的时开始执行某一个任务.Timer类的主要作用就是设置计划任务,但封装任务的类却是TimerTask类,执行计划任 ...

  3. Jmeter接口测试系列之保存断言结果到文件

    在执行完接口测试用例后,我们需要将失败的用例结果统一保存到文件中,可以使用“断言结果”组件,并定制输出内容. 1.配置断言结果组件输出 (1.在文件名中配置需要保存的文件路径和文件名: (2.勾选仅日 ...

  4. VS2012下std::function的BUG解决办法

    VS2012版本下std::function存在问题,链接:https://stackoverflow.com/questions/13096162/stdfunction-not-compiling ...

  5. jenkins中通过Publish Over SSH将项目部署到远程机器上

    Publish Over SSH插件使用在使用Publish Over SSH之前,需要制作SSH私钥.机器间做免密登录配置.假设机器A,ip为192.168.AA.AAA,机器B: 192.168. ...

  6. redis在ubuntu下的安装

    安装: 1.apt-get install redis 2.接下来输入redis-cli,登陆redis,然后就可以操作redis了 卸载 在ubuntu下卸载redis 1. 卸载软件 apt-ge ...

  7. 数据结构系列之2-3-4树的插入、查找、删除和遍历完整版源代码实现与分析(dart语言实现)

    本文属于原创,转载请注明来源. 在上一篇博文中,详细介绍了2-3树的操作(具体地址:https://www.cnblogs.com/outerspace/p/10861488.html),那么对于更多 ...

  8. 用matplotlib对数据可视化

    下图是要用到的数据集,反映了从1984到2016年的失业率的变化 1.导入可视化模块import matlibplot.pyplot as plt, 函数plt.plot(x, y)确定折线图的点,x ...

  9. 深入理解java:1.1. 类加载器

    从java的动态性到类加载机制   我们知道,Java是一种动态语言. 那么怎样理解这个“动态”呢? 或者说一门语言具备了什么特性,才能称之为动态语言呢? 对于java,我是这样理解的. 我们都知道J ...

  10. Java本周总结1

    这两周我上认真的课应该就是李老师的课了/ 第一周主要跟我们讲述了java的发展史何java开发环境的搭建,带领我们走进了java,李老师的精彩讲述让我们对Java有了深刻的认识/. jdk下载安装包我 ...