物联网Python编程实战 课件 单元3 玩转Python数据结构_第1页
物联网Python编程实战 课件 单元3 玩转Python数据结构_第2页
物联网Python编程实战 课件 单元3 玩转Python数据结构_第3页
物联网Python编程实战 课件 单元3 玩转Python数据结构_第4页
物联网Python编程实战 课件 单元3 玩转Python数据结构_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

Python字符串Python物联网双引号或者单引号中的数据,就是字符串。Python不支持单字符类型,单字符在Python中也是作为一个字符串使用。概念Python字符串字符串或串(String)是由数字、字母、下划线组成的一串字符。Python访问子字符串,可以使用方括号

[]

来截取字符串python的字串列表有2种取值顺序:»从左到右索引默认0开始的,最大范围是字符串长度少1»从右到左索引默认-1开始的,最大范围是字符串开头Python字符串字符串的截取的语法格式:变量[头下标:尾下标]其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。截取的区间属于左闭右开型(+)是字符串连接运算符,星号(*)是重复操作。Python字符串#!/usr/bin/python

#-*-coding:UTF-8-*-

str

='HelloWorld!'

Hello

World!

结果print

str

#输出完整字符串

print

str[0]

#输出字符串中的第一个字符

print

str[2:5]

#输出字符串中第三个至第六个之间的字符串

print

str[2:]

#输出从第三个字符开始的字符串

print

str*2

#输出字符串两次

print

str+"TEST"

#输出连接的字符串HllolloWorld!

Hello

World!Hello

World!

Hello

World!TEST

Python字符串方法大小写:title():把字符串的每个单词首字母大写lower():所有大写字符转为小写upper():所有小写字母转为大写去空格:lstrip()删除左边的空白字符rstrip()删除字符串末尾的空白字符strip()删除字符串两端的空白字符a="helloitcast"

print(a.title())

print(a.lower())

print(a.upper())运行结果:HelloItcasthelloitcastHELLOITCASTa="python"print(a.lstrip())print(a.rstrip())print(a.strip())运行结果:python

pythonpythoncapitalize()

将字符串的第一个字符转换为大写Python字符串分割split()方法可以实现将一个字符串按照指定的分隔符切分成多个子串,该方法的基本语法格式如下:str.split(sep,maxsplit)此方法中各部分参数的含义分别是:str:表示要进行分割的字符串;

sep:用于指定分隔符,可以包含多个字符。此参数默认为None,表示所有空字符,包括空格、换行符“\n”、制表符“\t”等。maxsplit:可选参数,用于指定分割的次数,最后列表中子串的个数最多为maxsplit+1。如果不指定或者指定为-1,则表示分割次数没有限制。Python字符串分割示例程序:str="<013|B2|C3|D4|E5|F6C><A1B2C3D4>"

strSplit=str.split("|",4)

print(strSplit)['<013','B2','C3','D4','E5|F6C><A1B2C3D4>']以“|”作为分隔符,分割4次,在列表中用逗号“,”隔开,分割后的结果如下:String模块示例:检查并判断密码字符串的安全强度,判断出密码强度等级。defcheck(pwd):

#密码必须至少包含6个字符

iflen(pwd)<6:

return'weak'

#密码强度等级与包含字符种类的对应关系

d={1:'weak',2:'belowmiddle',3:'abovemiddle',4:'strong'}

#分别用来标记pwd是否含有数字、小写字母、大写字母和指定的标点符号

r=[False]*4

forchinpwd:

#是否包含数字

ifchinstring.digits:

r[0]=True

#是否包含小写字母

elifchinstring.ascii_lowercase:

r[1]=True

#是否包含大写字母

elifchinstring.ascii_uppercase:

r[2]=True

#是否包含指定的标点符号

elifchin',.!;?<>':

r[3]=True

#统计包含的字符种类,返回密码强度

returnd.get(r.count(True),'error')

print(check('a2Cde,'))Python字符串定义Python字符串连接与切片Python字符串索引Python常用方法Python列表江苏电子职业学院Python物联网序列是Python中最基本的数据结构,Python最常见序列类型是列表和元组概念Python列表List(列表)是Python中使用最频繁的数据类型。列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。列表用[]标识,是python最通用的复合数据类型。Python列表基本操作1.创建空列表testList=[]3.访问列表元素

namesList=[‘xiaoWang’,‘xiaoZhang’,‘xiaoHua’,2]

print(namesList[0])说明:1.索引从0而不是从1开始,

2.索引值指定为-1,将访问最后一个列表元素。列表为空时,不支持-1索引访问

3.列表里的元素类型可以不一致4.修改列表namesList[0]=“libo”5.列表中添加元素

