杨辉三角、封装结构和集合操作(15)——IPython使用和封装解构

帮助

?  ##Ipython的概述和简介

help(name)  ##查询指定名称和帮助

obj?  ##列出obj对象的详细信息

obj??  ##列出更详细的信息

特殊变量

_表示前一次输出

__表示前二次输出

___表示前三次输出

_oh 输出历史

_oh
{4: 100, 5: 100, 6: 100, 10: [1, 2, 3, 4]}

c=_
c
[1, 2, 3, 4]

pwd 当前目录

_dh 目录历史

pwd
‘C:\\Users\\Administrator‘

cd c:c:
_dh
[‘C:\\Users\\Administrator‘, ‘c:\\‘]

shell命令

!command调用shell命令

!ls
‘ls‘ is not recognized as an internal or external command,
operable program or batch file.

!dir
 Volume in drive C has no label.
 Volume Serial Number is A494-4369

 Directory of c:
2019/10/12  17:34    <DIR>          FusionCloud6.1
2019/10/15  16:33    <DIR>          installtool
2019/10/28  15:16    <DIR>          Program Files
2019/10/31  18:02    <DIR>          Program Files (x86)
2019/08/12  14:45    <DIR>          Users
2019/10/31  17:55    <DIR>          vms
2019/11/01  09:25    <DIR>          Windows
               0 File(s)              0 bytes
               8 Dir(s)  29,517,729,792 bytes free

魔术方法

使用%百分号开头,IPython内置的特殊方法

%magic格式

  %开头是line magic

  %%开头是cell magic

%timeit statement

