python for循环

Python中的enumerate函数

筅森魡賤 提交于 2019-12-08 00:51:30
介绍 enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。 Python 2.3. 以上版本可用,2.6 添加 start 参数。 enumerate(sequence, [start=0]) # sequence 是一个序列、迭代器或其他支持迭代对象 # start 注意是下标起始位置,不是从这个位置开始输出 例子 animals = ['dog', 'cat', 'pig', 'bird'] list(enumerate(animals)) # 结果为 [(0, 'dog'), (1, 'cat'), (2, 'pig'), (3, 'bird')] list(enumerate(seasons, start=2)) # 从下标2开始 # 结果为 [(2, 'dog'), (3, 'cat'), (4, 'pig'), (5, 'bird')] 来源: https://www.cnblogs.com/mrdoghead/p/12004141.html

python条件与循环-循环

主宰稳场 提交于 2019-12-07 07:30:34
while语句 while用于实现循环语句,通过判断条件是否为真,来决定是否继续执行。 一般语法 语法如下: while expression: suite_to_repeat 计数循环 >>> cnt = 0 >>> while(cnt < 9): ... print 'the index is ', cnt ... cnt += 1 ... the index is 0 the index is 1 the index is 2 the index is 3 the index is 4 the index is 5 the index is 6 the index is 7 the index is 8 代码块里包含print和自增语句,将被重复执行,知道cnt不下于9。 无限循环 while True: suite_to_repeat 条件表达式一直为真。 for语句 for语句是python提供的另一个循环机制,可以用于遍历序列,可以用在列表解析和生成器表达式中。 一般语法 for循环会访问一个可迭代对象(例如序列或叠加器)中的所有元素,并在所有条目处理过后结束循环。语法如下: for iter_var in iterable: suite_to_repeat 每次循环,iter_var迭代变量被设置为可迭代对象(序列、迭代器或其他支持迭代的对象)的当前元素

python条件与循环-条件

时光怂恿深爱的人放手 提交于 2019-12-07 07:30:32
1.条件和循环 主要讨论:if、while、for以及相关的搭配else、elif、break、continue和pass语句。 1.1 if语句 if语句由三部分组成:关键字本身、用于判断结果真假的条件表达式、以及判断为真或非零时执行的代码块,语法如下: if expression: expr_true_suite 1.2 多重条件表达式 单个if语句可以使用and、or、not等实现多重判断条件。 if experssion1 and expression2: expr_true_suite 1.3 单一语句的代码块 如果一个复合句(if语句、while或for循环)的代码块仅仅包含一行代码,可和前面的语句写在同一行。为了方便可读,一般不这样写。 if expression: expr_true_suite 1.4 else语句 if语句可以和else语句配合使用,如果判断为假,则调用else语句。语法如下: if expression:   expr_true_suite else:   expr_false_suite 特殊用法:可以在while和for循环中使用else语句,在循环中使用时,else子句只在循环完成后执行, 也就是说break语句也会跳过else块 。循环是正常结束的(不是通过break),else子句就会执行。 1 #!/usr/bin/env

Python编程实践 学习笔记

我的梦境 提交于 2019-12-07 02:58:04
Practical Programming-An Introduction to Computer Science Using Python 这本书是Jennifer Campbell等著,唐学韬(汕头大学)译,全书300页,虽内容不多,但个人认为译者比较负责,如未统一的专有词都给出英文原词,全书风格一致。 Python以简单为美,本书也类似风格,是一本实践型入门读物,不是参考手册。因不是第一次接触Python,所以本笔记较粗糙,只记录应该注意的地方。 第一章 引言 Jeannette Wing教授认为计算型思维主要包括以下内容: 强调概念化,而非程序化。计算机科学不是计算机编程。像计算机科学家一样思考,不只要会编程,还要能在多个抽象层次上进行思考。 它是人类(而非计算机)的一种思考方式。 不论何人,不论何处。当计算型思维充分融入到人们的工作学习中,并且如常识般地从我们的注意力中消失时,它就成为了现实。 第二章 你好 Python 注意浮点数的数值精度问题,否则可能冷不丁地出错,数值分析(numerical analysis,研究近似数学算法的学科)本身就是计算机科学和数学领域的最大分支。 round() 内置的四舍五入函数。 形参(parameter,函数定义时的)与实参(argument,函数调用时传入的)的区别。 第三章 字符串 pass 第四章 模块 Python不允许

Python排序算法:插入排序

烈酒焚心 提交于 2019-12-06 22:27:16
什么是插入排序 代码实现 解析 优化插入排序 补小知识点 range()函数 & 和 and 什么是插入排序 插入排序(Insertion Sort)是一种简单直观的排序算法。 通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 插入排序在实现上,在从后向前的扫描过程中,需要把 已排序元素逐步向后挪位 ,为最新元素提供插入空间。 插入排序动图 : (用MD写的,插入的动图貌似是不会动了。。。。) 从第二位开始,依次和前面的数进行比较,第一位默认已经是有序的了; 第三位和前两位依次比较,第四位和前三位依次比较; 前面的元素均为有序,后面为无序; 即: 先将前两个排序 再将前三个排序 前四个 … 一直到最末尾 代码实现 def insertion_sort (list) : n = len(list) for i in range( 1 ,n): for j in range(i, 0 ,- 1 ): if list[j] < list[j- 1 ]: list[j],list[j- 1 ] = list[j- 1 ],list[j] else : break return list 解析 def insertion_sort (list) : n = len(list) for i in range( 1 ,n): 首先,得到数据的长度后,开始从 1

Python高级应用程序设计任务

