2019/09/23 04-IPython使用和封装解构

ipython的简单使用
?这个是整体的一个帮助
在这里插入图片描述
这样就把一些int相关的初始化,当内建函数以及当类怎么做,都告诉你,以及模式方法在这里插入图片描述在这里插入图片描述
??有些可以把源代码显示出来在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
a相当于打印了一下,有输出了
在这里插入图片描述在这里插入图片描述
————三个下划线代表前三次输出,仅限于有out这种在这里插入图片描述在这里插入图片描述
输出的历史,_oh outputhistory在这里插入图片描述在这里插入图片描述
cd切换目录在这里插入图片描述在这里插入图片描述在这里插入图片描述
这些都是工具提供给你一些好的手段而已
直接写touch可以
但是可以这么写ls,!ls
在这里插入图片描述在这里插入图片描述
!可以调用shell命令,调用的是当前shell,当前操作系统的shell在这里插入图片描述
在当前windows操作系统调用的shell,等于再windows命令行调用touch命令
在这里插入图片描述
这个其实windows不支持ls命令,但是用来开源项目就可以支持在这里插入图片描述
前面加!,调用的是当前操作系统的shell在这里插入图片描述在这里插入图片描述在这里插入图片描述
ls是里面提供的
!ls,加上感叹号代表是当前操作系统的shell
在这里插入图片描述在这里插入图片描述
使用%百分号开头,就是内置的特殊方法,这个特殊方法是使用单个百分号开头的
以单个百分号开头就是line magic
%%开头就是cell magic,

我们写的一个个框子叫cell,代表一个个框子,框子内的一行就代表line在这里插入图片描述
%单个百分行只能作用在当前行
%%代表这个框子内部都受到控制

把-1当参数了,带-,以为是个参数
在这里插入图片描述
单行的叫,line magic,单行的魔术方法在这里插入图片描述
这样就只管上面那行,下面管不着
在这里插入图片描述
%%是整个框子,整个cell归他管在这里插入图片描述
%%还有更强大的作用
在这里插入图片描述
在这里插入图片描述
可以给下面送初始值
在这里插入图片描述在这里插入图片描述在这里插入图片描述
可以用别名的方式在这里插入图片描述
%timeit 是单行,后面加语句即可
在这里插入图片描述
指定多少次,每次多少个循环loop,按默认就行,默认也会运行了个几万次,算出平均时间在这里插入图片描述在这里插入图片描述在这里插入图片描述
如果想测试,建议使用cell的这种方式,简单
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
打印当前工作目录,pwd只不过是快捷方式,跟ll 和ls -l类似
在这里插入图片描述
%pwd是ipython,用python源码提供的,!pwd是用你当前操作系统的shell来实现的
在这里插入图片描述
也支持js弹窗,可以调试js代码在这里插入图片描述在这里插入图片描述
这些都是小技巧在这里插入图片描述在这里插入图片描述
封装指的是:
将多个值使用逗号分割,组合在一起,
本质上,返回一个元组,只是省掉了小括号
python特有语法,被很多语言学习和借鉴
在这里插入图片描述在这里插入图片描述
这两种在python是等价的,t生成一个元组,t1,等号右边如果逗号分割,会自动封装成元组的在这里插入图片描述
等号右边如果逗号分割,会自动封装成元组的
在这里插入图片描述在这里插入图片描述
看起来像是a给了b,b给了a,但本质不同,右边先封装,封装成元组,左边再拆开,然后依次对应,虽然达到效果一样,但是和上面实现的方式完全不同
1.上面是借助了一个临时的变量,开辟了一个内存空间,中间没有生成任何元组
2.下面是右边先生成元组,然后把元组拆开赋值给变量,(封装和解构)

在这里插入图片描述在这里插入图片描述
解构:
把线性结构的元素解开,并顺序的赋给其它变量
左边接纳的变量数要和右边解开的元素个数一致(a,b=b,a,右边的元组元素要跟左边的接收的变量个数一致)
在这里插入图片描述
相当于
在这里插入图片描述
下面就等于,实际上先封后解
在这里插入图片描述
在这里插入图片描述
打印出来的时候会被ipython封装成元组
在这里插入图片描述
** __下划线是ipython环境提供的,离开ipython就不作数了**在这里插入图片描述
左边是一个标识符就是赋值,赋值即定义
在这里插入图片描述
变量的数目和右边的元素个数不一致,还多2个在这里插入图片描述
解构在现在的情况,左右的数目必须匹配
一旦左边用到多个标识符,就要用到结构了,结构在一般情况下,左右数目一致

