python for循环

Python爬虫实战:爬取股票信息

可紊 提交于 2019-12-28 15:47:13
前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者: PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef 本次选题是先写好代码再写的文章,绝对可以用到页面元素解析,并且还需要对网站的数据加载有一定的分析,才能得到最终的数据,并且小编找的这两个数据源无 ip 访问限制,质量有保证,绝对是小白练手的绝佳之选。 郑重声明: 本文仅用于学习等目的。 分析 首先要爬取股票数据,肯定要先知道有哪些股票吧,这里小编找到了一个网站,这个网站上有股票的编码列表:https://hq.gucheng.com/gpdmylb.html 。 打开 Chrome 的开发者模式,将股票代码一个一个选出来吧。具体过程小编就不贴了,各位同学自行实现。 我们可以将所有的股票代码存放在一个列表中,剩下的就是找一个网站,循环的去将每一只股票的数据取出来咯。 这个网站小编已经找好了,是同花顺,链接: http://stockpage.10jqka.com.cn/000001/ 。 想必各位聪明的同学已经发现了,这个链接中的 000001 就是股票代码。 我们接下来只需要拼接这个链接

学习Python没有那么容易,要掌握这些方法

只愿长相守 提交于 2019-12-28 14:29:54
Python怎么学?学习Python没有那么容易,一定要掌握学习方法 Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以小的给各位看官们准备了高价值Python学习视频教程及相关电子版书籍,欢迎前来领取! 学习Python编程技术的流程与步骤,自学与参加培训学习都适用。 推荐下小编的Python学习群;697+518+513,不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括小编自己整理的一份2018最新的Python和0基础入门教程。 每天晚上20:00都会开直播给大家分享Python知识和路线方法,群里会不定期更新最新的教程和学习方法 一、清楚学习目标 无论是学习什么知识,都要有一个对学习目标的清楚认识。 只有这样才能朝着目标持续前进,少走弯路,从学习中得到不断的提升,享受python学习计划的过程。 二、基本python 知识学习 1. 了解Python是什么,都能做些什么? 2. 知道什么是变量、算法、解释器 3. Python基本数据类型 4. 列表和元组的操作方法 5. 字符串操作方法 6. 基本的字典操作方法 以上这些可以略微掌握之后就进行下一步,遇到忘记不会的可以再参考一下书和笔记。 三、掌握Python的条件、循环和相关的执行语句 任何知识它的基础知识都是有些枯燥的,现在我们就可以动手来做一些逻辑层面的东西了。掌握 if、else

python的递归

大兔子大兔子 提交于 2019-12-28 14:28:12
递归算法是一种直接或者间接的调用自身算法的过程。 特点: 1.递归就是在过程或者函数里调用自身。 2.在使用递归策略时,必须有一个明确的递归条件,称为递归出口。 3.递归算法解题通常显得很简洁,但递归算法解题的效率较低。所以一般不倡导使用递归算法设计程序。 4.在递归调用的过程当中系统的每一层的返回点、局部变量等开辟了栈来存储。递归函数次数过多容易造成栈溢出等。 要求: 递归算法所体现的"重复"一般有三个条件: 1.每次在调用规模上都有所缩小(通常是减半)。 2.相邻两次重复之间有紧密的联系,前一次要为后一次做准备(通常前一次的输出就作为后一次的输入)。 3.在问题的规模极小时必须用直接接触解答而不再进行递归调用,因而每次递归调用都是有条件的(以规模未达到直接解答的大小为条件),无条件的递归调用将会成为死循环而不能正常结束。 简而言之,能用循环写的就别用递归 用循环写费脑子 用递归写费内存 还是费脑子好点 斐波那契数列 循环解法 1 def Fib(n): 2 fib = [1,1] 3 if n == 1: 4 return [1] 5 elif n == 2: 6 return [1, 1] 7 elif n > 2 : 8 for i in range(2,n): 9 fib.append(fib[i-2]+fib[i-1]) 10 else: 11 return [] 12

01基础数据类型 文件操作

