第3讲:Python基础知识入门_第1页
第3讲:Python基础知识入门_第2页
第3讲:Python基础知识入门_第3页
第3讲:Python基础知识入门_第4页
第3讲:Python基础知识入门_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

趣学Python爬虫爬虫必备基础入门本课目录INDEX基础数据类型多元数据类型逻辑与循环函数迭代器与生成器Python基础火箭入门变量-基础类型变量是一个能涵盖你所有衣食住行的“量”

“量”小非君子我住在:北京芳龄:35我的身高:1.74字符串

–str-string浮点–

float-

float整数–

int

-

integer正负数字包含0,不带小数点的为整数一切使用单双三引号包裹的“东西”皆为字符串“{1:1,2:2}”“万门大学”‘loveyou’‘!@#$%+-’‘4.5’‘-1’“100”“[1,2,3]”•••‘‘‘

身高1.83年龄:28’’’123111111223450-10213正负数字不包含0,带小数点的为浮点1.74-100.11.03.1415927注意有一个个案\斜杠是转译符,不能单独存在于字符串中且不能出现在字符串最后的位置Python基础火箭入门String字符串Float浮点Integer整数任何数据类型str()原始类型 转换函数int()float()目标类型实例my_age=

18my_new_age

=

str(my_age)输出为:“18”room_number=“520”room_new_number

=

int(room_number)输出为:520ticket_price=

“3.5”ticket_new_price

=

float(ticket_price)输出为:3.5注意事项浮点转整数会消除小数部分取整:int(3.5)

输出为:3字符串内为非整数数字无法转换为整数:int(‘abc’)

系统会报错int(‘3.14’)系统会报错字符串内为非数字无法转换为浮点:float(‘abc’)

系统会报错字符串或整数转浮点,整数后边多一位小数:float(‘6’)

输出为:6.0变量-基础类型方法一

空值创建list_data=

list()方法二

空值创建list_data=[

]列表的语法规则[

‘mike’

,

‘Beijing’,

‘万门’

,

28,

True,

1.78]元素之间使用

,区隔头尾使用方括弧

[

]特别注意!列表内的每个元素(数据),遵守该数据类型的原有规则。比如字符串类型是要加引号‘’可以有多层嵌套,每一层嵌套为一个独立体存在列表添加其他类型数据(嵌套)[

[‘

mike’,28],[‘Jason’,36

],(1,2,3),

{‘名字’:‘正正’,

‘爱好’:‘编程’}

]列表元组 字典变量-结构类型-列表Python基础火箭入门增加数据修改数据personal_info

=

[‘正正’,‘男’]声明创建一个基于个人信息的列表STEP-1STEP-2personal_info.append(1.74)列表基本操作最后一位追加

->

[‘正正’,‘男’,1.74]personal_info.insert(1,28)基于索引位置插入数据->

[‘正正’,28,‘男’,1.74]personal_info[1]

=

36 基于索引位置修改数据->

[‘正正’,36,‘男’,1.74]personal_info[0:2]

=

[‘高正’,35]

基于索引范围修改数据->

[‘高正’,35,‘男’,1.74]变量-结构类型-列表Python基础火箭入门personal_info[1]当前数据 [‘高正’,35,‘男’,1.74]基于索引位置取数据->

35

(整数类型)personal_info[0:2]基于索引范围取数据->[‘高正’,35

]personal_info.pop(2)

基于索引删除数据->

[‘高正’,35,1.74]personal_info.remove(1.74)

基于值删除数据->

[‘高正’,35]personal_info.clear()基于索引位置删除->

[

]清空全部列表元素->

[

]删除整个列表del

personal_info[0:2]del

personal_info查询数据删除数据特别注意!修改数据和查询数据“一线间”圈定范围修改列表数据时,需要保证添加的数据为可迭代对象注意pop

()默认为删除最后一位,可指定索引位置,并返回被删除的值remove()

基于值/数据删除数据,删除的是第一个匹配的数据,并非所有变量-结构类型-列表Python基础火箭入门方法一

空值创建dict_1=

dict()方法二

空值创建 dict_2

=

{

}

推荐方法三

非空值创建 dict_3

=

{‘姓名’:’mike’,’年龄’:20

}ordict

_4

=dict({‘姓名’:’mike’,’年龄’:20

})ordict_5

=

dict(姓名=‘mike’,

年龄=20)推荐变量-结构类型-字典Python基础火箭入门字典表的语法规则{‘name’:‘mike’,

‘age’:28,‘city’:

‘Beijing’}键值之间

冒号

:

分割一个键和一个值叫键值对在Python里这个叫一个item(全部字典表里的键值对那就是items)键值对(item)之间的分割使用逗号

