python for循环

python之路——迭代器与生成器

落花浮王杯 提交于 2019-12-29 17:59:18
要了解for循环是怎么回事儿,咱们还是要从代码的角度出发。 首先,我们对一个列表进行for循环。 for i in [1,2,3,4]: print(i) 上面这段代码肯定是没有问题的,但是我们换一种情况,来循环一个数字1234试试 for i in 1234 print(i) 结果: Traceback (most recent call last): File "test.py", line 4, in <module> for i in 1234: TypeError: 'int' object is not iterable iterable:是可迭代的意思。 首先,我们从报错来分析,好像之所以1234不可以for循环,是因为它不可迭代。那么如果“可迭代”,就应该可以被for循环了。 这个我们知道呀, 字符串、列表、元组、字典、集合 都可以被for循环,说明他们 都是可迭代的 。 我们怎么来证明这一点呢? from collections import Iterable l = [1,2,3,4] t = (1,2,3,4) d = {1:2,3:4} s = {1,2,3,4} print(isinstance(l,Iterable)) print(isinstance(t,Iterable)) print(isinstance(d,Iterable)) print

Python基础(三)

Deadly 提交于 2019-12-29 02:53:40
目录 1.list (1)定义方法 (2)下标 (3)切片 (4)反向遍历 A.[::-1] B.使用内置函数reversed() C.使用列表方法.reverse() (5)列表推导式 (6)列表的常用函数 A.extend() B.append() C.insert() D.pop() E.remove() F.len() G.sorted()与sort() H.enumerate() I.zip() 2.元组 (1)定义方法 (2)特点 (3)应用 1.list list是一种可变的有序容器,每个元素都拥有自己的下标.列表使用[]定义. (1)定义方法 x = [1,2,3] #第一种,使用[] y = x #第二种,赋值 y = list({1,2,3}) #第三种,使用强制转换函数 (2)下标 下标从0开始,允许负数作为下标,最后一个元素的下标为-1,第一个元素的下标为-n,第i个元素的下标为(i-1)或-(n-i+1). (3)切片 设x是一个列表,则 x[start:end:step] 为列表的一个切片,start为起始位置,包含,可以省略,end为结束位置,不包含,可以省略,step为步长,可以省略,默认为1. 三者都可以为负数. 三者都省略时为整个列表,反向遍历时可以省略start与end,步长设为-1: (4)反向遍历 反向遍历有三种方法: A.[::-1]

【译】Python数据结构