点点圈 提交于 2019-12-28 13:14:56
目录 前言 计算机的基础知识 计算机由以下几个主要部分组成 python入门的基础知识 python的种类(解释器) 编程语言的种类 变量 简介 变量的命名规范 常量 注释( 重点 ) 初识int str bool数据类型 int(整型): str(字符串) bool type查看数据的类型 input 与print 的注意事项 python的基本语法 if流程语法的基本结构 while循环语句的基本语法结构 3元运算符 格式化输出的3种方式 其他重要知识 运算符 与and运算 数据类型之间的转换 编码的初识 for 循环语句 len 内置函数 range内置函数 python的基本数据类型以及方法 str数据类型 bool数据类型 int数据类型 list数据类型 tuple数据类型 dict数据类型 set数据类型 深浅copy与小数据池(理论) 小数据池的适用场景 深浅copy python文件操作 文件操作是什么? 补充的知识点 编码的详细学习 文件操作的几种方式 前言 本篇博客整合了以下知识点 本篇博客以理论加实际 ,为我全方面解读。 知识点已经列出来了就开干吧 计算机的基础知识 计算机由以下几个主要部分组成 cpu:人类的大脑 内存 临时此处一些数据 解决硬盘和cpu 速度差 硬盘 永久存储数据 操作系统 一个特殊的程序 调度硬件和软件之间的数据交互

排序(python)

我的未来我决定 提交于 2019-12-28 05:03:52
1 # 冒泡算法:是一种简单排序,重复的遍历要排序的数列,一次比较两种元素,如果顺序错误,就交换两者的位置,重复的的进行知道没有在需要交换 2 # 步骤如下: 3 # 冒泡排序算法的运作如下: 4 # 第一次进行遍历,进行n-1次两两比较,将最大(小)的元素,进行放入最后一位,下一次,对前n-2的元素进行两两进行比较.放入最后第二位.... 5 # 时间复杂度为:(稳定) 6 # 最小为o(n),即该序列的有序的序列,最大为o(n),即,第一次要n-1,n-2,n-3...即最大为o(n^2) 7 import random 8 def produce_num(n): 9 return_nums=[] 10 for i in range(n): 11 num=random.randint(1,n) 12 return_nums.append(num) 13 return return_nums 14 def bubble_sort_high(list_): 15 # 进行升序排序 16 # 控制循环轮数 17 for i in range(len(list_)-1): 18 # 每一次遍历,两两比较,得到最大(小)的元素放入,当前循环长度的最后一位 19 for j in range(len(list_)-i-1): 20 # 如果取出的元素大于剩余的元素,则进行交换元素 21

35个高级python知识点

痞子三分冷 提交于 2019-12-28 04:49:57
No.1 一切皆对象 众所周知,Java中强调“一切皆对象”,但是 Python 中的面向对象比Java更加彻底,因为Python中的类(class)也是对象,函数(function)也是对象,而且Python的代码和模块也都是对象。 Python中函数和类可以赋值给一个变量 Python中函数和类可以存放到集合对象中 Python中函数和类可以作为一个函数的参数传递给函数 Python中函数和类可以作为返回值 Step.1 # 首先创建一个函数和一个Python3.x的新式类 class Demo(object): def __init__(self): print("Demo Class") # 定义一个函数 def function(): print("function") # 在Python无论是函数,还是类,都是对象,他们可以赋值给一个变量 class_value = Demo func_value = function # 并且可以通过变量调用 class_value() # Demo Class func_value() # function Step.2 # 将函数和类添加到集合中 obj_list = [] obj_list.append(Demo) obj_list.append(function) # 遍历列表 for i in obj_list: print

Python迭代器

妖精的绣舞 提交于 2019-12-28 01:19:39
一.迭代器   迭代器指的是迭代取值的工具,迭代是指一个重复的过程,每一次重复都是基于上一次结果而来   迭代提供了一种通用的不依赖索引的迭代取值方式   一.可迭代对象     但凡内置有__iter__方法的对象,都称为可迭代对象,可迭代的对象:str,list,tuple,dict,set,文件对象   二.迭代器对象     1既内置又__next__方法的对象,执行该方法可以不依赖索引取值     2.又内置有__iter__方法的对象,执行迭代器的__iter__方法得到的依然是迭代器本身     迭代器一定是可迭代对象,可迭代对象不一定是迭代器对象,文件对象本身就是一个迭代器对象   例如:执行可迭代对象下的__iter__方法,返回一个迭代器对象,在通过迭代器对象的__next__方法取值,如果取值次数超过源值的数量就会报错        执行结果:        for循环本质为迭代器循环   工作原理:     1.先调用in后对象的__iter__方法,将其变成一个迭代器对象     2.调用next(迭代器),将得到的返回值赋值给变量名     3.循环往复直到next(迭代器)抛出异常,for会自动捕捉异常然后结束循环   ps:可以从for的角度,分辨但凡可以被for循环取值的对象就是可迭代对象   迭代器优点:     1

