python7天的总结

------------------------------------------------------------------------------------------------

评价:1、函数 def  自定义行数和内建函数

2、re模块

3、python3和python的去别

4、字典,元组,列表,元组,集合的联系和区别

Python

一、Python介绍:

1、什么是Python?

Python是一门面向对象,解释型的动态类型的编程语言;

Guido van Rossunm 吉多·范罗苏姆 荷兰计算机程序员

2、什么是面向对象?

Python中一切皆为对象,对事物的描述和方法系统的定义为一个类,在这个类中的具体的一个实例就是我们所说的对象

例如:人就是一个类   -------  wf 对象

3、什么是解释型?

Python程序执行时无需先进行编译成二进制代码,直接在执行过程中对语句一条条进行编译

例如:java  装了jdk 编译,python不需要,可以直接编译

4、什么是动态类型?

是指Python程序在运行时可以改变其结构,新的函数可以被引进,已有函数可以被删除

例如:在运行的情况下修改,返回值(存储过程中可以运行以后拿到值,进行运用)

5、Python的特点?

a.特点:简单、易学、免费开源、可扩展性、可移植、高级语言、丰富的类库;

b.应用领域:网页开发、可视化界面开发、系统编程、数据分析、网络爬虫(用的多)、自动化脚本开发(测试用的多); java,ruby 、数据分析、AI人工智能、大数据、云计算、

6、Python的实际应用:

Youtube、豆瓣网、知乎

7、Python所支持的平台:

windows、linux ,macos

8、Python市面上使用的版本:

Python 2.7.xxxx (现在一些windows都支持,稳定)

Python 3.0.xxxx 现在的主流会越来越流行(目前最新版本3.9);

差别:版本的高低级而已,就是有一些功能不一样

二、Python中的运算

1,算术运算符

1,+ 加;2,- 减;3,* 乘;4,/ 除;5,% 取模;6,**取幂

7,//取整除'''

注意点:他们的优先级:先乘除后加减

2,赋值运算

1,+=  加法赋值 ;2,-=   减法赋值;3,*= 乘法赋值

4,/=  除法赋值;5,%=  取模赋值;6,**=  幂赋值运算符

3,比较运算符

1,==  等于;2,!=  不等于;3,>  大于;4,

5,>= 大于等于;6,<=  小于等于

注意:结果事返回布尔值:falsh ,true

4,逻辑运算符

1,and 与;2,or ;3,或;4,not   非

返回的结果也是布尔值;

5,位运算

1,&按位与

概念:把十进制转化换二进制,上下对应位都是1,则取1,否则取0,结果再转化换十进制

2,按位或

把十进制转换成二进制,上下对应位只要有一个是1,则取1,都为0则取0,结果再转换十进制|

3,按位异^

把十进制转换成二进制,上下对应位不相同,取1,相同取0,结果再转换成十进制

4, 按位取反~

公式 -(a+1) 变量a先加1再取负数

5, 向左移 <<

把变量转换成二进制,左移相应的位数把小数点右移小数位数,结果是小数点左边的二进制转换成十进制

6, 向右移 >>

把变量转换成二进制,右移两位把小数点左移两位,结果是小数点左边的二进制转换成十进制

7,成员运算符:in和not in

返回的也是布尔值;

三、 索引与切片

索引:索引 在公司中一般也叫做下标或者角标

1、我们可以通过索引位读取序列中的指定元素,索引可分为正向索引和负向索引

2、索引的表达式:str[x] 其中x是需要我们自己填写的一个数据,

如:str[1]、str[0]

3、索引中正向索引从0开始,负向索引从-1开始

4、表示不隔位

[起始索引位:结束位:步长值]

切片语法中:包含起始不包含结束,隔位不能为0可以为1,1表示不隔位,从2开始有效果

遍历函数中:包含起始不包含结束,隔位不能为0可以为

print (list(range(10)))

打印的结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

2,切片:

1、切片的表达式:str[start_index:end_index:step] 即[开始索引:结束索引:步长值]

2、解释:start_index:开始索引(可以取值)

end_index:结束索引(不能取值)

step:步长 (脚跨了几个楼梯)

3、注意

1)切片中如果步长不写则默认为1

2)切片取值从开始索引到结束索引,且结果不包括结束索引位的值 (取到索引位的前一位)

3)步长从开始索引走起,步长分正负

四、函数

1,字符串函数

capitalize():首字符大写

count():统计具体字符的个数

join():把字符串中的字符按自定义的分隔符连接在一起

split():把字符串通过制定标识符进行分割

strip(ab):删除字符串开头和结尾有a或者b的字符

istrip(ab):删除字符串开头有ab序列的字符

rstrip(ab):删除字符串结尾有ab序列的字符

startswith():判断字符串是否以什么开始

endswith():判断字符串是否以什么结尾

find/rfind():查询指定字符串的下标

replace(substring,newstring,max):替换字符

lower():方法转换字符串所有大写字符为小写字符

upper():字符串中的小写转换为大写

isdigit():判断字符串中是否全为数字

