week3python
一、类型的概念:程序编程不容许有歧义的数据类型存在,因此对数据进行了划分,python语言类型分为,数字类型、字符串类型、元组类型、列表类型、文件类型、字典类型。git
i:数字类型:算法
python语言包括三种基本的数字类型:整数类型,浮点类型和复数类型。编程
整数类型能够是十进制、十六进制、二进制和八进制。pow(2,pow(2,15))计算结果有不少不少位,那到底该怎么判断有多少位呢?咱们带着这个疑问去学习本节课。整数类型没有限制。api
浮点数类型,在计算机上有专门的浮点数运算模块,浮点数和整数通常分开不一样的类型。浮点数精度有限制,不一样的计算机精度不同,sys.float_info 能够查看计算机的浮点数精度。所以,咱们只要不是及高度的计算,一搬认为浮点数也是没有限制的。数组
科学计数法表示的浮点数96e四、4.3e-三、9.6E五、0.0、-0.三、77.8.安全
复数类型:app
三种数字类型的关系:1)存在一种逐渐扩展的关系,整数-》浮点数-》复数(整数是浮点数的特例,浮点数是复数的特例。不一样数字类型之间能够进行混合运算,运算后生成结果为最宽类型。13+4.0=17.0(整数+浮点数=浮点数)框架
2)三种类型能够相互转换int()\float()\complex(x) 将x变为复数。int(4.5)=4,float(4)=4.0,complex(4)=4+0j,若是将复数像浮点数和整数转换会报错。若是须要将复数转换成整数或者浮点数那须要用到具体的函数将复数的虚部先转换一下。dom
数字类型的判断:type(x)返回x的类型,适合于全部类型的判断。
数字类型的运算:整数类型和浮点数类型最为经常使用。python提供了12个内先运算符和函数,+-* /等等对这两个类型开展运算。 python经过math库提供更多的运算。
ii:字符串类型:
1)字符串也有切片。能够遍历字符串中的每个字符。字符串也有不少的函数,例如:upper()将字符串中的字符变成大写、lower变成小写、capitalize首字母大写、strip()将字符串两端的空格去掉或去掉两端指定字符、split()按指定的字符来分割字符串为数组、isdigit()判断是不是数字类型,若是是返回True不然False、find()按照指定内容来搜索字符串、replace()替换字符串中的内容,字符串有近百的函数咱们这里没有一一列出,在实际的工做中满满积累字符串使用的函数。 字符串能够打印出转义字符或者空格,例如“hello\nworld\nmasisi”print()之后输出是hello
world
masisi。字符串类型能够经过+或者*进行链接,如:3*“hello”比变为了‘hellohellohello’。len()函数能够返回一个字符串的长度,例如:len(“hello”)返回5。大多数数据类型均可以经过str()来转换成字符串,例如数字类型、浮点数、科学计数法,str(123)“123” str(12.3)“12.3” str(123e+10)
2)有一个小例子:输入一个月份数字,返回对应月份名称缩写。
使用ipo方法进行分析:输入:输入月份的数字
处理:利用字符串中基本操做来实现这个功能
输出:月份名称缩写
iii:元组类型tuple,元组能够包含多个元素,多个元素之间用逗号分开,t1=123,456,"hello"数字和字符串只包含list一个元素。元组能够是空的 t2=(),元组能够包含一个元素t3=123,元组外侧可使用括号,也能够不使用。
元组有3个特色:一、元组中元素能够是不一样类型,t3=123,4,56,("hello","中国")
二、元组中个元素存在前后关系,能够经过索引方式来访问元组中的元素。t3[0]
三、元组定义后不能更改也不能删除。
元组的概念接上:与字符串类型相似,能够经过索引区间来访问元组中部分元素,t[1:]。与字符串同样,元组之间可使用+或者*进行运算。
tuple类型可使代码更安全,若是想要代码更灵活,那咱们使用列表类型。
IV:列表类型list,
1)列表的操做:列表能够像字符串同样使用+来链接两个序列,使用*来对序列进行整数次重复,索引序列中的元素、区序列的一个字序列(切片),序列中元素个数len(),对序列进行循环列举 for var in seq:,成员检查expre in seq
2)列表的操做:list.append(x)将元素x追加到列表最后、list.sort()将列表元素排序、list.reverse()将列表元素反转、list.index(x)返回第一次出现元素x的所索引值,list.insert(i,x)在位置i处插入新元素x,list.count(x)返回元素x在列表中的数量,list.remove(x)删除列表中第一次出现的x,list.pop(i)取出列表中位置i的元素并删除它。对于字符串函数咱们可使用split()将其拆分红一个列表。
字符串、元组、列表之间怎样相互转换:
s=“hello”
list(s)
tuple(s)
元组合列表转换成字符串用到join()
"".join(list(s))
"".join(tuple(s))
二、math库和random库和实例
math库与random库-PPT
三、课后练习
1)python提供两种字符串格式化方法,一种是相似c语言的格式化方法%,另外一种是format()方法。python推荐使用format()方法。
week4 python程序之控制结构
一、程序基本结构:草图,流程图,顺序结构,分支结构,循环结构
二、分支结构分为单分支机构和双分支结构
1)eval函数:用来执行一个字符串表达式,并返回表达式的值
二次方程求解案例,用到了eval()。如:a,b,c=eval(input("a,b,c")),不然不能连着输入a,b,c ,得一行一行的输入。input输入的数字是字符串的类型,eval(input())输入的是数字类型
三、多分支结构
1)if ...else...中嵌套if else ,但处理复杂问题的时候,这种就太麻烦了,因此python中有多分支机构 if elif else 多分支语句来解决分支结构嵌套问题
2)二次方程求解案例:考虑a=0即分母为零的状况,在分母不为零的状况下,考虑 sqrt()=0单根的状况,sqrt()>0双根的状况和sqrt()<0没有根的状况
四、异常处理
1)二次方程求解实例咱们用分支结构来判断了求根公式是否为零的几种状况,可是若是程序设计的时候每一句话都要用分支结构来判断其各类状况,那重要的算法语句将不会清晰易懂,因此咱们不必用分支结构来对一些简单的常常会出现的问题就行分状况解决,咱们可使用异常处理。
2)try:
..............
..............
except ZeroDivisionError:
......
except SyntaxError:
......
except:
......
else:
.........
.........
finally:
try 去捕捉代码异常,例如sqrt()异常,若是捕捉到对应的异常的话,就执行except捕捉到对应异常的语句,try语句后面能够跟若干个except语句,except也能够不用写具体的异常,最后执行finally语句。若是try没有捕捉到具体的语句,则执行 else后面的语句和finally语句。
3)二次方程求解案例:except后面捕捉的是一个NameError 错误,可是我故意测试一个值的错误,看看程序是会抛出异常呢,仍是会崩溃.
测试结果为,except只会抛出 后面对应的错误,例如except NameError 只会抛出名字错误的语句,若是是语法错误的语句,则不会抛出,程序仍是会奔溃。
五、三者最大实例分析
1)三者最大实例有4种解决办法,第一种通盘比较,即将每个值与其它的值进行比较,以肯定最大值。if x1>x2 and a1> x3 elif x2>x1 and x2>x3 else x3. 第二种决策树 先判断x1>x2 ,若是成立再判断x1>x3,不然判断x2>x3. 这两种方法对于处理3个数字中最大的数还比较好解决,可是解决多余3个数字的时候就会有问题,算法变得十分复杂。第三种是 顺序处理方法,建一个max变量,先将一个变量赋值给max,第四种是 python 内置函数 max函数。
六、基本循环结构:
1)for 循环便利列表和字符串,遍历的时候有累加器,把每一次的值累加起来,再求平均值。for循环在执行过程当中,直接在序列上进行遍历,而非在内存中生成一个新的序列拷贝进行
2)for i in range(5):
......
else:
......
for else 和try else 的状况很类似。 for 循环遍历,若是for 条件不成立了再执行else
七、通用循环构造方法
听不懂老师讲的,暂时先过吧
八、死循环/嵌套循环
1)死循环并非没有好处,while True 和while 1也有其价值
2)听不懂,暂时先过吧
九、布尔表达式
1)布尔操做符:and or not,优先级是not and or
week5:python编程之代码复用
一、函数定义和做用、调用与返回
1) 函数返回单个值或者多个值,经过return返回值来和调用程序进行信息传递,也能够经过函数参数来和调用程序进行信息传递(值传递和引用传递,例如数字类型的传递是值传递,列表类型的传递是引用传递)
2)函数是代码的一种抽象
二、函数与递归
函数递归远离合练习
三、函数实例
利用turtle库和函数递归来画一颗数和多颗树组成的森林。
之后用到了再画
四、课后练习
绘制一个显示当前时间的七段数码馆
week6 python编程之组合类型(文件和字典)
一、文件的基础
1)文件和编码的概念:
存储在外部介质上的数据或信息的集合.编码指的是信息从一种形式转换成另外一种形式的过程。
2)文件的基本处理
打开文件:创建磁盘上的文件与程序中的对象相关联,经过相关的文件对象得到。file=open(<name><mode>),mode有 r、 w、 a。 rb 、wb 、ab。r+。
b是二进制,如图片、视频、音乐文件等等,都是用二进制存放的。
文件操做:读取、写入、定位、其余:追加、计算等读取是指将文件数据读到计算机内存。写入是指从计算机内存向文件写入数据。定位指定位文件读写位置。
读取:read()整个文件内容的一个字符串 、readline()每次读取一行、readlines()整个文件内容的列表,每项是以换行符结尾的一行字符串。
写入:write()把含有文本数据或者二进制数据块的字符串写入文件中、writelines()针对列表操做,接受一个字符串列表做为参数,将他们写入文件,而且行结束符不会自动被加入。
文件遍历:最多见的文件处理方法。通用文件遍历代码框架:
关闭文件:关闭文件即切断文件与程序的联系。写入磁盘并释放文件缓冲区
3)文件实例一
将data.txt中的数值数据,使用turtle库来绘制动态图形路径。
list(map(float,line.split(',')))函数的意思
4)文件实例二
将两个文件合并成一个文件
动手操做一下这两个案例和前面的一个案例
5)字典的概念:
6)字典的操做:
为字典增长一项
访问字典中的值
删除字典中的值
字典的遍历
for key in students:
print ("key"+str(students[ke]))
遍历字典的键key .for key in students.keys():
遍历字典的值value。for key in students.values():
遍历字典的项。for item in students.items():
遍历字典的key-value:for item,value in adict.items():
是否一个键在字典中,in或者not in
字典的标准操做符:
-,<,>,<=,>=,==,!=,and,or,not
python还提供了丰富的字典方法,其中:
keys():返回一个包含字典全部key的列表
values():返回一个包含字典全部value的列表
Items():返回一个包含全部键值的列表
clear():删除字典中的全部项目
get(key):返回字典中key对应的值
pop(key):删除并返回字典中key对应的值
update(字典):将字典中的键值添加到字典中
7)字典实例一
搜索文件中单词频率统计,并绘制成柱形图
8)字典实例二
用字典结构遍历存储两个通信录文件
9)课后练习
词频统计