def primenumber():
    n=9
    row=[1]*n  ##一次性开辟全部空间
    for i in range(n):
        old=1
        for j in range(i//2):
            va=old+row[j+1]
            old=row[j+1]  ##row[j+1]将被覆盖,通过变量old先将row[j+1]保留
            row[j+1]=va
            if i !=2*(j+1):
                row[i-(j+1)]=row[j+1]
            else:
                pass
    #           print(‘***‘)
    #    print(row[:i+1])  ##切片打印列表

%timeit primenumber()
16.7 µs ± 348 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

%%timeit setup_code

%%timeit
n=9
row=[1]*n  ##一次性开辟全部空间
for i in range(n):
    old=1
    for j in range(i//2):
        va=old+row[j+1]
        old=row[j+1]  ##row[j+1]将被覆盖,通过变量old先将row[j+1]保留
        row[j+1]=va
        if i !=2*(j+1):
            row[i-(j+1)]=row[j+1]
        else:
            pass
#           print(‘***‘)
#    print(row[:i+1])  ##切片打印列表
17.4 µs ± 1.69 µs per loop (mean ± std. dev. of 7 runs, 100000 loops each)

原文地址:https://www.cnblogs.com/omgasw/p/11776066.html

时间: 2024-11-02 11:30:31

杨辉三角、封装结构和集合操作(15)——IPython使用和封装解构的相关文章

素数、杨辉三角、封装结构和集合操作(16)——集合及操作

集set 可变的.无序的.不重复的元素的集合 set定义 s1=set() ##定义空set type(s1) set s2={} ##不是set而是字典 type(s2) dict s3={1,2,3} ##非空set可以用此写法定义 type(s3) set s4={'a':1,'b':2} ##字典需要键对定义 type(s4) dict s5=set(range(5)) s5 {0, 1, 2, 3, 4} s6={'abc',2,3,3,'abc',(1,2,3),(2,3),(2,3

js算法集合(二) javascript实现斐波那契数列 (兔子数列) Javascript实现杨辉三角

js算法集合(二)  斐波那契数列.杨辉三角 ★ 上一次我跟大家分享一下做水仙花数的算法的思路,并对其扩展到自幂数的算法,这次,我们来对斐波那契数列和杨辉三角进行研究,来加深对Javascript的理解. 一.Javascript实现斐波那契数列 ①要用Javascript实现斐波那契数列,我们首先要了解什么是斐波那契数列:斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为

列表, 元组,以及字符串等字符结构以及杨辉三角的四种写法

列表的 删除复制等操作: list.remove(value) 删除遇到的第一个值 list.pop(index)就地弹出某个值 list.clear()>>None 清楚 list. reverse反转 list.sort() 排序 *** 列表的复制有浅复制和深复制之别 用=直接复制,表示地址不变,用的仅仅是链接 用shadowcopy,复制的,再列表中的列表的地址不变是链接 用deepcopy才是完全自己开了一个新列表空间 随机数的选取 random模块 dandint(a,b)返回[a

[py]函数中yield多次返回,延迟计算特性-杨辉三角

搞清什么是杨辉三角 每行是一个数组, 第一行: [1] 第二行: [1, 1] 第三行: [1, 2, 2, 1] ... 画的好看点就是,不过没啥卵用 1 / 1 1 / \ / 1 2 1 / \ / \ / 1 3 3 1 / \ / \ / \ / 1 4 6 4 1 / \ / \ / \ / \ / 1 5 10 10 5 1 打印杨辉三角 首先要解决一个函数,多次返回值, 我们知道py函数返回多个值,没啥问题. 但是要多次返回值呢?需要借助生成器来完成, 生成器的好处是可以保留现场

数据结构总结系列(四)——循环队列之杨辉三角

今天我们来写一个循环队列的应用哦! 解决的是杨辉三角问题~~ 对于这样一个上下多层之间有密切联系的数据,如果只是用数组和循环来解决的话,显然会浪费大量的空间和时间, 所以我们用队列来解决这一问题: 之所以选用循环队列也是因为它对于空间的利用是非常有效的,方便我们的工作: 开始定义结构体: typedef struct //定义循环队列 { int data[MAXMIZE]; int Front; int Rear; }RollQueue; 这里的最大值(MAXMIZE)大家可以用宏定义来自己定

数据结构上机4队列-杨辉三角2

#include <stdio.h> #include <malloc.h> #define OK 1 #define OVERFLOW -1 #define ERROR 0 typedef int Status, QElemType; //队列结构定义 typedef struct { QElemType *base; int front; int rear; } SqQueue; //初始化队列 Status InitQueue(SqQueue *Q, int Qsize) {

HDU 5794 A Simple Chess(杨辉三角+容斥原理+Lucas)

题目链接 A Simple Chess 打表发现这其实是一个杨辉三角…… 然后发现很多格子上方案数都是0 对于那写可能可以到达的点(先不考虑障碍点),我们先叫做有效的点 对于那些障碍,如果不在有效点上,则自动忽略 障碍$(A, B)$如果有效,那么就要进行如下操作: 以这个点为一个新的杨辉三角的顶点,算出目标点的坐标$(x, y)$. 目标点的答案减去$C(A, B) * C(x, y)$的值. 但是这样会造成重复计算,原因是障碍之间可能有相互影响的关系. 这个时候就要考虑容斥原理,DFS消除这

递归 正则表达式 杨辉三角

递归 1 1 2 3 5 8 13 21 34 ?1 2 3 4 5 6 7 8 9 ? function dg (n){ if (n == 1 || n == 2) { return 1; } else { return dg(n - 1) + dg(n - 2); } } alert(dg(5)); 正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串

杨辉三角(Pascal Triangle)的几种C语言实现及其复杂度分析

说明 本文给出杨辉三角的几种C语言实现,并简要分析典型方法的复杂度. 本文假定读者具备二项式定理.排列组合.求和等方面的数学知识. 一  基本概念 杨辉三角,又称贾宪三角.帕斯卡三角,是二项式系数在三角形中的一种几何排列.此处引用维基百科上的一张动态图以直观说明(原文链接http://zh.wikipedia.org/wiki/杨辉三角): 从上图可看出杨辉三角的几个显著特征: 1. 每行数值左右对称,且均为正整数. 2. 行数递增时,列数亦递增. 3. 除斜边上的1外,其余数值均等于其肩部两数