python基础教程
Huangkaihong
莫那什大学精算和计算机数据科学双专业在读
展开
-
利用tushare与python获取股票数据并可视化
tushare的财经数据接口包是真的好用,作为分析股票的一大利器新版需要获取token在官网注册:https://tushare.pro有的数据需要足够积分才能调去,如果像我一样懒的可以直接捐献买积分就能直接上手使用了!底下是刚入门第一天写的获取多个股票的k线图以及交易量的Bar,并同时输出对应的EXCEL文件与一个HTML文件 # 获取股票k线图# pip install pyecharts==0.5.11,之后版本无Klineimport tushare原创 2020-07-21 13:16:09 · 1997 阅读 · 2 评论 -
解决Mac下jupyter中画图无法显示中文问题
本修复方法只适用于mac用户这个画图没法显示中文的问题给我恶心到了,中间百度了加代码的问题都无法修复,给我气的,折腾了很久第一步:首先,我们需要去GitHub上下载一个SimHei字体,链接为: https://github.com/dolbydu/font在其unicode文件夹下找到SimHei.ttf文件第二步:在jupyter中输入下面代码查看字体路径:import matplotlib print(matplotlib.matplotlib_fname())我的为:/op原创 2020-07-19 12:36:41 · 1875 阅读 · 2 评论 -
python 小技巧: Lambda表达式
lambda:<EG.1>def f(x): return x*x=>f = lambda x: x*x<< print(f(5)).. 25def g(x,y): return x+y=>g = lambda x,y: x+y<< print(g(2,3)).. 5<EG.2>def get_popullation(country): return country[2]=>get_popullation原创 2020-06-26 20:52:32 · 207 阅读 · 0 评论 -
python18:用python实现高斯消元法
"""高斯消元法:分为三部分去解决这个大问题,并且先用例子,再推广为一般式,再转化为python code1. 高斯消元法在化学配平上的体现,如何转化为matrix形式2. 考虑(Upper) triangular systems的解决办法3. general化去解决配平问题4. 整合(为什么要移位的原因在图片3)Part1.some chemistry:Eg.Unbalanced equation:Fe2O3 + C -> Fe + CO2count atoms:AT原创 2020-06-02 17:02:24 · 1396 阅读 · 0 评论 -
isinstance()与type()的区别
isinstance() 与 type() 区别:type() 不会认为子类是一种父类类型,不考虑继承关系。isinstance() 会认为子类是一种父类类型,考虑继承关系。如果要判断两个类型是否相同推荐使用 isinstance()。Eg.isinstance()>>>isinstance(True, bool)>True>>>isinstance(True, int)>True>>>isinstance(False,原创 2020-05-26 17:28:31 · 277 阅读 · 0 评论 -
Recursion Practice
1. The following recursive function nd_min returns the minimum of a list. Fill in the base case:def find_min(lst): #base case return min(lst[0], find_min(lst[1:]))For example:>>> find_min([5, 7, 8 , -5, 10])> -5solution:"non-recursion原创 2020-05-21 11:54:57 · 544 阅读 · 0 评论 -
练习代码追踪
Code traceWhat is the value of x after the code sequence is executed?1.table = []for _ in range(2): row = [None, None] table.append(row)x = table... x = [[None, None][None, None]]2.table = []for _ in range(3): row = [1,2,3] tabl原创 2020-05-19 22:51:58 · 199 阅读 · 0 评论 -
在list中你一定放过的错误
直接上代码看区别<1>.一个":"的区别就是int和list的区别>>> a = [1,2,3,4]>>> a [-1]4>>> a [-1:][4]<2>.a[0:-1]=a[:-1]>>> a = [1]>>> a [:-1][]>>> a[0]1>>> a[-1]1...原创 2020-05-19 17:35:46 · 164 阅读 · 0 评论 -
computation complexity练习题
""" 11 | computational complexity""""##"表示需要注意"11.1 Big-Oh Notation""Polynomial bounds""""1. T(n)=n+10 O(n) (后面省略O)2. T(n)=2n n3. T(n)=5n+15 n4. T(n)=n^2 n^25. T(n)=2n^2 +n n^26. T(n)=n^2−10n−1 n^27. T(n)原创 2020-05-19 16:35:22 · 417 阅读 · 0 评论 -
太无聊了,写个求gcd()和lcm()
求最小公倍数和最大公因数:gcd(18, 12): 求18和12的最大公因数:数学求解过程:18 = 2 * 3 * 312 = 2 * 2 * 3所以 gcd(18, 12) = 2 * 3lcm(18, 12): 求18和12的最大公约数:数学求解过程:18 = 2 * 3 * 312 = 2 * 2 * 3所以 lcm(18, 12) = 2 * 2 * 3 * 3 = 36发现lcm(18, 12) = 18 * 12 / gcd(18, 12)完整代码:def gcd(a原创 2020-05-18 23:10:53 · 299 阅读 · 0 评论 -
插入排序,选择排序,归并排序和快速排序
1. 插入排序 图1 插入排序(图片引用来自:https://cuijiahua.com/blog/2017/12/algorithm_2.html)def insert_sorting(lst): for i in range(1,len(lst)): while lst[i] < lst[i-1] and i > 0: lst[i], lst[i-1] = lst[i-1], lst[i] i -原创 2020-05-17 20:37:20 · 356 阅读 · 0 评论 -
手动实现python里面的方法(16个)
1. method in def is_in(char, string): for item in string: if item == char: return True return False<<< print(is_in('a', 'ABC'))... False2. method sorted()def is_sorted(seq): for i in range(len(seq)-1):原创 2020-05-17 19:28:09 · 214 阅读 · 0 评论 -
Reverse string的三种方法
需要用到的知识:<<< for i in range(5, -1, -1):... print(i) 543210>>> a = 'abcd'>>> a[-1:]'d'>>> a[:-1]'abc'三种reverse string的方法def reverse_string1(str): return str[::-1]print(reverse_string1('abcd'))原创 2020-05-17 13:48:21 · 1340 阅读 · 0 评论 -
python实现BFS(广度优先搜索)& DFS(深度优先搜索)
BFS(广度优先搜索): 图1 BFS 图2 BFS 图3 Queue of BFS 图一是BFS(广度优先搜索)在树的情况下的执行过程,从A出发,搜索A的第二层,发现有B,C,D(必须从左到右搜索),再搜索B的第二层,发现B的第二层没有元素,再搜索C的第二层,发现有E,F,放置于D后面,再搜索D的第二层,发现有G,放置于F后面,再往下搜索E,F,G,发现只有G有第二层H和I,所以最后得到:A B C D E F G H I图二是BF..原创 2020-05-15 00:48:00 · 8161 阅读 · 4 评论 -
带你从练习去了解递归真谛
带你用练习来熟悉递归的用法递归最最最重要的两个point:1. 找到递归结束的条件,如果没有结束的条件,就会陷入无限循环2. 找到不断缩小参数范围的等价式从这两个point去思考题目,再补充剩下的代码,就会轻松许多啦我们来看些练习,题目的要求我会以input和output的形式注释在代码中Example1:def rec_sum(lst): """ input: 由整数组成的list output: 求这些整数的和 """ For example:原创 2020-05-14 22:52:30 · 140 阅读 · 0 评论 -
python reverse list的3种方法
第一种:python内置的reverse方法第二种:遍历每个元素第三种:递归的思想去reverse原创 2020-05-14 14:56:26 · 1542 阅读 · 0 评论 -
带你从0基础入门算法的时间复杂度
试想一下,当两个算法都满足功能性需求时,我们如何去比较他们的好坏呢?那么, 在工程中我们会考虑他们的性价比,即考虑他们的算法效率最开始我们会想到:事后统计法,即比较不同算法对同一组输入数据的运行处理时间。但是它有缺陷:为了获得不同算法的运行时间必须编写相应的程序运行时间严重依赖硬件以及运行时的环境因素算法的测试数据的选取相当困难因此时候统计法是很难实施的我们对算法的时间复杂度的定义就是去看他的elementary step(T(n))接下来我们了解一下基本的命令的cost:先看些原创 2020-05-13 14:46:23 · 249 阅读 · 0 评论 -
汉诺塔递归问题:一个从佛教神话到python代码的蜕变
今天我会用故事的形式带大家了解汉诺塔的问题。我们先从汉诺塔的来源说起,汉诺塔问题是1883年由法国科学家卢卡斯发明的,关于这个游戏有一个传说,传说在佛教里面有一个神叫梵天,他创造世界的时候在印度的胜地贝拿勒斯造了一个庙宇,庙宇里有黄铜做的台子,台子上有三根宝石柱子,在其中一个台子上,梵天放了64个金片,上面小,下面大,一个僧侣在移动着金片,移动的规则是:每次只能移动一片,并且只能从一根柱子移动到另一根柱子必须保证小片在上,大片在下梵天说当这些金片从一根柱子移动到另一根柱子上的时候,世界就会毁灭,原创 2020-05-13 14:33:35 · 336 阅读 · 0 评论 -
踏进python世界的大门
Personal recommend : practice is keyRecommend use : IDLE, PycharmIn the next few days I would teach you:Learn to develop and reason about algorithmsAfter that you can be able to program them in pythonAnd you would start to understand the limitations原创 2020-05-12 18:13:54 · 141 阅读 · 0 评论 -
递归在斐波那契数列和归并排序的应用
递归在斐波那契数列和归并排序的应用引入知识:斐波那契数列:1202年,斐波那契的《算盘书》中提到的兔子数列即著名的斐波那契数列月:1 2 3 4 5 6 7 8…小:1 0 1 1 2 3 5 8…大:0 1 1 2 3 5 8 13…共:1 1 2 3 5 8 13 21…比例: 1 0.5 0.67 0.6 0.625…趋近0.618(黄金分割数)数学表达式:a1=a2=1,a(n) = a(n-1)+a(n-2)生活应用:花瓣个数为斐波那契数,树枝个数也为斐波那契数,向日葵的的叶子个原创 2020-05-11 21:26:06 · 251 阅读 · 0 评论 -
Divide-and-conquer思想在Merge Sort & quick sort的应用
Divide-and-conquer思想在Merge Sort & quick sort的应用分而治之的思想指的是:把原问题(problem)拆分成一个个相似的小问题(subproblem),然后用同样的方法对这些小问题进行处理,最后再合并这些小问题的答案得到原问题的答案一: 归并排序(merge sort)中运用了分而治之(divide-and-conquer)的思想.举个例子:divide-and-conquer application to merge sorting:图中原创 2020-05-11 20:27:55 · 341 阅读 · 0 评论