2019/08/28 python编程入门(03)

在这里插入图片描述之前讲了python基本数据类型和组合数据类型
is操作符可以判断类型的不太之处
对象有很多标识,当作内存地址,就是唯一标识符
在这里插入图片描述
id看l4第0个元素
number1也是同一个元素
虽然是两个不同的变量,但是可以引用一个元素
在这里插入图片描述
**is判断是否同一元素
下面的比较是l1和l3是否同一个对象,并不是比较值是否相同 **在这里插入图片描述
但是l1[0]和l3[0]是同一个对象在这里插入图片描述
不是同一个对象,但是可以引用内部的同一个对象,因为123不可变,节约空间可以这么玩在这里插入图片描述
比较l1和l3的值是否一样,对象是不一样的在这里插入图片描述
type l1和l3都是列表
是类型比较
对象比较 使用is,对象类型比较 使用type is,对象值比较使用 ==,
在这里插入图片描述
is
引用的比较:
l1 == l2 :对象值的比较
l1 is l2 : 是否为同一个对象
type(l1) is type(l2 ):两个对象的类型是否相同
在这里插入图片描述
**python 一个编程语言最基本的组成片段是表达式,组成的语句,表达式通常是一个或多个操作数,0个以上操作符组成的序列
算术表达式,比较表达式 ,赋值表达式
**

表达式操作符:
+,-,*,/
&,|,^ and 或 异或
and,or,not 逻辑与或非
* * 次方,%取模,//真除法,
[i:j:k]步进的
()
x.attr 取属性,指明属性引用
()元组定义
[]列表定义
{}字典定义
表达式有优先级,最后三个优先级最高,然后是切片,
在这里插入图片描述
**整个程序是语句+表达式组成,控制流类似bash,选择执行 if ,循环执行 while for **在这里插入图片描述
在这里插入图片描述
等值比较和身份判定
在这里插入图片描述在这里插入图片描述
按照abcd这样 的次序在这里插入图片描述
先排序,排序后按键值进行比较,有的键i相同就比较值在这里插入图片描述在这里插入图片描述
链接多个条件无非就是与或非在这里插入图片描述
一定要记得缩进4个字符,同一级别下,缩进字符必须相同在这里插入图片描述
l1和l2的确相同在这里插入图片描述
如果不小心缩进字符有问题,就会报错 indentationerror缩进语法错误在这里插入图片描述
这就是if语句
if语句的基本语法结构
if boolexpr1: 双分支
suite1
else
suite2

if boolexpr1: 单分支
suite1
if boolexpr1: 双分支
suite1
elif
suite2
。。。
else:
suiten

在这里插入图片描述
还有三元表达式
expression1 if boolexpr else expression2
如果条件为真执行 expression1 否则 执行 expression2
在这里插入图片描述在这里插入图片描述在这里插入图片描述
for经常遍历字符串,元组列表,以及其他任何内置可迭代对象在这里插入图片描述在这里插入图片描述
隐性迭代
在这里插入图片描述在这里插入图片描述
else只是在循环中止,条件测试为假时,执行一次,用于做收尾工作在这里插入图片描述在这里插入图片描述
else之后的语句在循环退出了才执行,
如果从来没循环呢
在这里插入图片描述
while也支持这么几个独特的语句在这里插入图片描述在这里插入图片描述在这里插入图片描述
只有条件满足时才break,或者continue
如果是break,else是不会执行的,有语法错误,else也不会执行
在这里插入图片描述
iterable表示可以迭代对象,通过遍历完成循环
在这里插入图片描述
这个列表有4个元组组成,循环的时候
a=1,b=2循环一次a=3,b=4
每一个序列都是一个可迭代对象
在这里插入图片描述
list强行把字符串转换成列表元素在这里插入图片描述在这里插入图片描述在这里插入图片描述
python2是两个内置函数,python3是一个,统一到range上,与bash的{1…10}类似在这里插入图片描述在这里插入图片描述
表示从0开头
help range的用法
支持跟一个数值
也支持从哪开始,到哪结束,三个数值,表示步长
在这里插入图片描述
100以内的奇数
在python3是一个个给你,节省内存
在python2不是,range是一次给所有列表
xrange才是一次只给一个结果
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
zip就是拉链,把两个不相关的内容结合在一起
并行遍历

在这里插入图片描述
iterable(任何对象)能判定,一次返回一个成员对象,这种称为可迭代对象(对象自己实现了__iter__方法)在这里插入图片描述
所有的序列都可迭代(list,str,tuple元组),在这里插入图片描述
iter和getitem方法酒标它是一个可迭代对象
显示了一个列表中可迭代器的一个对象的地址
在这里插入图片描述
不一样是因为,第一个元素的地址,第二个元素的地址在这里插入图片描述
**这是基于元素地址的方式来实现的
getitem和iter都是一次迭代一个
s是可迭代对象
a就不是
**在这里插入图片描述在这里插入图片描述在这里插入图片描述
游标可以想象成有多个元素,文件有多行,当我们引用这个文件的行时,第一次没定义话的,就指向第一个,依次往下,游动的指针,游动的标记
迭代器又称游标,它是一种可在容器物件(列表就是容器物件)上实现元素遍历的接口
在这里插入图片描述
所以迭代器指的是你的容器物件之上的游标,支持游标机制的称为可迭代对象

迭代协议就是一次返回一个,不想那么复杂在这里插入图片描述

任何对象使用iter方法可以生成一个迭代器,变量可以引用这个地址的对象
myiter就是一个可迭代对象,调用myiter的next的方法,一次可以返回一个值,以知道最后异常中止
在这里插入图片描述
直接写l1.__next不行,因为只是一个可迭代对象,不是迭代器,就需要赋值给变量,来迭代,其中包含__next
在python2不要下划线
在这里插入图片描述在这里插入图片描述
for循环隐含了一个迭代对象帮你生成一个迭代器的在这里插入图片描述在这里插入图片描述
根据一个表达式生成一个列表,叫列表解析
比如生成一个100以内所有偶数生成的列表
在这里插入图片描述
可以把这个表达式直接放在中括号里,不加print和for,会自动给你生成一个列表在这里插入图片描述
0-8的每个平方所构成的列表
在这里插入图片描述
用一个表达式来生成列表的操作叫列表解析在这里插入图片描述
本身就是一个可迭代对象,遍历所有元素之后所生成的结果

1到11的,求立方在这里插入图片描述
列表解析还可以加if语句,只有符合条件的才能进入元素在这里插入图片描述

求100以内的奇数可以这么写,只有符合条件的才能进入列表解析中去,否则不予进入在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
**如果只想一次用一个,可以定义生成器而不是迭代器,迭代器基于列表解析生成的结果是整个列表,它将始终放在内存中,如果一次只使用一个,生成器就是一次只生成一个,这样就比较节省内存,
所以生成器并不真正创建列表,而是返回一个生成器对象,而后一次做一次生成,就跟迭代器的next方法一样,next方法是一次只取一个而已,对象是在的
**在这里插入图片描述
生成器是放在小括号里的,会返回一个生成器对象
生成了一个对象,就是要加.点
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值