学习python的第四天
python的垃圾回收机制
一.Jupyter的安装以及运行
1.Jupyter的安装
运行CMD,在CMD中输入pip3 --default-timeout=100 install -U jupyter
再输入pip3 install jupyter_contrib_nbextensions
再输入jupyter contrib nbextension install --user
关于pip3 --default-timeout=100 install -U jupyter的详细意思
pip3:pip3及为pip3.exe ,是在E:\python\Scripts\中pip3.exe(需要提前在环境变量path中设置路径)
--default-timeout=100:下载过程中允许出现100ms的延迟在100ms内未能读取数据下载不会中断
install:下载
-U jupyter:为下载应用的名称
其中jupyter中插件安装也一样,及再cmd中运行,在jupyter中找到需要安装的插件名称
然后输入为pip3 instal (插件名称)
2.jupyter的运行
1.首先新建一个文件夹用于放jupyter制作完成的文件
2.运行cmd
行cmd
3.在CMD中将路径找到之前新建的文件夹
4.在路径后面输入jupyter notebook
3.jupyter中快捷键
shift+enter 运行程序
esc+M 切换至与Typora一样的界面
二.小整数池
python中自带的几个变量值,[-5,256]中
三.python垃圾回收机制
当变量值引用次数为0时,该变量值会被自动删除
如:
x = 6666
del (x)
其中666会被回收
x =1
del(x)
其中1不会被回收,应为1为小数整池[-5,256]
四.引用计数:变量值的引用次数
如:引用的值在小整数池中
x=1
y=1
z=1
1的引用次数为3,因为1位小整数池中的变量值,位置一样,XYZ引用的是同一个值,所有1的引用次数为3
如:引用的值不在小整数池中
x = 257
y = 257
z = 257
257的引用次数为1,因为257不是小整数池中id不一样,其中的XYZ都引用不同位置中的257,所以257的引用次数为1
五.个人举例记忆,几种情况下的引用次数
x = 1
y = 1
z = 1
引用次数为3
x = 257
y = 257
z = 257
引用次数为1
以上两种情况发生的不同,是由于引用的变量值是否为小整数池中值有关
x = 1
y = x
del(x)
print(y)
#会正确的打印出y的值,因为在删除X时候,Y以及被赋予1
x = 1
del(x)
y = x
print(y)
#会报错,因为在X想赋予Y的时候,X以及被删除了,后续y = x中X仅仅为一个新的变量名没有被赋予任何值所有y不会被赋予任何一个值。则最后无法打印出一个空的y变量
五.今日题目
- 简述Python垃圾回收机制:当变量值引用次数为0时,该变量值会被自动删除
- 对于下述代码:
x = 10
y = 10
z = 10
del y
10的引用计数为多少?次数为1
x = 257
y = x
del x
z = 257
x对应的变量值257的引用计数为多少?次数为2
简述Python小整数池概念:python当中固定自带的的值,在[-5,256]中
对于
x = 10,请用Python代码分别打印变量值、变量值内存地址和变量数据类型。#打印变量值
print(x)
#打印变量值内存地址
print(id(x))
#变量类型
print(type(x))
对于下述代码:
x = 257
y = x
z = 257
请判断x、y、z的变量值是否相同?x、y、z的所在的内存地址是否相同?请用python代码阐述为什么?
x = 257
y = x
z = 257
#x,y,z的变量值
x == y == z
ture
#x,y,z的内存地址
id(x) == id(y) != id(z)
x is y is z(is表示判断内存地址是否相同)
ture
学习python的第四天的更多相关文章
- 学习python第十四天,模块
Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地组织你的 Python 代码段. 把相关的代码 ...
- python学习笔记(基础四:模块初识、pyc和PyCodeObject是什么)
一.模块初识(一) 模块,也叫库.库有标准库第三方库. 注意事项:文件名不能和导入的模块名相同 1. sys模块 import sys print(sys.path) #打印环境变量 print(sy ...
- python学习笔记--Django入门四 管理站点--二
接上一节 python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...
- Python学习笔记(十四)
Python学习笔记(十四): Json and Pickle模块 shelve模块 1. Json and Pickle模块 之前我们学习过用eval内置方法可以将一个字符串转成python对象,不 ...
- python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法
python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法window安装redis,下载Redis的压缩包https://git ...
- 分四个阶段学习python并找到一份好工作
第一阶段 关注公众号"轻松学编程"了解更多. 详细学习资料 需要时间一个月. 1.python概念 python是一种解释型.面向对象.动态数据类型的高级程序语言. 理解: ...
- 初学 Python(十四)——生成器
初学 Python(十四)--生成器 初学 Python,主要整理一些学习到的知识点,这次是生成器. # -*- coding:utf-8 -*- ''''' 生成式的作用: 减少内存占有,不用一次性 ...
- 编程零基础应当如何开始学习 Python?
提前说一下,这篇福利多多,别的不说,直接让你玩回最有手感的怀旧游戏,参数贴图很方便自己可以根据喜好修改哦. 本篇通过以下四块展开,提供大量资源对应. 选一个好版本 有没有看过<在下坂本,有何贵干 ...
- 学习Python不得不关注和学习的国外大神博客
注意 : 本文收集于网路 . 由于常常更新 , 有些链接打不开, 请自备梯子 在学习Python过程中,总会遇到各种各样的坑, 虽然Python是一门优美而简单易学的语言 . 但当学习后 , 总想着更 ...
随机推荐
- ElasticSearch本地调测环境构建
ElasicSearch版本:6.0.0:https://github.com/elastic/elasticsearch.git 1:安装JVM(JVM1.8以上) 2:安装gradle(3.3以上 ...
- var与let、const的区别
var与let.const 一.var声明的变量会挂载在window上,而let和const声明的变量不会: var a = 100;console.log(a,window.a); // 100 1 ...
- JavaScript(三、DOM文档对象模型)
一.什么是DOM DOM 是 Document Object Model(文档对象模型)的缩写. DOM 是 W3C(万维网联盟)的标准. DOM 定义了访问 HTML 和 XML 文档的标准: &q ...
- Netty 笔记
1.Netty 是一款异步的事件驱动的网络应用程序框架,支持快速地开发可维护的高性能的面向协议的服务器和客户端. 2.早期Java API 使用的阻塞函数 // 创建一个新的ServerSocket, ...
- Fiddler抓包工具证书安装
转自:https://www.cnblogs.com/hushaojun/p/6385947.html Fiddler证书安装(查看HTTPS) 现在很多带有比较重要信息的接口都使用了安全性更高的HT ...
- socket编程中客户端常用函数
1 常用函数 1.1 connect() int connect(int sockfd, const struct sockaddr *servaddr, socklen_taddrlen); 客 ...
- PAT1011:World Cup Betting
1011. World Cup Betting (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Wit ...
- BigDecimal.setScale 处理java小数点
BigDecimal.setScale()方法用于格式化小数点setScale(1)表示保留一位小数,默认用四舍五入方式 setScale(1,BigDecimal.ROUND_DOWN)直接删除多余 ...
- java线程间通信之通过管道进行通信
管道流PipeStream是一种特殊的流,用于在不同线程间直接传送数据,而不需要借助临时文件之类的东西. jdk中提供了四个类来使线程间可以通信: 1)PipedInputStream和PipedOu ...
- mysql分表经验总结
一.为什么要分表? 当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,有可能会死在那儿了.分表的目的就在于此,减小数据库的负担,缩短查询时间.根据个人经验,mysql执行一个s ...