isalpha():判断字符串中是否全为字母

isalnum():判断字符串当中是否全都为数字或者字母或者字母与数字组合

istitle():判断字符串中首字母是否为大写,其他是否为小写,其他不为小写则为否

isupper()/islower():is开头的就是判断一个字符串是否展示位都是大写后者都是小写

2,列表

索引与切片赋值

list1=[1,88,'test','duoceshi']

list1[0]=666 结果为 [666,88,'test','duoceshi']

list1[2:]=sdada 结果为 [1,88,s,d,a,d,a]

append():添加一个元素

list1=[1,2,3,4,5]

list1.append('a') 结果为 [1,2,3,4,5,a]

extend():连接两个列表

list1=[1,2,3,4,5] list2=[6,7,8]

list1.extend(list2) 结果为 [1,2,3,,5,6,7,8]

insert():在指定位置前插入一个元素

list1=[1,2,3,4,5]

list1.insert(0,'test') 结果为 [test,1,2,3,4,5]

remove():删除元素

list1=[1,2,3,4,5]

list1.remove(2) 结果为 [1,3,4,5]

索引删除值

list1=[1,2,3,4]

del list1[0] 结果为 [2,3,4]

index:在列表中查找元素所对应的索引值

list1=[1,2,3,4]

list1.index(2) 结果为 1

sort:实现列表的升序排列

list1=[1,2,3,4,1]

list.sort() 结果为 [1,1,2,3,4]

sorted:实现降序排列

list1=[1,2,3,4,1]

print(sorted(list1,reverse=Trrue))

结果为 4,3,2,1,1

reverse函数:列表元素反转

list1=[1,2,3,4]

list1.reverse() 结果为 [4,3,2,1]

pop函数

list1=[1,2,3,4]

pirnt(list1.pop(0)) 结果为 1

3,元组

格式:a=(1,2,3)

元组转化为列表

b=list(a)

print(b)

列表转化为元组

a=tuple(b)

print(a)

4,字典

格式:a={'name':'zhangsan','age',18}

1,添加键

a[sex]='nan'

2,取出键

a.keys()

print(a)

3,取出值

a.values()

print(a)

4,取出具体键的值

print(a['name'])

5,字典添加元素

a.setdefault('sex','男')

6,删除字典

del (a)

print(a)

7,删除指定的键,连同值也删除

del(a['name'])

8,字典的遍历

for key in a:

print(key,a[key])

9,用items完成遍历

for key,values in a.items():

print(key,values)

10,POP(key)函数,删除指定键并返回删除的值

print(a.pop('name')) print(a)

结果为[age:18]

11,clear()清空字典所有项

a.clear()

print(a) 结果为[]

12,get(key),通过key获取值,当键不存在,返回none

print(a.get('name')) 结果为[zhangsan]

13,fromkeys函数可以给具体的键指定值

print({}.fromkeys(['name'],'age'))

print({}.fromkeys(['name'],'age'),'duoceshi')

14,popitem

print(a.popitem())

print(a)

15,update()函数利用一个字典变更另一个字典

b={'sex':'nan'}

a.update(b)

print(a)

5,集合

1、可变集合set

list1 = [1,1,1,88,88,'duoceshi','dcs']

set1 = set(list1)

set1.add('dcs')

set1.remove('dcs')

set1.pop() #把最前面这个给删除了

set1.clear()

print (set1)

2、不可变集合frozenset

test = 'hello'

a = frozenset(test)

b = a.copy()

b.add('888') #报错AttributeError: 'frozenset' object has no attribute 'add'

print (b)

五、 模块

1,time模块:

time.time-----1970年到今天过了多少秒

time.ctime------显示当前日期

time.sleep(2)--------休眠

time.asdtime()--------显示当前日期

time.strftime('%Y-%m-%d-%H-%m-%s')

2,random模块

random----随机生成0开头的浮点数

random.random()------随机生成小于1的小数

random.randint(1,5)------随机取一位整数,包含开始

random.randrange(1,100,2)-----根据range函数:(起始,结尾,隔位),支取1个

random.randrange(0,101,2)---取1-100之间的偶数

a=[1,2,3,4,5,6]

random.choice(a)---------随机取a列表中的一个数字

random.sample(a,3)-----列表中随机取自己定义的个数的值

random.shuffle(a)---------重新打乱a列表的顺序(先洗牌)

print(a)-------再打印

3,String模块

string.digits-----生成0123456789

string.hexdigits------生成0123456789abcdefABCDEF

string.ascii_uppercase----生成26个大写字母

string.ascii_lowercase-------生成26个小写字母

string.ascii_litters------生成26个小写字母和26个大写字母,

4,加密算法

base64位编码

1,加密

a=base64.b64encode(b'123456')

print(a) 结果为 b'MTIzNDU2'

2,解码

c=base64.b64decode(a)

print(b) 结果为 b'123456'

MD5加密

在线加解密:

http://encode.chahuo.com/

https://tool.oschina.net/encrypt?type=2

md5=hashlib.md5()#创建一个对象:md5