(1)末尾添加append()

namesList.append(‘Liuxiao')

(2)列表中插入insert()

namesList.insert(1,

‘Liuxiao')6.列表中删除元素

(1)delnamesList[0]说明:del()删除通过索引值、永久性删除(2)temp=

namesList.pop()说明:pop()删除列表末尾元素,并可暂存该元素(3)namesList.remove(“libo”)说明:通过元素值删除,如列表中存在多个该值,默认删除第一个。2.创建列表并赋值namesList=[‘xiaoWang’,‘xiaoZhang’,‘xiaoHua’,2]Python组织列表列表排序(1)使用sort()对列表进行永久性排序 cars=['bmw','audi','toyota','subaru']

cars.sort()#cars.sort(reverse=True)反向排序

print(cars)

(2)使用sorted()对列表进行临时排序 print(sorted(cars))#print(sorted(cars,

reverse=True)

print(cars)2.倒着打印列表 cars.reverse()#

reverse()是反转列表,不是字母顺序的翻转 print(cars)3.确定列表长度

len(cars)

说明:最后一个列表元素的角标为:len(cars)-1Python列表加号

+

是列表连接运算符,星号

*

是重复操作,[起始:结束:步长]切片,选取的区间属于左闭右开型,即从“起始”位开始,到“结束”位的前一位结束。#!/usr/bin/python

#-*-coding:UTF-8-*-

list

=[

'run',786,2.23,'john',70.2

]

tinylist

=[123,'john']

['run',

786,

2.23,

'john',

70.2]

结果print

list

#输出完整列表

print

list[0]

#输出列表的第一个元素

print

list[1:3]

#输出第二个至第三个元素print

list[2:]

#输出从第三个开始至列表末尾的所有元素

print

tinylist*2

#输出列表两次

print

list+tinylist

#打印组合的列表run[786,

2.23]

[2.23,

'john',

70.2]

[123,

'john',

123,

'john']

['run',

786,

2.23,

'john',

70.2,

123,

'john']

Python列表序列类型的通用操作符和函数Python列表列表的常用操作符和函数Python列表使用一个列表改变另一个列表值时,python不要求两个列表长度一样,但遵循“多增少减”的原则。s=[1,2,3,4,5,6]

s[:1]=[]

#[2,3,4,5,6]

s[:2]='a'

#['a',4,5,6]

s[2:]='b'

#['a',4,'b']

s[2:3]=['x','y']

#['a',4,'x','y']

dels[:1]

#[4,'x','y']

print(s)练习示例二:个税计算企业发放的奖金根据利润提成。利润(pro)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成。从键盘输入当月利润(pro),求应发放奖金总数?Python数字、Python字符串Python元组Python列表Python字典Python元组江苏电子职业学院Python物联网序列是Python中最基本的数据结构,Python最常见序列类型是列表和元组概念元组也是Python中常用的一种数据类型,是tuple类的类型,与列表list几乎相似,区别有:(1)元组数据使用圆括号()来表示,例如t=('a','b','c');(2)元组数据的元素不能改变,只能读取;元组的可以简单理解元组就是只读的列表,除了不能改变外其它特性与列表完全一样。结果:(1,3,2,3,4,5)<class'tuple'>Python元组s=(1,3,2,3,4,5)

print(s)

print(type(s))Python元组元组是另一个数据类型,类似于List(列表)。元组用

()

标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。#!/usr/bin/python

#-*-coding:UTF-8-*-

tuple

=(

'run',786,2.23,'john',70.2

)tinytuple

=(123,'john')

结果('run',

786,

2.23,

'john',

70.2)

print

tuple

#输出完整元组

print

tuple[0]

#输出元组的第一个元素

print

tuple[1:3]

#输出第二个至第四个(不包含)的元素print

tuple[2:]

#输出从第三个开始至列表末尾的所有元素print

tinytuple*2

#输出元组两次

print

tuple+tinytuple

#打印组合的元组run(786,

2.23)(2.23,

'john',

70.2)(123,

'john',

123,

'john')

('run',

786,

2.23,

'john',

70.2,

123,

'john')

创建元组tup1=('physics','chemistry',1997,2000);tup2=(1,2,3,4,5);创建空元组tup3=();元组中只包含一个元素时,需要在元素后面添加逗号来消除歧义tup4=(50,);访问元组元组与字符串、列表类似,下标索引从0开始,可以使用下标索引来访问元组中的值。和字符串和列表一样,作为序列类型也有in,len()等12种常用操作符和函数。Python元组操作Python元组操作元组和列表区别:元组是不允许更新的。而列表是允许更新的:#!/usr/bin/python