自闭症网瘾萝莉.ら 提交于 2019-12-06 21:48:34
Python高级应用程序设计任务要求 用Python实现一个面向主题的网络爬虫程序,并完成以下内容: (注:每人一题,主题内容自选,所有设计内容与源代码需提交到博客园平台) 一、主题式网络爬虫设计方案(15分) 1.主题式网络爬虫名称 猎聘招聘信息爬取与分析 2.主题式网络爬虫爬取的内容与数据特征分析 爬取猎聘网的工作岗位名称、公司名称、工作地点、薪资待遇以及学历要求,并把这些数据存储在文件中,以及对薪资待遇进行数据分析。 3.主题式网络爬虫设计方案概述(包括实现思路与技术难点) 首先爬取目标信息,然后将目标信息进行存储,再提取薪资水平,最后对该行业的薪资进行数据可视化分析。 难点:对目标信息进行爬取,以及数据清洗。 二、主题页面的结构特征分析(15分) 1.主题页面的结构特征 通过对猎聘网主题页面的分析可以得出:我们传入的在key后面,以及页码在curPage参数里。接下来,我们只需对这两个地方进行传值即可得到我们想要的URL。 2.Htmls页面解析 通过对页面源代码的分析可以知道,我们想要的目标信息在属性为class="sojob-item-main clearfix"的div标签中,接下来就是爬取目标信息。 3.节点(标签)查找方法与遍历方法 (必要时画出节点树结构) 我们可以利用find_all()方法查找所有属性为class="sojob-item-main

python设置窗口焦点

 ̄綄美尐妖づ 提交于 2019-12-06 17:24:01
# coding:utf-8 import time import psutil import win32gui,win32process,win32con,win32com.client class setf(): def __init__(self): self.gamename='SuperStack.exe' self.shell=win32com.client.Dispatch("WScript.Shell") self.dll=CDLL("user32.dll") def setfocus(self): pid=self.get_pid_for_pname(self.gamename) if pid: for hwnd in self.get_hwnds_for_pid(pid): self.shell.SendKeys('%') self.dll.LockSetForegroundWindow(2) if self.dll.IsIconic(hwnd): win32gui.SendMessage(hwnd, win32con.WM_SYSCOMMAND, win32con.SC_RESTORE, 0) self.dll.SetWindowPos(hwnd,win32con.HWND_TOPMOST,0,0,0,0,win32con.SWP_NOSIZE

CTF中常用的Python脚本

▼魔方 西西 提交于 2019-12-06 16:58:37
分享一下我学习CTF一个月的Python脚本 栅栏密码: #!/usr/bin/env python # -*- encoding: utf-8 -*- ''' @Time : 2018/12/23 09:55:19 @Author : HeliantHuS @Version : 1.0 @Contact : 1984441370@qq.com ''' string = input ( "输入:" ) frequency = [ ] # 获得栅栏的栏数 result_len = len ( string ) # 栅栏密码的总长度 25 for i in range ( 2 , result_len ) : # 最小栅栏长度为2 逐个测试2,3,4.... if ( result_len % i == 0 ) : # 当栅栏密码的总长度 模 i 余数为0 则这个i就是栅栏密码的长度 frequency . append ( i ) for numberOfColumn in frequency : # 循环可能分的栏数 RESULT = [ ] # 保存各栏数的结果 for i in range ( numberOfColumn ) : # i : 开始取值的位置 for j in range ( i , result_len , numberOfColumn ) : # 开始取值,

轻松玩转AI(从Python开始之Python3入门)

天涯浪子 提交于 2019-12-06 16:11:58
轻松玩转AI路径:   从Python开始 [链接]   数据科学 [链接]   机器学习 [链接]   深度学习——神经网络 [链接] 从Python开始: Python3入门 [链接] Python3进阶 [链接] Python3高级编程和异步IO并发编程 [链接] Python3入门 目录: 1. 简介 2. 数据类型 3. 变量、表达式、运算符 4. 流程控制语句 5. 组织结构 6. 面向对象 7. 正则表达式 8. 枚举类型 函数式编程: 9. 闭包 10. 匿名函数 11. 装饰器 1. 简介 Python的特点:简洁 Python是面向对象的语言: 把现实解释中各种各样事物的关系和特征映射到计算机中。 Python适合的领域: 爬虫 大数据与数据分析 自动化运维与自动化测试 Web开发 机器学习 作为“胶水”语言把其他语言开发的模块包装来方便使用 Python不适合的领域: 贴近硬件的代码(首选C) 移动开发:iOS/Android有各自的开发语言(ObjC,Swift/Java) 游戏开发:C/C++ Python和其他语言对比: 2. 数据类型 不可变类型(值类型):数字、字符串、元组 可变类型(引用类型):列表、集合、字典 type(Data) 可查询数据类型函数 isinstance(对象, [数据类型1, 数据类型2]) 可判断对象是否是数据类型1… 1.

当用python读取几十万行文本时,会出现什么状况?

半腔热情 提交于 2019-12-06 14:09:28
前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者:accumulate_zhang 我在使用python读取几十万行的文件中的数据,并构造字典,列表等数据结构时,再访问字典,列表时,一般都会出现内存不够的问题,然后只能循环读取几百行或者一定数量的行数来循环操作。 keyword_list=[line.strip() for line in open("keywords.txt",'r')] #f1=open("part_wiki_vec.txt",'r') f1=open("wiki_vectors.txt") f2=open("result.txt",'w') i=0 content=f1.readlines() while i < 1150: for line in content[ 300* i:300*( i+ 1)] : line= line.strip().split(' ') if line[ 0] in keyword_list: wordvec= ' ' .join( line) print wordvec f2.write( wordvec) # print line i+= 1 我是这样读取的? 应该还有很多好的方法,比如多线程等等。如果你还不是很明白或者正在学习