md5.update(b'123456')#通md5对象来调用update方法对某个值进行加密处理过

print(md5.hexdigest()) #通过hexdigest将md5加密密码进行十六进制转换输出

结果为:e10adc3949ba59abbe56e057f20f883e

5,os模块

a='D:\\www'

b='qqq.txt'

os.gitcwd()#获取当前操作文件的路径

os.path.isfile(a) #判断是不是文件

os.path.isidr(a) #判断是不是目录

os.path.exists(a) #判断文件或目录是否存在

os.listdir(a) #列出指定目录下的目录或文件

os.path.split(a) #分割文件名与目录

os.path.join(a,b) #连接目录与文件名或目录

os.mkdir(a) #创建一个目录

os.rename(old,new) #更改目录名称

六、判断与循环

1,判断

1、if条件判断语句单分支

if 判断条件:

语句块1……

else:

语句块2……

2、if条件判断语句多分支

if 判断条件1:

语句块1……

elif 判断条件2:

语句块2……

else:

语句块n

2,循环

1, while循环语句

while 条件表达式:

循环体语句

while什么时候进入循环?当循环条件成立时,进入循环

while什么时候退出循环?当循环条件不成立时,退出循环

注意:在写while循环语句时一定要让循环条件发生变化,否认很容易陷入死循环中

2, 循环语句

1、for循环的语法格式如下:

for ... in ...

语句块

2、先熟悉下range()函数:如果需要遍历一个数字序列,可以使用python中内建的函数range()

for i in range (10) #打印0到9、不包含10

for i in range (1,10) #打印1到9、不包含10

for i in range (0,10,2) #打印结果:0,2,4,6,8不包含10

3, continue语句

用法:continue语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。

4,break语句

用法:语句会立即退出循环,在其后边的循环代码不会被执行。

七、封装

(1)封装定义:

(2)封装的优点:

2.1封装数据可以很好的保护隐私,(将不需要对外提供的内容都隐藏起来)

2.2 封装方法主要原因是隔离复杂度

2.3 封装提高了代码的复用性。

2.4隐藏对象的属性和实现细节,提供公共方法对其访问

(3)python类的封装两种

3.1公用(共有):类中的变量和方法公用;他们名称前都没有下划线,公有的变量和方法,在类的外部,内部,以及子类都可以方位

3.2私有:在类中的变量或方法下,下划线__开头命名,则改变量或方法为私用,私有的变量和方法,只能在本类内部使用,类的外部以及子类都五法使用。

私有属性:

格式:__属性名=值    在类的外部不能使用(对象不能调用属性)

私用化封装后的限制:

(1)类 可以访问

(2)类外/对象外  不可访问

(3)子类和子类对象  不可访问

八、继承

继承特性

1、继承:类的继承是面向对象程序设计的一个重要思想,继承时子

类可以继承父类的内容,包括成员变量和成员函数。

2、在继承中一个类被另外一个类继承这个类称之为父类也称之为基

类,则另外一个类则为子类也称之为派生类。

九、多态

1、多态是以继承和重写父类方法为前提,对所有子类实例化产生的对象

调用相同的方法,执行产生不同的执行结果。

2、例如同样是人,但是当问起一个人的职业时会有不同的结果,可能是

软件测试工程师,可能是HR

3、一个对象的属性和行为不是由他所继承的父类决定的,而是由其本身

包含的属性和方法决定的

==========================================================

案例2:

评价:

1、案例写的详细,但是总结就是笔记

2、总结根据自己的情况,进行总结

一、 Python定义

二、 Python特点

三、 Python的不同点:

胶水语言、输出语句(print)、注释(Ctrl+/、#、’’’)

格式化输出:基本格式:('%d'%a)

%s :字符串 (采用str()的显示)

%c :单个字符

%d:十进制整数

%i :十进制整数

%o:八进制整数

%x:十六进制整数

%f:浮点数

%% :百分数

常用的运算操作:算术运算(加减乘除)、赋值运算(+=)、比较运算、逻辑运算、位运算、成员运算(in、not in)

四、 索引与切片

索引格式:str[ x],x为索引号

切片格式:str[start_index:end_index:step],str[::-1] 反转

常用字符串函数:

1、str.capitalize():实现首字母大写

2. str.count('xx')统计指定字符在当前字符串中出现的次数

3.'_'.join('xx')(拼接函数)自定义分割符,来分割当前的字符串,例如:'@'.join('xx')用@来将xx进行分割

4.分割函数 str.split('xx'):指定当前字符串中的一个字符作为分割符(用,替代字符串中的这个字符),且返回一个列表

例如:str = 'abcdefghigkl'

str1= 'admin:123123'

num = str.split('j')

print (num) 显示结果:['aSDfgh', 'ksl']

5.str.strip('xx'):删除字符串开头和结尾的字符

格式:str.strip('XX'):删除字符串以XX字符开头和结尾的内容

6、str.lstrip('XX'):删除字符串以XX字符开头的内容

print (str.lstrip('a')) 显示结果:bcdefjghigkl

7、str.rstrip('XX'):删除字符串以XX字符结尾的内容

print str.rstrip('l') 显示结果:abcdefjghigk

rstrip 意思:删除末尾字符

8、str.startswith('XX'):判断字符串中以XX字符串开头,如果条件成立返回 TRUE,

否则返回FALSE

print str.startswith('a') 显示结果: True #swith

9、str.endswith('XX')判断字符串中以XX字符串结尾,如果条件成立返回TRUE,否则

# 返回FALSE

print str.endswith('l') 显示结果:True

startswith(self prefix start end)

方法的参数

prefix 开始

end 结束

self 自己本前缀

start 身

10、find、rfind通过具体的值来找到对应值的索引位,

str.find('XX')

从字符串左边开始查找指定的字符串,且返回的是当前字符的索引位,一旦找到第一个将停止查找,如果查找的对象不存在则返回-1

print (str.find('n'))

显示结果:-1

print (str.find('c'))  # 左边开始查 显示结果:2 显示第一个的下标,没有显示-1

11、str.rfind('XX')从字符串右边开始查找指定的字符串,且返回的是当前字符的索引位,一旦找到第一个将停止查找,如果查找的对象不存在则返回-1

print  (str.rfind('k'))

显示结果:11  # 左边开始查
注意:取得索引都是正向索引  ,注意当出现多个同样的字符find和rfind 是不同的

12、str.replace('XX','YY')替换指定的字符串,且可以指定替换次数

print (str.replace('c', 'dcs'))

显示结果:abdcsdefjghigkl

13、replace()替换字符串中的字符 :replace(substring,newstring,max)

str.replace('XX', 'YY', 1)  #

方法中的1表示将指定字符替换的次数,从左到右开

始替换 --这里次数为1的话只会替换第一个发现的字母XX改下:

str = 'asDfghjksl'

print  (str.replace('c', 'dcs', 2))

显示结果:

14、str.lower()将字符串中的所有大写字母改为小写print  (str.lower())

显示结果(小写):asdfghjksl

15、str.upper()将字符串中的所有小写字母改为大写

print  (str.upper()) 显示结果:ABCDEFJGHIGKL

字符串判断方法

mtehod   方法

以下都是字符串的判断,结果只有true or false

17、name.isalnum() 判断字符串是否是字母或者数字  # alnum字母和数字,小写字母。

name = "1123abcdefg"

print(name.isalnum()) 判断字符串是否是字母

显示结果:ture

print (name.isdigit()) 判断字符串是否是数字  # digit

显示结果:flse

18、print  (name.islower()) 判断字符串是否是小写

显示结果:ture

19、print  (name.isupper()) 判断字符串是否是大写,有小写就显示false,只有大写字母和汉字仍为true

显示结果:flse

20、name.isspace() 判断字符串是否全部由空格组成。

五、列表、元组、字典及其常用操作

列表(list)

一、定义

1.list=[1,2,3,4,5]

2.通过list()进行转换

3.对列表操作:

通过索引赋值:格式  列表名[ 索引]=“ 新值”

通过切片赋值:格式  列表名[ 索引:]=“ 新值”

二、函数

1、赋值

第一种:赋值(索引方式)

a=[1,2,3,4,5,6] b=['大',‘家’,‘好’]

a[4]='yy'

结果:[1,2,3,4,'yy',6]

注意点:1.把原来对应索引位置替换成新的值

第二种:

a[2:]='蔡瑞峰为什么这么帅'

结果:[1,2,'蔡','瑞','峰','为','什','么','这','么','帅'](从索引号为2开始被后面的字符替代)

2、append   添加函数(默认添加在列表最后)

格式:变量名.append('hello')

举例:a.append('hello')

结果:[1,2,3,4,5,6,'hello']

3、extend     拼接函数(两个列表的拼接)

格式:变量名1.extend(变量名2)

举例:a.extend(b) (将b拼接在a后面)

4、insert      插入函数

1、根据索引值插入值:(如果索引已存在插入,之前的索引值+1, 不存在出入就插入指定索引值,超出索引值也是在最后显示)

第一种情况:超出的索引值

s =[1,2,3,4,5] #定义一个列表

s.insert(10,'hello') #给索引值为10的位置在最后一位

print(s) #[ 1, 2, 3, 4, 5,'hello']
备注:超出索引范围,都默认显示在列表的最后一位

第二种情况:存在的索引值

s =[1,2,3,4,5] #定义一个列表

s.insert(0,'hello') #给索引值为0的位置插入一个具体的值

print(s) #['hello', 1, 2, 3, 4, 5]
备注:插入的值是当前指定的索引,原列表中的索引加1或(往后推一位)

第三种情况:负向索引

s =[1,2,3,4,5,6] #定义一个列表

s.insert(-1,'hello') #给索引值为0的位置插入一个具体的值

print(s) #[1, 2, 3, 4,5,'hello', 6]

5、remove   删除

方法一:删除的是具体的值

第一种情况:有对应的值,有且只有一个

c=[1,2,3,4,5,6,"a"]

c.remove(2)

print(c)

打印结果: [1, 3, 4, 5, 6, 'a']

第二种情况: 删除有多个一样的值,只删除第一个

l = ['c', 1, 2, 3, 4,'c' ,5, 6, 'c']  # 定义一个列表

l.remove("c")  # 移除l列表中对应的具体值

print(l)    #显示结果 [1, 2, 3, 4, 'c', 5, 6, 'c']
备注:多个同样的值,从左开始删除第一个值,

# 移除l列表中对应的具体值

第三种情况:删除不存在的值,报错,不在删除的列表中

l = ['c', 1, 2, 3, 4, 5, 6, 's']  # 定义一个列表

l.remove("a")  # 移除l列表中对应的具体值

print(l)  # 显示结果:报错    删除的内容不存在列表中

6、del    删除

方法二:del 删除

第一种情况:

del  通过索引 删除列表种对应的元素

# l1 =[1,2,3,4,5] #定义一个列表

# del l1[4] #删除对应列表中对应的索引值对应的值

# print(l1) #打印结果:[1, 2, 3, 4]

第二种情况: 超出索引值,删除列表是错误的

l1 =[1,2,3,4,5] #定义一个列表

del l1[6] #删除对应列表中对应的索引值对应的值

print(l1) #显示结果:list assignment index out of range
备注:报错,列表索引超出范围

7、sort        升序

场景1、l1 =[5,4,3,2,1] #定义一个列表

l1.sort() #通过sort来对列表进行升序排序

print(l1) #[1, 2, 3, 4, 5]

场景二:字符和数值在一个列表中不能进行排序,报错

c=[1,2,"a",3,4,3,5,6,"a"]

c.sort()

print (c)

报错TypeError: '

场景三:列表中出现多个相同的数值排序(根据数值的大小并列)

d=[1,2,9,4,3,6,6,5,6]

d.sort()

print(d)

打印结果:[1, 2, 3, 4, 5, 6, 6, 6, 9]

8、sorted    降序

sorted要配合reverse一起使用才能实现升序与降序

格式:sorted(变量名,reverse=True)降序

sorted(变量名,reverse=False)升序

9、reverse  反转

格式:变量名.reverse()(实现列表中元素反向排列)

10、pop  删除(默认删除最后一个元素,也可以通过索引来删除)

格式:变量名.pop()

变量名.pop(索引号)

10、场景一:index根据列表中具体的值得出索引值

d=[1,2,9,4,3,6,6,5,6]

print(d.index(2))

打印结果:1

------------------------------------------------------------------------------------------------------------

元组(tuple)

一、定义

元组定义后由于不可直接修改则相对于代码来说要更加安全

1.a=(1,1,2,3,4,5,)

2.通过tuple()进行转换

3.tuple(a)=tuple(b)+tuple(c) 元组的拼接

注意:元组不能进行元素的修改与添加,因此要修改元祖内的数据需要通过list(tuple)将元组转化为列表

-------------------------------------------------------------------------------------------------------------------------------------------------------

字典(dict)

1 python中的字典:dict类型

2 键值对组成

3 键是唯一,值可以不唯一

4 {} 英文的大括号 也叫花括号

5 字典中键值是一个整体,如有多个键值对要用英文的,逗号隔开

6 整数类型不需要加单双引号外,其它都需要加单双引号

7 键和值用英文的:冒号  比如:name:zhangsan

(1)定义一个字典d ={'name':'zhangsan','age':18} #定义一个字典print(type(d))

字典的类型

print(d) #打印结果为:{'name': 'zhangsan', 'age': 18}

(2)列表转换成字典步骤 重点:(使用dict 就可以转换)

第一步:定义一个列表

l =[('name','zhangsan'),('age',18)]

第二步:使用dict 将列表转换成字典

di_ct=dict(l)#将列表转换成为字典

第三步:查看字典的类型

print(type(di_ct)) #字典类型

第四步:在打印字典

print(di_ct) #{'name': 'zhangsan', 'age': 18}

备注:字典转换是键与值一组,所以是2个值一组

(3)字典中添加键值对: 格式:变量名[键] =值

注意:字典中添加新的的键和值

d ={'name':'zhangsan','age':18}#定义一个字典

d['scroe']=100

print(d) #{'name': 'zhangsan', 'age': 18, 'scroe': 100}

(4)字典中有键,替换值(键不变,值变)

c= {'name': 'zhangsan', 'age': '18'}

c['name'] = 200

print(c) # 打印结果:{'name': 200, 'age': '18'}

小结:《1》、给字典中增加一个键值对:如原字典内没有相同的键值对则新增一个

《2》、如原有字典中有相同的键,则会将对于的键的值进行重新赋值''

3、通过keys取出对应的键

d ={'name':'lis','age':18} #定义一个字典

print(d.keys()) #(['name', 'age'])

# 通过keys来取出对应的键

print(type(d.keys())) #

4、通过values 取出字典中对应的值

v={'name':'lis','age':18} #定义一个字典

print(v.values()) #['lis', 18]

5、通过键来获取对应键的值

k ={'name':'lisi','age':18} #定义一个字典

print(k['name']) #lisi

6、6.1添加设置默认键值setdefault

mr ={'name':'lis','age':18} #定义一个字典6.1默认值不存在的情况下,直接添加键值mr.setdefault('scroe',100)

1

2

3

4

5

6

print(mr) #{'name': 'lis', 'age': 18, 'scroe': 100}
6.2 已有键值,在使用默认键值不会进行修改,或者增加

mr.setdefault('name','zhangsan')

print(mr) #{'name': 'lis', 'age':  18, 'scroe': 100}
备注:已经存在的值的优先级>默认值
6.3 直接修改 值,显示最新修改值  (修改默认值优先级小于直接添加的字典值)

mr['name']='wangwu'

print(mr) #{'name': 'wangwu', 'age': 18, 'scroe': 100}

7、删除键:(删除键,值也没有了)

1

2

3

dellkey={'name':'zhangsan','age':18}

del dellkey[ 'name']

print (dellkey)
注意点:键和值都要用引号,除数值外

8、使用for 循环获取key

1

2

3

d ={'name':'zhangsan','age':18}

for k in d:

print(k)  #拿到的是:键 值不拿

9、使用for循环获取key,values

1

2

3

s ={'name':'zhangsan','age':18}

for k in s:

print(k,s[k])

10、# 通过items()方法来获取对应键值对

1

2

3

t ={'name':'zhangsan','age':18}

for k,v in t.items():

print(k,v)

11、'通过pop函数删除指定的键,打印返回对应键的值'''

方法一:pop删除指定的键,返回对应的值

1

2

d2 ={'name':'zhangsan','age':18}

print(d2.pop('name')) #zhangsan

方法二:popitem在字典删除键值对,一般默认在末尾

1

2

d ={'name':'zhangsan','age':18,'':100}

print(d.popitem()) #('', 100)
备注:打印结果:字典中最后一个键值

12、clear  来清空当前字典中的键值对,返回一个空字典

1

2

3

d3 ={'name':'zhangsan','age':18}

d3.clear() #通过clear()来清空当前字典中的键值对

print(d3) #  打印结果:{}清空后返回就是一个空字典

13、get   ,get通过键获取对应的值

1

2

3

4

5

6

7

d ={'name':'zhangsan','age':18,'':100}

print(d) #{'name': 'zhangsan', 'age': 18, '': 100}

print(d.get('name')) #zhangsan #通过键获取值

print(d.get('')) #100

print(d.get('age')) #18

print(d.get('score')) #None  #通过不存在的键,返回的是none

print(d.get(100)) #None      #通过值去获取,返回时的none

14、快速生成一个新字典的方法fromkeys

方法一:

第一种情况:生成一个新的字典的键

print ({ }.fromkeys(['name','age']))  #{'name': None, 'age': None}

第二种情况:生成一个字典的键和值

print({}.fromkeys(['name','age'],'a')) #{'name': 'a', 'age': 'a'}

方法三:快速生成字典,并赋同样的值

1

2

d={'name':'zhang','age':18}

print(d.fromkeys(['name','age'],'c')) #{'name': 'c', 'age': 'c'}

15、update  方法 将多个字典合并

1

2

3

4

d1 ={'name':'zhangsan','age':18} #定义一个字典

d2={'scroe':100} #定义一个字典

d1.update(d2) #通过update方法将d1字典和d2字典进行合并

print(d1) #{'name': 'zhangsan', 'age': 18, 'scroe': 100}
备注:合并字典以后,在d1表中

16、copy 复制字典

1

2

3

4

s={"name":"zhangsan","age":15}

c= s.copy()

print (c)

print (s)

17、del删除字典

1

2

3

4

5

6

7

8

#场景一:

d={"name":"lixi","age":18}

del d

#场景二:删除键

d={"name":"lixi","age":18}

print(d)

# del (d["name"])

# print(d)

备注:has_key  在python2中有,在python3中不存在

六、 Python中的语句

输入语句input(‘xxx’),输出语句:print(‘xxx’)

If语句:单分支,多分支,if嵌套

While循环语句

For循环语句

Continue语句(跳过指定条件,继续执行后面)

Break语句(退出循环,不再执行break后面的内容)

七、 Python中的函数

1、函数:一个工具,随调随用

优点:

(1)降低代码冗余

(2)增加代码的复用性,提高开发效率

(3)提高程序扩展性

(3)函数有两个阶段:定义阶段,调用阶段。

(4)定义时:只检查函数体内代码语法,不执行函数体内代码。

(5)比如:我们存储的过程,就是把所有的语句块,调用

(6)封装:就是把代码片段放在函数当中

2、自定义函数

def 自定义函数名():

函数体

函数 的调用格式 函数名()

举例:def fun():

print(‘请输入密码:’)

调用:fun()

调试时调用多个函数:if __name__=='__main__':

从其他模块调用:import aa (导入aa模块)

aa.fun( )(调用aa模块的fun函数)

3、可变长元组(*list)与可变长字典(**dict)

4、全局变量与局部变量

5、return(函数的返回值)

6、内置函数(format、zip、open、with open、abs、sum、map)

6.1format(格式化输出函数)

a ='{}'.format('hello','ni','hao')

print(a) #打印结果 hello

6.2 zip(打包函数)

打包:zip(a,b) print(list(zip(a,b)))

解压:s,c=zip(*zip(a,b)) print(list(s))

6.3 open(打开与编辑文件)

open完整的语法格式为:

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

file: 必需,文件路径(相对或者绝对路径)。

6.4 with open(open的扩展)

url =r'C:\Users\Administrator\PycharmProjects\untitled1\requester\ss.py'

with open(url,'r',encoding='utf-8')as o:

a=o.read()

print(a)

八、 Python中的模块

模块的导入(import)

Time模块(时间的显示)

time.time()(显示从1970年到现在一共经历的秒数)

time.ctime()(显示当前实时时间)

time.sleep()(休眠,括号内加上数字表示休眠多少秒后再执行)

time.strftime()(自定义时间格式:%Y-%m-%d-%H:%M:%S)

time.asctime()(转换为asc码形式显示时间)

3、random模块

random.random() 随机生成0开头的浮点数

random.randint(1,4) 随机取一个在1-4范围内的数(不包含4)

random.sample(a,4) 在a中随机抽取4个数生成一个列表

random.randrange() 递增随机取一个值

random.choice(a) 在a列表中随机取一个值

random.shuffle() 随机洗牌(将列表中的所有元素随机调 动输出)

string模块(字符串)

string.digits 生成0-9的整数

string.hexdigits 生成0-9的整数+大小写的a-f和A-F

string.ascii_uppercase 生成26个大写字母

string.ascii_lowercase 生成26个小写字母

4、加密与解密

5、OS 模块(对于目录文件路径常用的模块)

OS.getcwd() 获取当前文件对应的目录(相对路径)

os.path.isfile(a_path) 判断当前是否为文件,返回布尔值

OS.path.isdir() 判断是否为目录

os.path.exists(a_path) 判断文件(目录)是否存在

os.mkdir() 创建目录mkdir(a,755)注意:目要设置权限,755或者777

os.remove(a_path) 删除文件(无法删除目录)

os.listdir(a_path) 获取当前目录下所有的文件和目录

os.path.split(a_path) 对某个路径进行分割,要求:把路径 分隔以后,再通过索引取出分隔后的值,在使用得到的值进行拼接,拼接成新的路径

例如:

#第一步先使用split分割 a_path ="D:\\bao" print(os.path.split(a_path)) # 第二步在根据索引取值 path=os.path.split(a_path)[0] #第三步在拼接 b_path=os.path.join(path,11.py) print(b_path)

os.path.abspath(a_path) 通过名称获取当前名称对应的路径(绝对路径)

os.rename(old_path,new_path) 重命名目录和文件

6、re模块(正则匹配)

# 预定义字符集匹配:

\ d:    数字0-9

\D:   非数字

\s:   空白字符

\n:   换行符

\w:    匹配字母数字

\W:  匹配非字母数字

^:表示的匹配字符以什么开头

$:表示的匹配字符以什么结尾

*:匹配*前面的字符0次或n次 #eg:ab(* 能匹配a 匹配ab 匹配abb )

+:匹配+前面的字符1次或n次

?:匹配?前面的字符0次或1次

{m}:匹配前一个字符m次

{m,n}:匹配前一个字符m到n次(包括n次),m或n可以省略,mn都是

1、findall    #从第一个字符开始查找,找到全部相关匹配为止,找不到返回一个空列表[]

2、compile   #编译模式生成对象,找到全部相关匹配为止,找不到返回一个列表[]

3、match     # 从第一个字符开始匹配,如果第一个字符不是要匹配的类型、则匹配失败并报错# 注意:如果规则带了'+',则匹配1次或者多次,无' +'只匹配一次

4、search   #从第一个字符开始查找、一找到就返回第一个字符串,找到就不往下找,找不到则报错

九、类与对象

1、面向对象的基本概念:类(所有具有相同属性和方法的对象的集合)、对象(通过类定义的数据结构实例)、方法(类中定义的函数)、类变量(实例中对象公用的,定义在类中且在函数体之外)、实例变量(用self修饰的变量)

2、定义与使用类

定义格式:class people()

Def __init__(self,name)

创建对象:p=people(‘xx’)

3、类中的实例方法、动态方法、静态方法

实例方法

定义:第一个参数必须是实例对象,该参数名一般约定为“self”,通过它来传递实例的属性和方法(也可以传类的属性和方法);

调用:只能由实例对象调用。

动态方法(类方法classmethod)

定义:使用装饰器@classmethod。第一个参数必须是当前类对象,该参数名一般约定为“cls”,通过它来传递类的属性和方法(不能传实例的属性和方法);

调用:实例对象和类对象都可以调用。

静态方法(staticmethod)

定义:使用装饰器@staticmethod。参数随意,没有“self”和“cls”参数,但是方法体中不能使用类或实例的任何属性和方法;

调用:实例对象和类对象都可以调用。

4、类的三大特性(封装特性、继承特性、多态特性)

===============================================================

python自动计算多个教学班的优秀率_第二个月课堂009python之总结(002)相关推荐

  1. python中变量不需要事先声明_第二章 Python 变量

    2.1  Python变量 在 Python 中变量不需要事先声明变量名及其类型,直接赋值即可创建各种变量(不要使用关键字为变量名),例如: >>>x = 4 >>> ...

  2. 用python编程、假设一年期定期利率_第二章-习题答案

    第二章习题 1 . 写一个算法(流程图和 python 程序) :输入三个数,输出其最 大者. numA=3 numB=4 numC=5 if numA <= numB: if numC pri ...

  3. 《Python编程从入门到实践》_第二章_变量和简单数据类型

    什么是变量 举例: >>> message = "Hello,Python!" >>> print (message) Hello,Python ...

  4. 达内python第二阶段月考试题_第二次月考试卷分析

    一.试题特点 本次月考试卷,命题紧扣课程标准,以教材为基本点,以学生学习能力培养情况为主要对象,密切联系学生实际与关注学生心灵,较好地渗透新课程理念.这份试题,其内容涵盖了"音.字.词.句. ...

  5. 多测师肖sir_高级讲师_第二个月第2讲python之基本操作(002)

    (一)python 介绍 1.什么是Python? Python是一门面向对象,解释型的动态类型的编程语言,有Guido van Rossunm(吉多 * 范罗苏姆)于1989年发明,第一个公开版发行 ...

  6. python脚本监控网站状态 - 赵海华_运维之路 - 51CTO技术博客

    python脚本监控网站状态 - 赵海华_运维之路 - 51CTO技术博客 python脚本监控网站状态 2013-01-09 09:21:02 标签:监控 python 原创作品,允许转载,转载时请 ...

  7. 下列数据类型中python不支持的是_ 下列选项中 ,Python 不支持的数据类型有 ( ) 。_学小易找答案...

    [单选题] 下列标识符中 , 合法的是 ( ) . [简答题]说明轴承代号7204AC表达的含义. [判断题]type() 函数可以查看变量的数据类型. ( ) [名词解释]限界 [单选题]体育教学 ...

  8. python基础-PyCharm设置作者信息模板_修改解释器_设置软件UTF-8编码

    python基础-PyCharm设置作者信息模板_修改解释器_设置软件UTF-8编码 一.PyCharm 设置作者信息模板 1.File---Settings---在搜索框中搜索:File and C ...

  9. python写入excel表格数据绘制图表_(原创)xlsxwriter,python excel 写入数据\图表等操作_图表操作(二)...

    前面分享了使用xlsxwriter创建excel和写入数据GUC:(原创)xlsxwriter,python excel 写入数据\图表等操作_创建.写入(一)​zhuanlan.zhihu.com ...

最新文章

  1. 科普:教你如何看懂 JavaGC 日志
  2. 处理被中断的系统调用
  3. nginx和tomcat之间的简单配置
  4. Canada Cup 2016 C. Hidden Word 字符串构造
  5. Linux 小知识翻译 - 「Linux的吉祥物企鹅叫什么名字?」
  6. html 点击隐藏特效代码,vueJS简单的点击显示与隐藏的效果(实现代码)
  7. Python 基础——random模块
  8. python pil 模块将随机字符生成验证码
  9. Android 6.0 动态权限申请注意事项
  10. 完美二叉树, 完全二叉树和完满二叉树
  11. 服务器弄好了怎么做网站,怎么自己做网站?自己做网站都需要什么?
  12. 热插拔技术详解(上)
  13. 全球及中国电力行业建设策略与十四五供需战略规划报告2021-2027年
  14. autoit v3安装
  15. 阴历日期和阳历日期互相转换(java)
  16. 大型超市计算机管理系统论文,大型超市进销存管理系统的设计与实现
  17. Prometheus安装配置及其相关组件的应用
  18. 编写吃c语言程序步骤,自己做的一个C语言小游戏——吃金子
  19. 【自然语言处理】详说中文自动分词
  20. 另一个jar包引不了_《嫌疑人X的献身》:一个天才的陨落

热门文章

  1. everything便携版和安装版区别_什么是超极本?超极本和笔记本的区别科普知识...
  2. 病毒c语言代码大全,谁有C语言编写的病毒源代码?
  3. redis rua解决库存问题_【150期】面试官:Redis的各项功能解决了哪些问题?
  4. 项目的启动顺序_多个项目进行如何做好进度管理
  5. python upper_Python 3中的模块级string.upper函数在哪里?
  6. vc读取北通手柄按键_《噬血代码》手柄怎么操作 北通手柄按键功能详解
  7. linux uefi无法启动文件,解决UEFI安装无法启动的问题
  8. Win11系统怎样设置更改密码
  9. Windows平台如何查看一个dll依赖的其他dll
  10. 学习Spring Boot:(十九)Shiro 中使用缓存