,按照key:value,的格式可以建立多个键值对(items)的字典表字典表加入列表或元组类型{‘names’:(‘mike’,‘Tim’),‘cities’:[‘Beijing’,‘SH’]

}注意列表

元组

[

](

不要加引号否则会转成字符串变量-结构类型-字典Python基础火箭入门增加数据修改数据查询数据删除数据info

=

{

‘姓名’:‘张三’,‘年龄’:20,‘性别’:‘男’}声明创建一个基于个人信息的字典STEP-1STEP-2info[‘城市’]

=

‘上海’

字典名[键]

=

添加的值info[‘年龄’]=

22 字典名[键]

=

修改的值delORinfo[‘姓名’] info.get(‘姓名’)字典表基本操作info[‘性别’]

OR

info.pop(‘性别’)

OR

info.clear()

清空字典变量-结构类型-字典Python基础火箭入门程序逻辑的组成控制语句逻辑运算逻辑语句控制条件if

如果elif 如果else 否则>=

=!=<andorin…逻辑语句与逻辑运算构成了程序的逻辑员工陈述事实员工YOU老板做决策老板BOSS判断if

elsePython基础火箭入门如果if

(逻辑运算-条件):(代码块)然后else:(代码块)拟定一个变量exam_score=

60if(exam_score>= 60):print(‘考试及格’)else:print(‘考试不及格’)判断if

elsePython基础火箭入门for 变量 in 可迭代对象

:(代码块)schoolname

=

‘万门’for name in schoolname:print(name)输出为:(注意输出为两行)万门for循环启动可迭代对象执行代码块有元素并取值无元素检查下一个元素for循环终止特别注意!必须为可迭代对象基于可迭代对象内部顺序依次取值注意可迭代对象内部的值并不会消失schoolname

=

‘万门’for name in schoolname:print(name)for循环查询schoolname元素数量为非空且有未取的值schoolname

第一个元素‘万’赋值给name3.执行print(name)

->万4.首次循环完成,进入第二次循环5.for循环查询schoolname元素有未取的值6.获取第二个元素‘门’赋值给name执行print(name)->门第二次循环完成,进入第三次循环9.for循环查询schoolname元素有未取的值10.‘门’后面已没有值

,退出循环赋值过程

*注意*变量

=

可迭代对象的当前元素值for循环Python基础火箭入门for循环伴侣

range()函数一口气要打印多个hello

Python难道真要用多个print?答案当然是否定的for name

in schoolname:print(name)这个写法显然也是打印不出来的schoolname

=

‘万门’range()

–字面意思是“范围”range()

–生成可迭代对象range()

–支持三个参数range(开始,截止,步长)range(0,10)生成0-9一共10个数字的可迭代对象range(10)只有一个参数,默认起0range(0,10,2)

0起

10止

2步长0,2,4,6,

8range()range控制了循环执行次数注意

i

赋值依然有效只是该程序未输出for循环Python基础火箭入门while

循环特别类似if

else

,它基于逻辑运算结果/条件决定是否继续循环while循环启动逻辑运算-条件True执行代码块while循环终止False特别注意!while可以轻松构建死循环while和for循环有交叉应用点,但是不能完全互相代替老生常谈

缩进

indent

要注意,从属关系要注意while

(逻辑运算-条件):(代码块)number=

0while number<5

:print(number)number=number+

1输出为:01234number=

0while number<5

:print(number)number=number+

1创建变量

number

=

0

(注意在循环外)循环启动检测循环条件,逻辑运算结果为True4.循环体执行

print5.循环执行,原number+1后重新赋值(注意循环外的number值更新了)6.注意!现在number

=

17.循环再次启动,检测条件是否成立8.以此类推,直到number不再小于5即number<5不成立(False)9.循环结束while循环Python基础火箭入门defmy_function(

):print(‘hello

Python’)result=1+

1return result函数是一个组织性问题,不是一个具体功能问题具体干活的还是那些if

else

for

while

等等等等声明函数的关键字/命令函数名-代表函数本身函数名()-代表函数功能注意缩进从属关系(tab)函数功能体-具体干活的代码函数返回值(根据需要使用,非必须)注意标点符号,跟for

if

while都一样函数Python基础火箭入门函数调用

“呼之则来、挥之则去”defmy_function():print(‘helloPython’

)声明函数my_function()结果输出hello

Python(让我吃饭得先把饭给我做好了)

调用函数特别注意!声明函数一定要在调用函数之前函数Python基础火箭入门什么是迭代器和生成器?这里的容器对象可以具象为:列表、字典、元组、字符串、range都算是一个“容器”可迭代对象有个方法叫

iter

()

方法,翻译过来叫“迭代”纯可迭代对象的内部数据“所见即所得”,可迭代的数据是已经看的见的数据了可迭代对象 迭代器可迭代对象并不是指某一个数据类型,而 首先迭代器肯定是一个可迭代对象是特指存储了元素的一个容器对象。一个勤快的一个懒的一个自给自足的可迭代对象迭代器生成器生成器迭代器拥有迭代对象的所有特征迭代器同时拥有

iter

()

next

()方法迭代器可以记住遍历对象的位置(for的工作核心之一)迭代器是一个惰性机制,何为惰性。不叫我,我不动,叫我,我才动(callby

need)首先生成器肯定是一个迭代器,也是一个可迭代对象一边迭代一边生成数据生成器有

iter

()

next

()

还有一个yield

关键字/命令(类似return)生成器之所以能生成是因为保存了一套算法/逻辑可以持续生成数据yield返回一个值,但是不会结束函数,会记住当前值的位置拼命奔跑,全都给你😢叫一下,动一下😊什么是迭代器和生成器?告诉我怎么做😄常规的可迭代对象是一口气给你所有的数据无论你是否需要,他总是要给你他已经拿到的所有随着迭代对象数据的增加消耗巨大资源a

=

[1,2,3,4,5,

这里有一亿个数字]迭代器是按需供应的机制,给我1亿个数据你要的时候我给你取。迭代器是一个单向阀门,只能前进不能后退a

=

[1,2,3,4,5,

这里有一亿个数字]next

1next

2next

3生成器是只需要给我规则就好了,我可以啥都不要有规则我可以带你到天涯海角,而且我也是按需供应while

True:n=n+

1next

1next

2next

3大到无穷无尽生成器的优势在于节省了内存或者说运算资源可迭代对象••••列表字典元组字符串可被for

循环遍历可被for

循环遍历可被for

循环遍历迭代器惰性yield

iter

()

next

()next()

iter

()

next

()next()iter(

)生成器惰性 可以有逻辑可迭代对象、迭代器和生成器有什么关系可迭代对象 迭代器生成器如何声明/使用迭代器严格的说迭代器不是直接声明的而是从常规可迭代对象转换过来的STEP-1STEP-2STEP-3现有一个序列/集合数据(可迭代对象)l_data=[1,2,3,4,5]new_data=iter(

l_data)print(

)id()=

9483891[1,2,3,4,5]id()=

8492829<list_iteratorobjectat

0x1056bd550>特别注意通过iter()

转换成迭代器后,迭代器并不会引用l_data而是直接创建自己的对象注意迭代器里的元素取按照顺序取出,取一个少一个,直到取完为止。(类似库存)3.迭代器内元素取完以后输出错误信息

StopIteration可以使用next()

函数或者

迭代器内置特殊方法

next

()

以“惰性”输出/获取迭代器里的值next(new_data) --

>>1next(new_data) --

>>2next(new_data) --

>>3new_data.

next

()

-->>

4next(new_data) --

>>5next(new_data) --->>报错

-

StopIterationforiin

l_data:print(i)输出foriin

l_data:print(i)输出foriin

l_data:print(i)输出111222333444555如何声明/使用迭代器在for循环中

可迭代对象

迭代器

的不同表现l_data=

[1,2,3,4,5]new_data=iter(

l_data)foriin

new_data:print(i)输出12345foriin

new_data:print(i)输出无输出也不会报错因为第一个for把数据都用完了,第二次循环等于在循环一个空列表特别注意for循环每次从迭代器中取数据也是一次一次的next,但是for不会因为取完数据而报错。其实不是不报错而是把错误给屏蔽掉了。迭代器是一个单向数据获取并减库的机制,取完了就没有了与之类比的就是可迭代对象,每次使用都是从头给你来过一次如何声明/使用一个生成器最简单的生成器defgen_num():yield

1yield

2yield

3变量引用对象my_gen=

gen_num()调用

next(my_gen)输出

1调用

next(my_gen)输出

2调用

next(my_gen)输出

3调用

next(my_gen)输出

StopIterationdefgen_num():n=

[1,2,3]foriin

n:yield

i变量引用对象my_gen=

gen_num()调用

next(my_gen)输出

1调用

next(my_gen)输出

2调用

next(my_gen)输出

3调用

next(my_gen)输出

StopIteration以逻辑输出生成器边循环边计算/生成数据<generatorobjectgen_numat

0x10afac6d0>注意直接打印生成器对象结果如何声明/调用一个生成器传统函数里的return生成器里的yieldreturn

命令是函数的“终结者”,遇到return函数结束yield是生

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论