python基础6 迭代器 生成器

半城伤御伤魂 提交于 2019-12-28 01:13:15
迭代器 可迭代的或迭代对象 可迭代的: 内部含有__iter__方法的数据类型叫可迭代的,也叫 迭代对象 , range是一个迭代对象 ,内部含有iter()方法。为什么可迭代对象能被for 循环,因为可迭代对象含有iter方法,只要函数iter方法的对象就可以被for循环。这也是可迭代协议。 运用dir()方法来测试一个数据类型是不是可迭代的的。如果含有iter的,就是可迭代对象、 迭代器协议 迭代器协议 是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常, 以终止迭代 (只能往后走不能往前退)。 迭代器:可以被 next() 函数调用并不断返回下一个值的对象称为迭代器 ,迭代器是一个实现了迭代器协议的对象。也可以这样说包含next方法的可迭代对象叫迭代器 迭代器和列表的区别? 区别在于节省内存和惰性运算 如果我有一个列表中有500个数据,那么这个列表就非常占用内存,如果把列表变为迭代器,就占用很少的内存,为什么会占用内存少呢,因为迭代器只记录当前这元素和下一个元素,当你找我要的时候我才在内存中生成数据,不找我要,就不生成数据,也就不占用内存,这就是迭代器的惰性运算。 如何区分迭代器和可迭代对象?这个在我们时间长了后会混淆。 可迭代对象最简单的定义:可以使用for in 语句进行循环的对象。比如字符串、列表、元组

Python之迭代器和生成器

霸气de小男生 提交于 2019-12-28 01:12:45
迭代器 可迭代的数据类型: list dic str set tuple f=open()--文件句柄 range enumerate 不可迭代的数据类型: int bool 什么叫迭代? 结合我们使用for循环取值的现象,再从字面上理解一下,其实迭代就是,可以将某个数据集内的数据“一个挨着一个的取出来”,就 叫做迭代 。 什么是 可迭代协议 ? 可以被迭代要满足的要求就叫做可迭代协议。 可迭代协议 的定义非常简单,就是内部实现了__iter__方法, 只要含有__iter__方法的都是可迭代的。 可以被for循环的都是可迭代的,要想可迭代,内部必须有一个__iter__方法。 在for循环中,就是在内部调用了__next__方法才能取到一个一个的值。 print(dir[ ]) #告诉我列表拥有的方法 总结:   迭代器遵循 迭代器协议:必须拥有__iter__方法和__next__方法。   可以被for循环的都是可迭代的   可迭代的内部都有__iter__方法   只要是迭代器 一定可迭代   可迭代的.__iter__()方法就可以得到一个迭代器   迭代器中的__next__()方法可以一个一个的获取值   for循环其实就是在使用迭代器   只有是可迭代对象的时候 才能用 for   当我们遇到一个新的变量,不确定能不能for循环的时候,就判断它是否可迭代

python嵌套列表时需注意的坑!!!

泄露秘密 提交于 2019-12-27 20:30:25
Python中有一种内置的数据类型叫列表,它是一种容器,可以用来承载其他的对象(准确的说是其他对象的引用),列表中的对象可以称为列表的元素,很明显我们可以把列表作为列表中的元素,这就是所谓的嵌套列表。嵌套列表可以模拟出现实中的表格、矩阵、2D游戏的地图(如植物大战僵尸的花园)、棋盘(如国际象棋、黑白棋)等。但是在使用嵌套的列表时要小心,否则很可能遭遇非常尴尬的情况,下面是一个小例子。 from random import randint def main ( ) : names = [ '关羽' , '张飞' , '赵云' , '马超' , '黄忠' ] subjs = [ '语文' , '数学' , '英语' ] scores = [ [ 0 ] * 3 ] * 5 for row , name in enumerate ( names ) : print ( '请输入%s的成绩' % name ) for col , subj in enumerate ( subjs ) : scores [row] [col] = float ( randint ( 10 , 100 ) ) print ( scores ) if __name__ == '__main__' : main ( ) 我们希望录入5个学生3门课程的成绩,于是定义了一个有5个元素的列表