Python 基础与办公自动化应用PPT完整全套教学课件_第1页
Python 基础与办公自动化应用PPT完整全套教学课件_第2页
Python 基础与办公自动化应用PPT完整全套教学课件_第3页
Python 基础与办公自动化应用PPT完整全套教学课件_第4页
Python 基础与办公自动化应用PPT完整全套教学课件_第5页
已阅读5页,还剩404页未读 继续免费阅读

下载本文档

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

文档简介

Python基础与办公自动化应用微课版课程介绍0.课程介绍1.项目1:Python入门2.项目2:使用Python解决简单的数学问题3.项目3:重复的事情交给计算机4.项目4:处理更多的数据5.项目5:代码复用代让代码更精简--函数与模块6.项目6:重要信息的提取7.项目7:让繁琐的工作自动化-Python处理Excel表格8.项目8:使用Python批量处理Word、PDF文档9.项目9:图像处理python操作图像-副本10.项目10:大数据入门11.项目11:人工智能入门1通过这门课程你能学到什么快速入门,掌握Python

的编程基础知识了解Python在大数据和人工智能领域中的应用锻炼编程思维,使用Python真正地解决问题课程阶段Python基础与办公自动化应用第一阶段:Python基础篇入门环境安装、第一行代码基础运算符、表达式、循环与分支、数据类型、函数与模块第二阶段:办公与自动化应用数据提取正则表达式、爬虫办公自动化Python批量处理Excel文档的批量处理Python批量处理Word、PDF图像批量处理Python批量处理图像第三阶段:拓展知识大数据入门数据统计分析、数据可视化人工智能入门电影类型识别,机器学习做数学题乘法表小明购买无人机的问题办公自动化-批量获取网页数据办公自动化-批量处理Excel办公自动化-批量处理Word、PDF办公自动化-批量处理图像数据统计2课程的特点通过面向一个个的挑战,在解决问题的过程中学习编程知识通过案例和练习,让脑子和手都能掌握编程理论与实践结合,简洁、易懂校企合作开发,是老师和工程师共同开发的课程ThankYouPython入门1学习目标在IDLE上启动安装Python编写你的第一个程序Python

简介Python是怎么来的:Python是由荷兰人GuidovanRossum创造的一种计算机程序设计语言。Python开发环境搭建1.打开/

下载Python安装包2.安装Python3.验证Python开发环境搭建1.打开/

下载Python安装包2.安装Python3.验证Python开发环境搭建Python开发环境搭建Python开发环境搭建编写“helloword”将print改为pront为什么print可以pront就会报错?行话关键字:Python中事先定义好的,具有特殊意义的单词天安门print是关键字pront不是print就是被赋予了打印输出含义的关键字行话命令行界面:用户通过键盘输入指令,计算机接收到指令,然后执行指令了解Python的两个特点计算2.重复做某事编写真正意义上的Python程序创建Python程序编写真正意义上的Python程序编写Python程序、保存python文件编写真正意义上的Python程序运行Python文件小结学习了两个编程界的行话:1.命令行界面,2.关键词使用print()控制计算机进行输出安装Python请回答命令行界面是什么请回答关键字是什么请回答print是干啥用的稍微深入一点的交流课后练习输出表情:输出你的个人信息:ThankYou使用Python解决数学问题求梯形面积和三角形面积编写人民币与越南盾兑换程序1求梯形面积梯形面积=(上底+下底)乘以高除以2

基本运算对应关系2求三角形面积第一种方法: A为三角形的直角边使用**可以实现幂运算:例如3的三次方=3**3请回答两个问题在Python中乘号是什么、除号是什么?在Python中幂运算用什么符号?2求三角形面积第一种方法: A为三角形的直角边第二种方法:先计算出长方形面积然后用长方形面积减去梯形面积最后就能得出三角形面积三角形面积行话——变量变量:变量是Python存储数据的一个内存区域,可以理解为存放数据的地方行话——变量变量命名的两个规则:1.必须以大小写字母或者下划线开头2.简洁易读,给变量取的名字需要有意义定义姓名变量:A:name1

B:1name定义年龄变量:A:a

B:age行话——变量下列变量命名的方式哪几个比较好:A.n12B.nameC.ageD.123_p+E.shoujihaoF.number_of_zhangsanG.home_addressH.,./@#比较好的是:BCFG将代码解释给朋友听请你帮我解释一下这段代码是干啥的第一行表示,定义变量c表示长方形的长。第二行表示定义变量代表长方形的宽为3第三行,a表示梯形的上底第四行,求的是长方形面积…行话——代码注释这样子就不用让你亲自给别人解释代码了,他自己就能看明白了。怎么加注释注释代码:练习1Python中计算3*3*3*3的另一种做法是什么?我们只注释了前四行代码,后面四行没有注释,请你帮忙补充最后四行的注释吧!练习2请使用注释让下列代码输出:写一个程序,把温度从华氏度(100F,200F,F为华氏温度单位)转换为摄氏度,本小节所学习的变量与注释记得都要用上哦。转换公式是:请回答两个问题什么是变量?怎样定义好变量呢?什么是代码注释,注释使用什么符号?2编写人民币与越南盾兑换程序2编写人民币与越南盾兑换程序2编写人民币与越南盾兑换程序2编写人民币与越南盾兑换程序假设现在你有一位朋友想要去越南旅游,但是他身上没有越南盾(越南的货币单位),只有5342元人民币,他知道你最近在学习编程,他想要你编写代码帮他计算一下这些钱能换到多少越南盾。2编写人民币与越南盾兑换程序这个时候,假设有十个朋友都想让你用编程帮他们计算他们的人民币能换成多少越南盾你该怎么办呢?[1134,5678,9872,9912,3434,5678,199,228,358,3482]与用户交互的程序什么是交互:输出输入处理写出与用户交互的程序使用乘法计算出结果输入需要兑换的人民币输出兑换后的越南盾如何编写交互程序input()函数,函数暂时可以理解为:用于实现某一功能的工具运行时错误行话-数据类型整型(int):整数,主要用于运算,如:1,2,3...;浮点型(float):浮点型,小数,如:1.2,1.3...;字符串(str):能存储文字、数字、单词等信息,如:hello,王五...;计算机有时候有点傻,分不清什么是整数,什么是小数,什么是英文和中文,所以需要借助数据类型。数据类型就是对常用的各种类型的数据进行了明确的划分。让结果更方便阅读会发现还是有个小尾巴,要去除可以利用整除来实现:这种数据的可读性不好,我们更想看到XXX万结果:1788.416128让结果更方便阅读取余数总结问:Python中四则运算符与数学中不同的符号是?问:变量是什么?变量的两个命名规范是什么?问:Python中幂运算使用?答:乘号(*)与除号(/)答:

**答:变量是存储数据的内存区域。变量必须以大小写字母或者下划线开头,且要有明确的意义,简洁易读。总结问:怎么编写交互程序问:整除运算符和取余运算符是什么?问:为什么要有数据类型?答:需要使用input()接收用户输入的值答:为了对常用的各种类型的数据进行明确的划分答:整除(//)取余(%)课后练习1编写程序录入个人信息,然后输出,效果图如下:

课后练习2创建一个交互式程序。向用户询问华氏温度,根据读取的华氏温度计算相应的摄氏温度,然后用摄氏温标打印出来,转换公式为:

课后练习3创建一个交互式程序,向用户询问一个三位数的整数,根据获取的整数计算该整数的百位、十位和个位数,然后将他们打印出来。ThankYou重复的事情交给计算机从1加到100等于多少?1+2+3+4+5+6+7+8+9…+100打印直角三角形小明在多少岁能买到房编写游戏1从1加到100等于多少?1+2+3+4+5+6+7+8+9…+100计算机乐意帮你做重复的事情计算机可以周而复始的做同样的事情,这个被称为循环。怎么让计算机循环呢?条件冒号条件成立执行的语句一个tab让计算机做俯卧撑什么原因导致无限循环敲黑板问:怎么让计算机执行循环呢?答:1.循环成立的条件2.条件成立执行的语句(循环体)3.控制循环的次数循环成立的条件条件成立执行的语句控制循环执行的次数求出1到100的和有个循环这个工具,是不是就可以开始求1到100的和了呢?1+2+3+4+5+6+7+8+9…+100求出1到100的和第一步应该仔细研究问题,了解问题是什么,目标是什么?第二步才是编写代码,第一步研究的越明白,第二步写出的代码就越靠谱。第三步则是测试代码,验证结果。这样是确保你写出来的程序没有问题。三步敲代码求出1到100的和第一步,研究问题:要解决一个求和问题,则需要定义一个变量(可以命名为sum)存储最终的和;变量sum是不断累加的;可以使用循环来不断进行累加,每次累加一个数,这个数是不断增长的,涨幅为1;要设计循环成立的条件(否则会变成无限循环),这个条件应该是累加到100的时候跳出循环。1+2+3+4+5+6+7+8+9…+100求出1到100的和第二步,编写代码(在编写代码的时候写注释是一种非常好的习惯):1+2+3+4+5+6+7+8+9…+100求出1到100的和第三步,测试程序1+2+3+4+5+6+7+8+9…+100缩进缩进告诉你代码块从哪里开始,到哪里结束!缩进注意事项要保证整个代码的缩进程度是一样的总结问:在Python中使用什么可以实现循环?问:缩进是什么,使用缩进要注意什么?问:使用循环有三点要注意,这三点分别是?练习1请问下面的循环会执行多少次,为什么:练习2下列程序有错误,请将程序修改成能正常执行的程序:练习3编写一个程序显示一个简单乘法表,输出如下:2打印直角三角形一次只能输出一颗*2打印直角三角形打印矩形i

=

1while

i

<=3

:

print("*

*

*")

i

=

i

+

1打印矩形i

=

1while

i

<=3

:

print("*

")

i

=

i

+

1一次只能输出一颗星i

=

1while

i

<=3

:

print("*",end

=

'

')

i

=

i

+

1打印矩形i

=

1while

i

<=3

:

print("*",end

=

'

')

i

=

i

+

1print()i

=

1while

i

<=3

:

print("*",end

=

'

')

i

=

i

+

1print()i

=

1while

i

<=3

:

print("*",end

=

'

')

i

=

i

+

1嵌套循环将循环看做一个整体,循环里头写循环用嵌套循环打印矩形i

=

1while

i

<=3

:

print("*",end

=

'

')

i

=

i

+

1print()i

=

1while

i

<=3

:

print("*",end

=

'

')

i

=

i

+

1print()i

=

1while

i

<=3

:

print("*",end

=

'

')

i

=

i

+

1

j

=

1while

j

<=

3:

i

=

1

while

i

<=3

:

print("*",end

=

'

')

i

=

i

+

1

print()

j

=

j

+

1使用嵌套循环打印小三角形打印小三角形i

=

1while

i

<=1

:

print("*",end

=

'

')

i

=

i

+

1print()i

=

1while

i

<=2

:

print("*",end

=

'

')

i

=

i

+

1print()i

=

1while

i

<=3

:

print("*",end

=

'

')

i

=

i

+

1打印9*9的三角形for

循环Python中还有一种方式能实现循环的功能,并且有时候用起来比while更加简单for

looper

in

[1,2,3,4,5]:

print("做了",looper,"个俯卧撑")

变量

looper

1

开始,循环五次,每次循环给looper赋值为12345;循环执行的次数由列表中数字的数量决定(列表就是右边的“中括号”[1,2,3,4,5]);每次执行循环就会将列表中的一个值赋值给

looper

变量。使用for循环打印矩形range()函数现在要使用

for

循环来打印一个

100

*

100

的矩形。

for

i

in

[1,2,3,4,5,6,7,8,9,10,11....100]使用range()函数可以生成列表for

looper

in

range(1,6):

print("做了",i,"个俯卧撑")[1,2,3,4,5]range()函数range(6)range(1,6)[0,1,2,3,4,5][1,2,3,4,5]range(1,6,2)[1,3,5]使用for循环打印直角三角形for

i

in

range(1,10):

for

j

in

range(i):

print("*",end

=

"

")

print("")为什么第一个

range()

函数要写成

range(1,10),range(10)不行吗?为什么第二个

range()

函数写成

range(i),range(1,i)不行吗?总结问:什么是嵌套循环?问:range()函数有什么用,有几种使用range()函数的方式?问:除了while可以实现循环之外,另一种方式是什么,有什么特点?练习1请问下列程序的运行之后,count的值为多少:练习2输出一个九九乘法表(要求使用两种方法做这个练习1.while循环,2.for循环),效果图如下;练习3输出两个直角三角形,效果图如下:3小明什么时候能买到无人机?今年7月,小明参加的社团想要组织一次户外活动,小明作为社团的宣传部长,他想要购买一台无人机在这次户外活动中进行航拍,但是小明没有足够的资金购买无人机,所以他打算参加勤工俭学,利用勤工俭学的收入来购买无人机。现在假设无人机的价格为M元,并且每月涨价10%。小明勤工俭学的收入为X元,每月上涨15%。并且小明能够将每月勤工俭学的收入全部存下来。请你编写一个交互式程序,判断小明从2月份开始到7月份之前能不能买到无人机。总结问题将问题总结:小明的月薪X元,每月收入上涨15%;无人机价格M元,每月上涨10%;以小明的月薪在7月前是否能买到无人机。研究问题定义变量分别存储小明的钱和当前月份;定义循环,根据小明的工资和无人机价格按照各自的增幅进行累加;每次循环判断小明的钱是否大于无人机的价格;循环结束的条件有两个:1.小明的钱大于无人机价格,2.当前月份大于或等于7月。将问题拆分为四步:编写伪代码sum=0#小明手里的钱month=2#月份whilemonth<7并且sum<M:#循环成立的条件是小明的钱小于无人机价格且当前月份小于7月

month=month+1sum=sum+XX=x*1.15#工资涨幅

M=M*1.1#无人机价格涨幅#如果sum>=M则输出在7月份之前能买到无人机#否则输出在7月份之前买不到无人机if判断语句生活中,我们经常需要先做判断,然后才决定是否要做某件事情,比如说你妈妈告诉你,这次考试如果考了100分,就给你买一台最新款手机。在Python中对于这种“需要先判断条件,条件满足后才执行的情况”,就可以使用If语句来实现。

score

=

100

if

score

==

100

:

print("奖励价值19999元的口头表扬一次")关系运算符与布尔类型

score

=

100

if

score

==

100

:

print("奖励价值19999元的口头表扬一次")布尔类型

score

=

100

if

score

==

100

:

print("奖励价值19999元的口头表扬一次")print(score

==

100)#Trueprint(10==

100)#False比较操作符会得出一个结果,这个结果只有两个固定的值:True和False,即真和假的意思关系运算符运算符描述实例==等于-比较对象是否相等(3==5)返回False!=不等于-比较两个对象是否不相等(3!=5)返回true>大于-返回x是否大于y(3>5)返回False<小于-返回x是否小于y(3<5)返回true>=大于等于-返回x是否大于等于y(3>=5)返回False<=小于等于-返回x是否小于等于y(3<=5)返回true如果结果为假呢?计算考试的分数等级,在60分以下,打印不及格,60-80分打印良,80-100分打印优秀。score

=

75if

score

<

60

:

print("不及格")elif

60

<=

score

<

80

:

print("良")elif

80

<=

score

<=

100

:

print("优秀")如果所有判断结果都是假score

=

175if

score

<

60

:

print("不及格")elif

60

<=

score

<

80

:

print("良")elif

80

<=

score

<=

100

:

print("优秀")else:

print("成绩无效")是时候帮助小明了sum=0 #小明手里的钱month=2 #月份X=800#月薪M=2000#价格whilemonth<7andsum<M:month=month+1sum=sum+XX=X*1.15#工资涨幅M=M*1.1#无人机价格涨幅ifsum>=M:print("小明将在",month,"月的时候买到无人机")else:print("小明在7月之前买不到无人机")总结问:如何实现判断?问:如果所有的条件都不成立怎么办?问:如果有多个条件怎么办?练习1下列代码输出结果是?

int

year

=

2046;

if

year

%2

==0:

print("进入了if")

else:

print("进入了else")

print("退出");练习2打篮球,编写一个交互程序,获取输入的人数,如果人数小于10人,就输出打半场,否则就输出打全场。练习3吃什么?使用多重判断语句编写一个交互程序,输入今天是星期几,输出今天吃什么,规则如下:如输入1,则输出:今天吃米饭如输入2,则输出:今天吃牛排如输入3,则输出:今天吃鸡排如输入其他,则输出:今天吃红烧肉练习4编写程序计算,有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少(假设一个月30天)?练习5打印出1000以内所有的“水仙花数”,所谓“水仙花数”是指一个三位数,它的每个位上的数字的3次幂之和等于它本身。例如:153是一个“水仙花数”,因为:4编写小游戏游戏开始,领取复活币20个游戏流程图编写游戏需要解决的问题复活币耗尽和通关的时候如何结束循环?角色死亡的时候如何结束当前循环进入下一次循环?如何在游戏不结束的情况下一直进行循环?break关键字某些情况下,我们在编写循环语句的时候可能需要提前结束循环,这个时候可以使用break关键字来实现。i

=

1while

i

<

10:

print(i)

i

=

i

+

1

if

i

==

5:

break1234break关键字break是打断的意思,在Python中的作用就是:结束整个循环如果在嵌套循环中break语句会有什么影响呢?for

i

in

range(0,3):

for

j

in

range(0,3):

if

j

==

2:

break

print("i

=",i,"j

=",j)

i

=

0

j

=

0i

=

0

j

=

1i

=

1

j

=

0i

=

1

j

=

1i

=

2

j

=

0i

=

2

j

=

1结论:break只能跳出当前循环语句continue关键字continue是结束本次循环,开始下一个循环i

=

1while

i

<=

8:

if

i

==

5:

i

=

i

+

1

continue

print(i)

i

=

i

+

11

234678做个题i

=

0while

i

<=

20:

i

=

i

+

1

if

:

print(i,"是偶数")

print(i,"是奇数")

if

i

==

13:

无限循环无限循环也叫死循环,很多时候死循环都结合break和continue一起使用

i

=

0while

True:

num

=

int(input("请输入一个数字:"))

if

num

==

1:

i

=

i

+

1

continue

elif

num

==

2:

break

if

i

>=4:

break总结break关键字的作用是什么?continue关键字的作用是什么?练习1.求5!和10!的值,并打印输出,5!表示5的阶乘即5x4x3x2x1练习2.A

国出现了肺炎疫情,第

1

天有

N

人被感染。每个病人在被感染的第

2

天开始感染其它健康人,每个病人每天可以感染

X

个健康人,病人在被感染的第

Y

天死去(死去的当天不再感染他人,也不计入当天存活人数)。请编写交互程序,求出第

K

天时,该国有多少被感染且活着的病人?样例输入:

5

4

3

6

样例输出:

6400

解释:最开始

5

人被感染,每个病人可以感染

4

个人,病人在第

3

天就会死亡,在第

6

天的时候应该有

6400

个感染且活着的病人。ThankYou处理身边的数据-Python数据类型处理更多的数据问:请问如何编写代码保存班上5位同学的考试成绩?答:简单,定义五个变量就行。问:现在班上有100位学生,需要你保存他们的成绩,计算他们的成绩平均值、最高分,并且要将成绩排序,该怎么办?答:emmm……仅仅使用Python的基础数据类型,不能存储大量的数据如何临时存储大量的数据列表(list)字典(dictionary)Python中的列表和字典,可以将很多数据存储在一起,放在某种“组”或者“集合”中,这样就能对整个集合进行某些处理,也可以更容易地记录一组数据。你的老师现在想请你帮他统计学生的成绩信息,老师的需求如下程序可以依次录入6位学生的成绩;计算学生成绩的平均分;找出最高分;对所有学生的成绩进行降序(从大到小)排序。要完成这项任务,我们需要先学习列表如何使用1统计成绩信息列表列表:由一系列按特定顺序排列的元素组成。用方括号([])来表示,用逗号来分隔其中的元素。创建列表使用列表推导式arr=[i*2foriinrange(5)]print(arr)运行结果:[0,2,4,6,8]获取列表中的数据列表中每个元素都是有序地排列,每个元素都有自己的位置编号(索引值)。我们可以使用列表名加索引值的中括号来提取相应位置的元素friends=["张三","李四","王五"]print(friends[0])运行结果:张三为什么索引值从0开始而不是从1开始要获取列表的第一个元素,需要使用friends[0],可能你会有疑问,为什么索引值从0开始而不是从1开始?计算机的内部使用的是二进制的方式来存储数据的(也就是”比特”),而不是我们常用的十进制二进制计数是从0开始的且只有0和1。所以为了最高效地使用比特位,内存位置和列表索引也都从0开始找错误scores=[90,80,70]print(scores[0])print(scores[3])请问这段代码有没有错误呢?如果有,错在哪里使用列表常见错误listindexoutofrange,意思就是列表索引越界了(这是初学者学习列表最容易犯的错误),在scores列表中只有三个元素,但是scores[3]访问的是第四个元素,列表中没有第四个元素,所以报错了。基于此可以得出一个结论,列表索引的最大值为:列表的长度减1获取列表中的多个元素有时候获取一个元素满足不了需求,列表也支持获取多个元素。提取多个元素可以使用列表的切片(类似数学的区间)操作,通过列表名[startIndex:stopIndex]即可提取多个元素,示例如下。friends=["张三","李四","王五","赵六"]print(friends[0:2])#和print(friends[:2])效果相同print(friends[2:4])#和print(friends[2:])效果相同运行结果如下。['张三','李四']['王五','赵六']向列表添加元素给列表添加元素可以使用append()函数friends=["张三","李四","王五"]friends.append("赵六")#添加元素print(friends)运行结果:['张三','李四','王五','赵六']列表删除元素给列表添加元素可以使用append()函数friends=[“张三”,“李四”,“王五”,“赵六”]delfriends[0]print(friends)delfriends[0:2]print(friends)运行结果:['李四','王五','赵六’]['赵六']录入学生成绩i=0student_scores=[]#定义空列表存储学生成绩whilei<6:#使用循环控制录入成绩的次数print("请输入第",(i+1),"位学生成绩")score=int(input())#获取某位学生成绩student_scores.append(score)#将每次录入的成绩存入列表i=i+1print(student_scores)计算平均分平均分=总分÷学生数学生的成绩信息存储在列表中,可以使用循环将列表中的元素取出来,然后求和,最后计算平均分i=0student_scores=[]whilei<6:print("请输入第",(i+1),"位学生成绩")score=int(input())student_scores.append(score)i=i+1#求总分sum=0forscoreinstudent_scores:sum=sum+scoreprint("总分为:",sum)print("平均分为:",sum/len(student_scores))计算最高分在编程中求最高分就像“打擂台”,我们可以定义一个擂主,有若干个挑战者,挑战者如果战胜了这个擂主,这位挑战者就成为擂主。计算最高分max=student_scores[0]#定义最大值为列表第一个元素#使用for循环实现forscoreinstudent_scores:ifmax<score:max=score#挑战者成为擂主print("最高分为:",max)

#使用while循环实现i=1whilei<len(student_scores):ifmax<student_scores[i]:max=student_scores[i]#挑战者成为擂主i=i+1print("最高分为:",max)对成绩排序使用sort()函数即可对列表排序student_scores.sort()print(student_scores)运行结果:[50,70,78,89,90,100]。student_scores.sort()student_scores.reverse()print(student_scores)运行结果:[100,90,89,78,70,50]。使用reverse()函数即可列表进行反转student_scores.sort(reverse=True)print(student_scores)使用reverse参数也可以实现反转课后练习

1.请编写交互程序,获取用户输入的华氏温度(获取6次)并通过列表保存,然后依次将列表中的华氏温度转换为摄氏温度,并存储在列表中,最后将列表中数据输出,温度转换公式如下。课后练习2.编写交互程序,获取用户输入的6个名字数据并存入列表中,然后对列表进行如下操作。第一步:将该列表末尾的元素删除,并将这个被删除的元素值保存到deleted_list变量;第二步:将deleted_list插入到第一步删除后的列表索引位置为2的地方;第三步:将第二步处理过的列表索引位置为1的元素删除;打印输出deleted_list变量;打印处理之后的列表。2修改补考成绩在实际考试中很多时候是多门考试,考试完成了之后不及格的同学有一次补考的机会,如果补考分数达到60分以上,原来不及格的分数就可以被调整为60分。任务:编写代码,将未及格的分数调整至60分。二维列表二维列表:以一维列表作为元素的列表在Python中要存储一张表格的数据可以使用二维列表创建二维列表1.静态方式创建stu_scores=[[0,0,0],[1,1,1],[2,2,2]#结尾不要有逗号]2.动态方式创建stu_scores=[]foriinrange(3):temp_list=[]forjinrange(3):temp_list.append(0)stu_scores.append(temp_list)print(stu_scores)修改二维列表的值要修改二维列表中的值,首先需要对列表中的元素进行访问。访问二维列表中的元素分为两个步骤。确定要访问的元素在哪一行;确定要访问的元素在哪一列。例如:访问二维列表中第二行第三列的元素stu_scores[1][2]遍历二维列表遍历:将列表中所有的元素都看一遍。例如:遍历二维列表,循环输出列表中的数据。stu_scores=[[0,0,0],[1,1,1],[2,2,2]]

foriinrange(len(stu_scores)):#定位每一行的元素,len(stu_scores[i]代表每一行的长度forjinrange(len(stu_scores[i])):print(stu_scores[i][j],end="")print("")000111222运行结果修改补考成绩定义学生成绩列表;遍历所有学生成绩;判断成绩是否低于60分。如果是则改为60分。student_scores=[[90,50,49,100],[80,70,7,80],[50,55,44,61]]

foriinrange(len(student_scores)):forjinrange(len(student_scores[i])):ifstudent_scores[i][j]<60:student_scores[i][j]=60print(student_scores)运行结果:[[90,60,60,100],[80,70,60,80],[60,60,60,61]]。将结果保存为文件将结果写入到csv文件中,代码如下。importcsvwithopen('D://stu_scores.csv','w')ascsvfile:head=['语文','数学',"英语","历史"]writer=csv.writer(csvfile)writer.writerow(head)#写一行数据writer.writerows(student_scores)#写多行数据课后练习定义二维数组:[[100,59],[20,100],[22,33]],然后将该二维数组的值改为:[[1,2],[1,2],[1,2]]2.有数据如下:[["小A","女",21,"大一"],["小B","男",23,"大三"],["小C","男",24,"大四"],["小D","女",21,"大一"],["小E","女",22,"大四"],["小F","男",21,"大一"],["小G","女",22,"大二"],["小H","女",20,"大三"],["小I","女",20,"大一"],["小J","男",20,"大三"]]请编写代码找出所有大一学生的信息,并输出。3学生成绩排序在上一个任务中,我们将学生的补考通过的成绩改为了60分。但是这些学生没有姓名数据,只有一个成绩列表,我们不知道一个成绩列表代表的是哪位同学的成绩。真实情况下他们的成绩信息应该如下图所示。任务:将学生信息按照总成绩进行降序排序字典字典:将某个值和另一个值关联起来,例如汽车与车牌号,就是通过车牌与车关联起来。Python中的字典就是一种将两个数据关联起来的方式,被关联的两个数据,一个称为键(key),另一个称为值(value)字典中的每一个条目(item),都由一个键(key)和一个值(value)组成,它们合起来被称为键值对(key-value)创建字典创建字典student_scores={"张三":[90,50,49,100],"李四":[80,70,100,80],"王二麻子":[50,55,44,61]}添加数据给字典添加数据很简单,使用字典名[key]=value即可。tel_info={"zhangsan""lisi"tel_info["wangwu"]rint(tel_info)运行结果如下。{‘zhangsan’‘lisi’’wangwu’删除数据使用del字典名[key]可以删除字典中的数据tel_info={"zhangsan""lisi"deltel_info["zhangsan"]print(tel_info)运行结果如下。{'lisi'字典排序字典排序需要使用sorted()函数,使用sorted()函数需要传入两个参数。第一个参数是字典条目,字典条目可以通过字典名.items()获取;第二个参数是一个lambda函数(又称匿名函数,即没有名字的函数),第二个参数决定按照什么规则进行排序。示例:info={"zhangsan":[100,50,10],"lili":[1,2,3],"james":[10,20,100]}new_info=sorted(info.items(),key=lambdaitem:item[1][0])#排序

print(new_info)运行结果:[('lili',[1,2,3]),('james',[10,20,100]),('zhangsan',[100,50,10])]代码解释核心代码是:sorted(info.items(),key=lambdaitem:item[1][0])info.items()会返回字典所有的条目:[('zhangsan',[100,50,10]),('lili',[1,2,3]),('james',[10,20,100])];lambda

是一个表达式,用来定义一个函数;item代表字典所有条目中的某一条(排序函数会在运行的时候访问所有item),例如第一条item为:('zhangsan',[100,50,10]);item[1][0]:item[1]为[100,50,10],item[1][0]则是100。注意:排序完成之后如果使用print()函数输出info字典,会发现info没有变化,在这里sorted()函数并不会像sort()函数那样改变原有变量的顺序,而是会生成一个新变量。代码解释一句话总结:sorted(info.items(),key=lambdaitem:item[1][0])按照每一项中列表的第一个值进行升序排序,并生成一个新的列表。出现了圆括号——元组你有没有发现字典排序之后的结果中出现了圆括号()('lili',[1,2,3])这个圆括号的作用是什么呢?当圆括号包裹数据的时候,表示的是Python中的一个数据类型——元组(tuple)元组与列表的区别Python的元组与列表类似,不同之处有两点。元组使用圆括号(),列表使用方括号[];元组中的元素不可更改,列表中的元素可以更改。创建元组很简单,只需要在圆括号中添加元素,并使用逗号分隔即可。例如。tup1=(1,2,3)tup2=('zhangsan','lisi')掌握三个函数学生成绩排好序之后,我们需要将这些数据写入到csv文件中。为此我们还需要掌握三个函数。1.keys()和values()函数student_scores={"张三":[90,50,49,100],"李四":[80,70,100,80],"王二麻子":[50,55,44,61]}print(student_scores.keys())print(student_scores.values())print(list(student_scores.keys()))#转换数据类型print(list(student_scores.values()))#转换数据类型dict_keys(['张三','李四','王二麻子'])dict_values([[90,50,49,100],[80,70,100,80],[50,55,44,61]])['张三','李四','王二麻子'][[90,50,49,100],[80,70,100,80],[50,55,44,61]]运行结果:掌握三个函数2.extend()函数运行结果:scores=[50,60]s1=[1,2,3]s2=[4,5,6]scores.append(s1)scores.extend(s2)print(scores)[50,60,[1,2,3],4,5,6]完成成绩排序功能将所有学生信息按照总成绩进行降序排序,然后将排序后的信息保存至csv文件中学生成绩如图所示完成成绩排序功能student_scores

=

{

"张三":[90,50,49,100],

"李四":[80,70,100,80],

"王二麻子":[50,55,44,61]}#

按照总分进行排序new_stu_scores

=

sorted(student_scores.items(),key

=

lambda

item:item[1][0]

+

item[1][1]

+

item[1][2]

+

item[1][3]

,reverse=True)#

将元组类型转换为字典new_stu_scores

=

dict(new_stu_scores)

#

保存至

csv

文件import

csv

with

open('D://new_stu_scores.csv',

'w')

as

csvfile:

head

=

['学生姓名/科目','语文','数学',"英语","历史"]

writer

=

csv.writer(csvfile)

writer.writerow(head)

#写首行数据

keys

=

list(new_stu_scores.keys())

#

获取所有

key

并转换成列表

values

=

list(new_stu_scores.values())

#

获取所有

value

并转换成列表

for

line

in

range(len(keys)):

row

=

[]

#

将学生姓名和成绩组合成一个列表

row.append(keys[line])

row.extend(values[line])

writer.writerow(row)

#

写一行数据课后练习1.我们给学生成绩进行排序是通过总分排序,你能编写一个可以根据英语成绩降序排序的程序吗?2.模拟登陆程序,有用户数据如下。用户名

密码zhangsan123456xiaoma12345678laoma87654321lisiadmin123请创建字典保存用户数据,然后编写程序实现如下功能。用户输入用户名和密码可以进行登录;用户名和密码与用户数据匹配则输出:登录成功;若用户名与密码不匹配则输出:登录失败,请检查用户名和密码;若用户名不存在则输出:用户名不存在,请检查输入是否有误。4歌词词频统计HappyBirthdayToYou;HappyBirthdayToYou;HappyBirthdaydearmyfriend.HappyBirthdayToYou;HappyBirthdayToYou;HappyBirthdayToYou;HappyBirthdaydearmyfriend.HappyBirthdayToYou;HappyBirthdayToYou;HappyBirthdayToYou;HappyBirthdaydearmyfriend.HappyBirthdayToYou;HappyBirthdayToYou;HappyBirthdayToYou;HappyBirthdaydearmyfriend.HappyBirthdayToYou;任务:统计其中每个单词出现的次数,并保存至字典中。要完成这个任务,我们需要学习一个技能——字符串处理字符串我们人类能很容易分清楚整数,小数,文字的区别,但是计算机它不能。计算机虽然很强大,不过有时候又比较傻,除非你告诉他,012是数字,helloword是单词,否则计算机是弄不明白的。在计算机中要表示英文,中文,日文等等这些文字,我们就要用到字符串这种数据类型。字符串是Python中最常用的数据类型。可以使用单引号(’)或双引号(”)来创建字符串。定义字符串str1='hello‘#使用单引号定义字符串str2="world"#使用双引号定义字符串str3=str1+str2#字符串拼接print(str3)运行结果:helloworld使用+号,可以将两个字符串进行拼接,这个是我们学到的+号的第二种用法字符串与其他类型数据拼接字符串不允许直接和其他类型的数据进行拼接,如果要和其他数据类型拼接,需要先使用str()函数将其他数据类型转换为字符串类型。eat="我今天吃了"num=20rice="碗饭"

#print(eat+num+rice)#这一段是错误的代码#正确的做法是先将其他类型转换为字符串类型然后再用+号拼接print(eat+str(num)+rice)

运行结果:我今天吃了20碗饭。字符串常用操作字符串常用的操作有四种。字符串查找;字符串截取;字符串替换;字符串分割。字符串查找Python提供了内置的字符串查找函数find(),利用该函数可以在一个较长的字符串中查找一小段字符串(子字符串)如果该字符串中,有一个或者多个子字符串,则该函数返回第一个子串所在位置的最左端索引;若没有找到符合条件的子串,则返回-1。find()函数的基本使用语法如下。source_string.find(sub_string)函数参数的含义如下。source_string:源字符串;sub_string:待查的目标子字符串。字符串查找示例,在一个字符串中,查找两个单词的位置。#创建一个字符串source_string='众志成城,抗击疫情'#查看"成"在source_string字符串中的位置print(source_string.find('成'))#查看"武"在source_string字符串中的位置print(source_string.find('武'))运行结果如下。2-1字符串截取字符串其实也可以看作是一个字符列表,所以要截取字符串可以使用列表的切片操作,格式如下。str[start:end:step]函数参数的含义如下str:表示要截取的字符串;start:表示要截取的第一个字符的索引,如果不指定则默认为0;end:表示要截取的最后一个字符的索引,如果不指定则默认为字符串的长度;step:表示步长,步长可以省略,默认值为1。字符串截取示例:web_info=""str1=web_info[0:11]str2=web_info[0:len(web_info)]str3=web_info[-1:0:-1]#第一个-1可以表示字符串的最后一个位置str4=web_info[::-1]str5=web_info[0::2]print(str1)print(str2)print(str3)print(str4)print(str5)运行结果:codejiaonanmoc.gnanoaijedomoc.gnanoaijedoccdjann.o字符串替换Python提供了replace()方法,可以替换给定字符串中的子串,语法如下。source_string.replace(old_string,new_string)函数参数的含义如下。source_string:待处理的源字符串;old_string:被替换的旧字符串;new_string:替换的新字符串;示例,在如下字符串中,用“湖北”替换“武汉”。source_string='武汉加油'#利用replace()方法用子串"湖北"代替子串"武汉"print(source_string.replace('武汉','湖北'))运行结果:湖北加油。字符串分割Python提供了split()方法实现字符串分割。该方法根据提供的分隔符,将一个字符串分割为一个字符串列表,如果不提供分隔符,则程序会默认把空格、制表符、换行符作为分隔符。source_string.split(separator)函数参数的含义如下。source_string:待处理的源字符串;separator:分隔符。字符串分割示例:用#号作为分隔符,分割字符串。source_string='1#2#3#4#5'#利用split()方法,通过#对source_string字符串进行分割source_arr=source_string.split('#')#分割之后得到的是一个列表print(source_arr)print(source_arr[0])运行结果如下。['1','2','3','4','5']1字典与字符串很多时候字典都是和字符串一起使用的,而且字符串通常会作为字典的键(key)在字典中键(key)是唯一的如果同时往字典中添加两个相同的key会发生什么呢?字典与字符串示例:dic={"simple":101}

dic["simple"]=1print(dic)运行结果:{'simple':1}字典中key是唯一的,如果添加两个相同的key则会覆盖之前的key。字典与字符串因为key是唯一的,所以很多时候我们在给字典添加数据的时候需要先判断是否存在这个key示例dic={"simple":101}key="simple"ifkeyindic.keys():#判断key是否在字典中已经存在dic[key]=dic[key]+1else:#没有该key则添加初识值为1的数据dic[key]=1print(dic)运行结果:{'simple':102}编写歌词统计程序#定义字典存储词频数据str_info

="""Happy

Birthday

To

You;Happy

Birthday

To

You;Happy

Birthday

dear

my

friend.Happy

Birthday

To

You;Happy

Birthday

To

You;Happy

Birthday

To

You;Happy

Birthday

dear

my

friend.Happy

Birthday

To

You;Happy

Birthday

To

You;Happy

Birthday

To

You;Happy

Birthday

dear

my

friend.Happy

Birthday

To

You;Happy

Birthday

To

You;Happy

Birthday

To

You;Happy

Birthday

dear

my

friend.Happy

Birthday

To

You;"""

word_dic

=

{}str_info

=

str_info.replace(";","

").replace(".","

")word_list

=

str_info.split()

#

将数据分割for

word

in

word_list:

#

如果单词已经在字典中,则在原有的基础上加1,否则初始值为

1

if

word

in

word_dic.keys():

word_dic[word]

=

word_dic[word]

+

1

else:

word_dic[word]

=

1

#排序sorted_word_list

=

sorted(word_dic.items(),key

=

lambda

item:item[1],reverse

=

True)

print(sorted_word_list)运行结果:

[('Happy',16),('Birthday',16),('To',12),('You',12),('dear',4),('my',4),('friend',4)]

课后练习元素分类:有集合数据为:[15,26,37,41,52,66,77,88,100,99,90],现在需要你将所有大于66的值整合到一个列表中,并将该列表保存至字典的第一个key(key命名为num1)中,将小于66值保存至第二个key(key命名为num2)的值中。请你编写代码统计字符串“helloworldcodejiaonangpython”中每个单词出现的次数。项目习题列表nums=[2,7,11,15,1,8],请你编写程序找到列表中任意相加等于9的元素集合,如:[(0,1),(4,5)]。项目习题DateOpen2014-01-0179.3828582014-02-0171.8014302014-03-0174.7742842014-04-0176.8228612014-05-0184.5714262014-06-0190.5657122014-07-0193.5199972014-08-0194.9000022014-09-01103.0599982014-10-01100.5899962014-11-01108.2200012014-12-01118.8099982015-01-01111.3899992.有股市数据如表所示,请将这些数据存入csv文件中,然后编写代码读取文件信息,具体要求如下。第一行代表之后每一行逗号分隔的各个数据的含义,这里我们只要知道Date,Open的含义,分别代表日期,开盘价;读取文件数据,将日期和开盘价保存至字典中,日期作为key,开盘价作为value;编写可交互式的方式,让用户可以通过日期查询到相关开盘价。ThankYou代码复用让代码更精简定义函数调用函数你,把这面墙刷成棕色用函数的方式实现双11卷后价格计算每当双11的时候,都可以使用无门槛红包,而且每满400元可以减50元。大家都会趁着活动清空自己的购物车,小明也不例外。请你编写一个程序,该程序能够根据购物车的原始总价以及无门槛红包的金额,打印出双11当天清空购物车所需要花费的金额。练习1请定义一个叫calc_rect_area的函数,该函数需要打印出长方形的面积,并调用calc_rect_area函数练习2假设双11的满减规则变了,变成了满450减8。请根据规则重新用函数实现双11券后价格计算程序练习3假设双11

的满减金额每年都会变化,今年是满

400

50

,明年可能变成满

350

40

,后面又变成满

300

25

。请重新编写代码定义函数达到当满减金额变化后,不需要修改函数,只需要调用函数就可以计算清空购物车要花多少钱的功能找出成绩最好的学生小明是一名语文老师,他答应过学生,期末考试中谁的语文成绩排第一,就奖励一份小礼物。现在学生们期末考试的成绩已经出来了,小明需要找出谁的语文成绩最好。但小明不会编程,他希望你能帮他写一个程序用来找出谁才是top1。return的作用你,把这面墙刷成棕色老板,已经刷完了继续优化小明是一名语文老师,他答应过学生,期末考试中谁的语文成绩排第一,就奖励一份小礼物。现在学生们期末考试的成绩已经出来了,小明需要找出谁的语文成绩最好。但小明不会编程,他希望你能帮他写一个程序用来找出谁才是top1。代码复用的真谛练习1请实现一个名为get_abs的函数,该函数需要接收一个名为num的参数,并将num的绝对值作为返回值返回练习2请实现一个名为is_prime的函数,该函数需要接收一个名为num的参数,并返回num是不是一个质数。(质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数)。若是质数则返回True,否则返回False练习3请实现get_pass_students函数,该函数需要接收一个名为students_info的参数,该参数是一个字典。并返回students_info中成绩大于等于60分的学生的姓名。测试样例如下输入:{'张随便':88,'周文强':90,'胡菲菲':58,'李神奇':77,'陈精明':93,'贺大力':83,'肖小奇':79,'赵大狗':61,'黄传奇':52,'吴亮':87,'王杨':95,'诸葛明':91}输出:王杨陈精明诸葛明周文强张随便吴亮肖小奇李神奇赵大狗什么是模块?Python内置或第三方开发者提供的一堆专注于某个领域的函数的集合使用模块的套路1.导入模块2.使用模块提供的函数importrandom

#一堆数字value=[1,2,3,4,5,6]#random.choice表示使用random模块中的choice函数result=random.choice(value)#输出挑选出来的数字print(result)解决今天吃啥的问题尝试设计一个叫“今天吃啥”的程序来解决今天吃啥的问题“今天吃啥”程序的功能很简单,运行程序后从你喜欢的各种美食中,随机挑选一种作为结果打印出来即可。练习1请编写一个程序,模

温馨提示

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

最新文档

评论

0/150

提交评论