余生颓废 提交于 2019-12-29 02:48:53
本章将更详细地描述您已经学到的一些内容,并添加了一些新的内容。 5.1  关于列表的更多内容 列表数据类型有一些更多的方法。 以下是列表对象的所有方法:    list. append ( x ) 将项目添加到列表的末尾;等价于a[ len(a) : ] = [x]   list. extend ( L ) 通过追加给定列表的所有项目来扩展列表;等价于a[ len(a) : ] = L   list. insert ( i, x ) 在给定的位置插入一个项目,第一个参数是插入前元素的索引,因此,a.insert(0, x)在列表的最前端插入元素x,a.insert(len(a), x)等价于a.append(x)   list. remove ( x ) 从列表中移除值为x的第一个项目,如果没有此项目,将会发生错误。   list. pop ([ i ]) 在给定的位置移除列表中的项目并返回这个项目。如果未指定索引。a.pop()移除并返回列表中的最后一个项目,方法签名中的i周围的方括号表示参数是可选的,你不应该在那个位置中键入方括号。你将在Python参考库中频繁地看到这个符号。   list. index ( x ) 返回列表中值为x第一个项目的索引,如果没有此项目,将会发生错误。   list. count ( x ) 返回列表中x出现的次数   list. sort (

python圣地

落爺英雄遲暮 提交于 2019-12-29 02:38:28
运算符 1、算数运算: 2、比较运算: 3、赋值运 算: 4、逻辑运算: 5、成员运算: 6、身份运算: 7、位运算: 8、运算符优先级: 1 a = 60 # 60 = 0011 1100 2 b = 13 # 13 = 0000 1101 3 c = 0 4 5 c = a & b; # 12 = 0000 1100 6 print "Line 1 - Value of c is ", c 7 8 c = a | b; # 61 = 0011 1101 9 print "Line 2 - Value of c is ", c 10 11 c = a ^ b; # 49 = 0011 0001 12 print "Line 3 - Value of c is ", c 13 14 c = ~a; # -61 = 1100 0011 15 print "Line 4 - Value of c is ", c 16 17 c = a << 2; # 240 = 1111 0000 18 print "Line 5 - Value of c is ", c 19 20 c = a >> 2; # 15 = 0000 1111 21 print "Line 6 - Value of c is ", c 更多运算符内容: 猛戳 <<< 基本数据类型 1、数字 2 是一个整数的例子。 长整数

python数据结构

[亡魂溺海] 提交于 2019-12-29 01:55:43
Python 有许多内建的数据结构。如果你困惑于什么是数据结构,那么可以参考一下 Wikipedia 。 简单的来说,数据结构(data structure)是计算机中存储、组织数据的方式。比如我们之前的课程中使用过的列表就是一种数据结构,在这里我们还会深入学习它。 知识点 列表的方法与列表元素的删除 将列表用作栈和队列 列表推导式 元组、集合、字典的创建与操作 enumerate() 和 zip() 函数 实验步骤 1. 列表 >>> a = [23, 45, 1, -3434, 43624356, 234] >>> a.append(45) >>> a [23, 45, 1, -3434, 43624356, 234, 45] 首先我们建立了一个列表 a 。然后调用列表的方法 a.append(45) 添加元素 45 到列表末尾。你可以看到元素 45 已经添加到列表的末端了。有些时候我们需要将数据插入到列表的任何位置,这时我们可以使用列表的 insert() 方法。 >>> a.insert(0, 1) # 在列表索引 0 位置添加元素 1 >>> a [1, 23, 45, 1, -3434, 43624356, 234, 45] >>> a.insert(0, 111) # 在列表索引 0 位置添加元素 111 >>> a [111, 1, 23, 45, 1, -3434

python内置的数据结构

蹲街弑〆低调 提交于 2019-12-29 01:54:58
# 内置数据结构-元组(Tuple)、列表(List)、字典(Dictionary)——2009-12-3 1.元组的正序、倒序、切片的三种索引使用方法: >>> tuple = ('a','b','c','d','e') #定义一个元组tuple >>> tuple[2] #索引2的元素(从0开始,从头开始--正序索引) 'c' >>> tuple[-2] #索引-2的元素(元组中倒数第2的元素,从尾开始--倒序索引) 'd' >>> tuple[1:3] #切取索引1到索引3中间的元素(切片索引--不包括后者在内) ('b','c') #记住不包括指定索引区间中最后一个索引的元素 >>> tuple[-3,-1] #使用倒序方式指定切取区间,'-'就是从尾数起的意思,不同于从头开始从0,而是1开始 ('c','d') #一样是包括指定索引区间中最后一个索引的元素,也就是索引'-1'中的元素 2.元组的另一种有趣的说法--可以"打包"然后"解包": >>> tuple = (11,22,33,44,55) #定义元组tuple,我们还可以称作我们把11,22,33,44,55这几个常量"打包"起来 >>> a, b, c, d = tuple #新概念"解包",其中a,b,c,d每个都领到了叔叔tuple给他们"封"的红包 >>> print a, b, c, d #哈哈

Python 中素数的玩法

你说的曾经没有我的故事 提交于 2019-12-29 00:08:14
质数 质数又称素数。指整数在一个大于1的自然数中, 除了1和此整数自身外,没法被其他自然数整除的数 。换句话说,只有两个正因数(1和自己)的自然数即为素数。比1大但不是素数的数称为合数。1和0既非素数也非合数。素数在数论中有着很重要的作用。 质数的分布规律是以36N(N+1)为单位,随着N的增大,素数的个数以波浪形式渐渐增多。 孪生质数也有相同的分布规律。 素数,普遍认为的分布规律是没有规律。时而连续出现,时而又相隔很远很远。有远亲、有近邻,地球对面也还有几个好朋友。 素数,真的就没有规律吗? 合数可以用公式来表示,而素数且不能用公式来表示。这就是素数。 不过这里其实就蕴含着秘密。 既然合数能用公式表示,间接的也就说明了,素数必须服从这些公式的限制。而研究合数,其实也是研究素数。 有2个根深蒂固的观念: 1、素数的个数总是按照自然数增加10倍来统计展现的。因为这里一直沿用π(x)与x/lnx的统计方法。 2、100以内有25个素数,1000以内有168个素数。就产生了一种根深蒂固的观念:素数越来越稀疏。 当然这些都没有错误,否则也不会一直陪伴着素数研究到现在,但它禁锢了人们的思想。有一些数据似乎与之相悖。 列举一些四胞胎素数的例子, 四胞胎素数是很少的,在自然数1000亿以内仅仅有1209317组。平均间距为82691。两组之间相距是很远的

Python 中素数的玩法

家住魔仙堡 提交于 2019-12-29 00:06:05
质数 质数又称素数。指整数在一个大于1的自然数中, 除了1和此整数自身外,没法被其他自然数整除的数 。换句话说,只有两个正因数(1和自己)的自然数即为素数。比1大但不是素数的数称为合数。1和0既非素数也非合数。素数在数论中有着很重要的作用。 质数的分布规律是以36N(N+1)为单位,随着N的增大,素数的个数以波浪形式渐渐增多。 孪生质数也有相同的分布规律。 素数,普遍认为的分布规律是没有规律。时而连续出现,时而又相隔很远很远。有远亲、有近邻,地球对面也还有几个好朋友。 素数,真的就没有规律吗? 合数可以用公式来表示,而素数且不能用公式来表示。这就是素数。 不过这里其实就蕴含着秘密。 既然合数能用公式表示,间接的也就说明了,素数必须服从这些公式的限制。而研究合数,其实也是研究素数。 有2个根深蒂固的观念: 1、素数的个数总是按照自然数增加10倍来统计展现的。因为这里一直沿用π(x)与x/lnx的统计方法。 2、100以内有25个素数,1000以内有168个素数。就产生了一种根深蒂固的观念:素数越来越稀疏。 当然这些都没有错误,否则也不会一直陪伴着素数研究到现在,但它禁锢了人们的思想。有一些数据似乎与之相悖。 列举一些四胞胎素数的例子, 四胞胎素数是很少的,在自然数1000亿以内仅仅有1209317组。平均间距为82691。两组之间相距是很远的

Python自动化学习笔记(三)——Python数据类型(list、dic)、字符串常用方法、读写文件

守給你的承諾、 提交于 2019-12-28 22:05:29
1.Python数据类型 1.1 list/数组/列表 1.1.1 定义空list的两种方法: goods=[] goods=list() 1.1.2 在list中增加元素,append、insert goods.append('奶茶') #在list末尾增加一个元素 goods.insert(0,'火锅') #在指定位置增加元素 goods.insert(1,'串串') #在指定位置增加元素goods.insert(20,'蛋糕') #如果指定的下标不存在,则增加到末尾 1.1.3 修改list中的元素 goods[i]=''     #i为要修改元素的下标 1.1.4 删除list中元素,pop,del,remove,clear goods.pop() #默认删除最后一个元素 goods.pop(-2) #删除指定位置的元素,需要传入下标 goods.remove('汉堡') #删除指定元素,传入元素值 del goods[-1] #删除指定位置的元素 goods.clear() #清空list 1.1.5 查询 result=goods.count('奶茶') #查询某个元素在list中出现的次数 index=goods.index('奶茶') #查询元素在list中的下标,如果list里这个元素存在多次,返回第一次出现的下标 1.1.6 其他常用方法 goods

Python学习笔记(二)

风格不统一 提交于 2019-12-28 22:03:04
1、字典 字典是无序的,通过key进行查找value,key不会重复,定义使用{},花括号,每个值用逗号隔开,key和value之间使用分号分隔。 # l = ['xiaoming','151623232333','656456213','xiaoming@qq.com','北京'] #列表存人的信息 info = { 'name':'xiaoming', 'phone':151623232333, 'qq':656456213, 'email':'xiaoming@qq.com', 'addr':"北京" }#字典存人的信息 #新增 info['phone1'] = 110#通过key新增的,假如key已经存在,会覆盖掉之前的value,若新增key不存在的就新增一个 info.setdefault('name','wangda')#通过setdefault()方式新增时,key已存在的,不会改变之前的value值,若key不存在,正常新增 #修改 info['phone'] = 110#和新增的一样(修改存在的key) #删除 info.pop('qq') del info['qq'] info.popitem()#随机删除一个key #取值 print(info['qq1'])#根据key取值,不存在的key取值会报key错误 print(info.get('sex','男'