在这里插入图片描述在这里插入图片描述在这里插入图片描述
都是单个数字,只不过凑在一起,打印出来的自动给封装成元组在这里插入图片描述
先从t2找两个出来,0和1的元素
在这里插入图片描述在这里插入图片描述
元组可迭代对象,拿list一包,还是可迭代对象
赋值表达式先看右边计算,右边计算好后,再看左边,如果右边完成不了,就直接抛出异常了
所以赋值表达式,是先算右边的

在这里插入图片描述在这里插入图片描述
set是集合,这个集合里面可以放很多东西,这个构造函数跟list类似,把后面东西可迭代对象,依次扔到set这里面去在这里插入图片描述
增加一个个数t9。
set是一个非线性结构,也可以解开,结构在这种使用情况下有一个基本前提,要求右边的数目和左边的数目一致
左边出现多个标识符就是解构

在这里插入图片描述
** 特殊的标识符,表示尽可能多的收集数据
t7,t8吃掉一个,tail最后一个
*
在这里插入图片描述在这里插入图片描述
出现了两个贪婪的,就会出错在这里插入图片描述在这里插入图片描述在这里插入图片描述
t9[]-1取到最后一项
在这里插入图片描述在这里插入图片描述
没有必要加星号,没星号就等于一个赋值语句,没必要单独使用在这里插入图片描述
放在前面,999被t12拿走了
这就是尽可能多的去吃掉数据,不可以单独使用,没这个必要

在这里插入图片描述在这里插入图片描述
字典的结构有一些区别在这里插入图片描述
字典也是非线性结构,也可以解构在这里插入图片描述
解构其实用的比封装多在这里插入图片描述
这个数目不对
在这里插入图片描述
集合类型
在这里插入图片描述
左右只要数目相同,结构就没有问题
在这里插入图片描述在这里插入图片描述在这里插入图片描述
这种是不被允许的
在这里插入图片描述
在这里插入图片描述
,mid就变成列表了在这里插入图片描述在这里插入图片描述
** _下划线是一个合法的变量,代表一个不关心的变量,
但是在ipython里面,代表前一次的out**
在这里插入图片描述
在python中凡是下划线开头的,都是告诉你有特殊用途的

中间不关心有多少收多少
在这里插入图片描述
想看里面是什么,直接打印即可
在这里插入图片描述在这里插入图片描述
开头和中间都不关心
在这里插入图片描述
前一个被后一个覆盖掉了
访问下划线的时候,前面的会被后面的下划线覆盖掉,所以不是9,而是【8,7】
在这里插入图片描述
类似下面的
在这里插入图片描述在这里插入图片描述
下划线_变量本身没有任何语义,没有任何可读性,所以不是用来给人使用的,除非你猜到是什么意思,否则不要轻易去使用

学了函数,各个函数都会有作用域,互不影响了在这里插入图片描述在这里插入图片描述在这里插入图片描述
不要索引也可以,但是如果在循环中,就需要用到索引加减法在这里插入图片描述
** lst[1][2】**
在这里插入图片描述在这里插入图片描述
做测试可以写成这样
在这里插入图片描述
要结构的话,外层可以不加,但是里面必须要加()
在这里插入图片描述
只要知道结构提取出来就没什么问题,可以不用索引在这里插入图片描述
避免意外情况,只要切一刀就行
在这里插入图片描述在这里插入图片描述
上面是交给ipython打,自动封装成元组,
print打印默认分割是空格

在这里插入图片描述
但是遇到这种问题往往遇到partition函数,返回一个三元组在这里插入图片描述在这里插入图片描述
两层循环,第一层循环管趟数,第二层循环管比较和交换,在里面判断,谁大于谁,怎么样
每一趟假定没有交换过,交换过看下一趟,如果下一次没有交换过,此次循环终止
但是交换的时候最好不要写tmp
还是a,b=b,a这样写,这样写才认为你懂python
在这里插入图片描述在这里插入图片描述在这里插入图片描述
解构,是python提供的好的功能,可以方便的提取复杂数据结构的值
配合_的使用,会更加便利
python就要你使用解构,索引,负索引,怎么方便怎么来

解构,等号右边先封装,左边看情况,单个值就是赋值,多个标识符,就是解构(一般要求两边个数相同,除了用*变量,)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值