#-*-coding:UTF-8-*-

tuple

=('run',786,2.23,'john',70.2)

list

=['run',786,2.23,'john',70.2]tuple[2]=1000

#元组中是非法应用list[2]=1000

#列表中是合法应用Python语言程序设计#创建一个新的元组tup3=tup1+tup2;Print(tup3);删除元组元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组,如下实例:Print(tup1);deltup1;print(tup1);#执行到这里在报错Python元组操作“可变的”元组Python元组操作“可变的”元组Python元组操作Python语言程序设计字符串格式化中出现元组比列表操作速度快,在遍历操作的时候,使用元组,速度会快很多对不需要修改的数据进行“写保护”,可以使代码更安全Python元组作用Python元组作用deffun(x,y,*args):

print(x,y)

print(args)

fun(1,2)

fun(1,2,3)

fun(1,2,3,4,5,6,7)元组在函数中作为可变参数12()12(3,)12(3,4,5,6,7)结果序列类型间转换字符串、列表和元素间可以相互转换['x','i','a','o','m','i','n','g']['he','is','tom']('i','am','jack')<class'str'>['i','am','jack']str1="xiaoming"list1=["i","am","jack"]tuple1=("he","is","tom")list2=list(str1)#字符串按字符转成列表print(list2)list3=list(tuple1)#元组转成列表print(list3)tuple2=tuple(list1)print(tuple2)#列表转成元组str2=str(list1)#列表转成字符串,整体转带有[]print(type(str2))print(str2)Python序列转换练习创建元组,测试序列类型常用方法创建带列表的元组,尝试修改列表的内容创建字符串,列表和元组,尝试类型间的转化练习Python格式规范PEP8(PythonEnhancementProposal,PEP),Python改进方案,即代码格式设置指南要求:每级缩进都使用4个空格;每行长度不超过80字符(具体企业会有相应的格式规范);程序的不同部分,可使用空格分开。赋值规范Python元组Python元组和列表的区别Python格式规范总结Python列表嵌套应用江苏电子职业学院Python物联网一个列表中的元素又是一个列表,那么这就是列表的嵌套。概念如:[[1,2],[3,4],[5,6]]Python列表一个学校,有3个办公室均有足够的空余工位,现在有8位老师等待分配,请编写程序,完成8位老师办公室的随机分配。Python列表0121.random.randint(0,2)#产生0

到2

的一个整数型随机数2.random.random()#产生0到1之间的随机浮点数3.random.choice('tomorrow')#从序列中随机选取一个元素random.choice(%^&*()')random.choice(['剪刀','石头','布'])random()随机函数offices=[[],[],[]]Python列表012teachers=['Liu','Li','Zhang','xiaoli','Pan','Wang','zhao','diao']forteacherinteachers:offices=[[],[],[]]offices[index].append(teacher)3个教室构成一个嵌套的空列表8个待分配的老师index=random.randint(0,2)每个老师开始轮流抽签抽签值存入index根据抽签值,找到教室Python列表示例代码:importrandomoffices=[[],[],[]]teachers=['Liu','Li','Zhang','xiaoli','Pan','Wang','zhao','diao']forteacherinteachers:index=random.randint(0,2)#index的值可能是0,1,2offices[index].append(teacher)print(offices)[['Zhang','zhao'],['Pan','diao'],['Liu','Li','xiaoli','Wang']]Python列表想一想:该示例中如果分别将三个办公室的教师信息按下图方式打印出来,将如何编写打印代码?示例代码:importrandomoffices=[[],[],[]]teachers=['Liu','Li','Zhang','xiaoli','Pan','Wang','zhao','diao']forteacherinteachers:index=random.randint(0,2)offices[index].append(teacher)i=1forofficeinoffices:print(“第%d个办公室人数:%d,名单如下:"%(i,len(office)))forteacherinoffice:print(teacher,end='')print('\n'+'-'*30)i+=1Python数字、Python字符串Python元组Python列表Python字典Python集合江苏电子职业学院Python物联网集合(set)是一个无序的不重复元素序列。可以使用大括号

{}

或者

set()

函数创建集合,注意:创建一个空集合必须用

set()

而不是

{},因为

{}

是用来创建一个空字典。概念Python集合(set)basket

=

{'apple',

'orange',

'apple',

'pear',

'orange',

'banana'}print(basket)创建格式:parame={value01,value02,...}或者set(value)输出结果:第一次运行:{'orange','apple','banana','pear'}第二次运行:{'apple','pear','orange','banana'}setTest=set("abcdf")

print(setTest)输出结果:第一次运行:{'a','b','d','f','c'}第二次运行:{'c','d','f','a','b'}特点:无序输出集合运算a=set(‘abracadabra’)

b=set(‘alacazam’)

print(a)

#创建集合a

print(b)

#创建集合b结果{'b','d','r'}print(a

-

b)

#集合a中包含而集合b中不包含的元素{'a','d','c','r','b'}{'a','m','c','z','l'}print(a

|

b)

#集合a或b中包含的所有元素print(a

&

b)

#集合a和b中都包含了的元素print(a

^

b)

#不同时包含于a和b的元素{'a','d','m','c','r','z','l','b'}{'a','c'}{'z','l','d','b','m','r'}集合操作添加元素s.aad(x)

将元素x

添加到集合s中,如果元素已存在,则不进行任何操作。输出结果:添加元素s.update(x)

x参数可以是列表,元组,字典等输出结果:s=set(("Google","yahu","Taobao"))

s.add("Facebook")#添加新元素

s.add("Google")#不做操作

print(s){'Google','Facebook','Taobao','yahu'}s=set(("Google","yahu","Taobao"))

s.add("Facebook")

s.update([1,4],[5,6])

print(s){1,4,5,6,'yahu','Taobao','Facebook','Google'}集合操作移除元素s.remove(x)

将元素x从集合s中移除,如果元素不存在,则会发生错误。s.discard(x)如果元素不存在,不会发生错误。运行结果:运行结果:s=set(("Google","yahu","Taobao"))

s.remove("Taobao")

print(s)

s.remove("Baidu")

print(s)s=set(("Google","yahu","Taobao"))

s.discard("Baidu")

print(s){'Taobao','Google','yahu'}集合操作移除元素s.pop()随机删除集合中的一个元素运行结果:第一次运行:{'yahu','Taobao'}第二次运行:{'yahu','Google'}s=set(("Google","yahu","Taobao"))

s.pop()

print(s)说明:多次执行测试结果都不一样set集合的pop方法会对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除。集合操作获取集合长度len(s)清空集合clear()s={"Google","yahu","Taobao"}

print(len(s))运行结果:s={"Google","yahu","Taobao"}

print(s.clear())运行结果:判断元素是否在集合中存在xinss={"Google","yahu","Taobao"}

print("Baidu"ins)运行结果:方法描述add()为集合添加元素clear()移除集合中的所有元素copy()拷贝一个集合difference()返回多个集合的差集(-)difference_update()移除集合中的元素,该元素在指定的集合也存在。discard()删除集合中指定的元素intersection()返回集合的交集(&)intersection_update()返回集合的交集。isdisjoint()判断两个集合是否包含相同的元素,如果没有返回True,否则返回False。issubset()判断指定集合是否为该方法参数集合的子集。issuperset()判断该方法的参数集合是否为指定集合的子集pop()随机移除元素remove()移除指定元素symmetric_difference()返回两个集合中不重复的元素集合。symmetric_difference_update()移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。union()返回两个集合的并集(|)update()给集合添加元素集合内置方法Python集合概念Python集合操作Python集合运算Python集合内置函数Python数字01030402int(长整型)此处添加详细文本描述,建议与标题相关并符合整体语言风格。float(浮点型)整体语言风格。Bool(True或False)complex(复数)此处添加详细文本描述,建议与标题相关并符合整体语言风格。a=20

print(type(a))

print(isinstance(a,int))<class'int'>Trueprint(True==1)

print(False==0)

print(True+1)

print(False+1)TrueTrue21标准数据类型ACDEFNumbers(数字)此处添加详细文本描述,建议与标题相关并符合整体语言风格。List(列表)此处添加详细文本描述,建议与标题相关并符合整体语言风格。Dictionary(字典)此处添加详细文本描述,建议与标题相关并符合整体语言风格。String(字符串)此处添加详细文本描述,建议与标题相关并符合整体语言风格。Tuple(元组)此处添加详细文本描述,建议与标题相关并符合整体语言风格。Cset(集合)Python字典江苏电子职业学院Python物联网字典是一种可变容器模型,可存储任意类型对象概念《新华字典》是中国第一部现代汉语字典,1953年10月,由人民教育出版社出版第一次出版,并不断修订。为中国文化水平的提高作出了历史性的贡献Python字典字典键值对组成,

键值之间用冒号

:

分割,每个对之间用逗号(,)分割,整个字典包括在花括号

{}

中,格式如下所示:d=

{key1:value1,key2:value2}

键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字。item1item2

item3

key1value1key2value2key3value3Python字典创建空字典:emptyDict

=

{}访问字典里的值#!/usr/b

温馨提示

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

评论

0/150

提交评论