您的位置:

基本python学习11,python自学笔记

本文目录一览:

学习Python需要掌握哪些知识?

以下是python全栈开发课程学习路线,可以按照这个课程大纲有规划的进行学习:

阶段一:Python开发基础

Python全栈开发与人工智能之Python开发基础知识学习内容包括:Python基础语法、数据类型、字符编码、文件操作、函数、装饰器、迭代器、内置方法、常用模块等。

阶段二:Python高级编程和数据库开发

Python全栈开发与人工智能之Python高级编程和数据库开发知识学习内容包括:面向对象开发、Socket网络编程、线程、进程、队列、IO多路模型、Mysql数据库开发等。

阶段三:前端开发

Python全栈开发与人工智能之前端开发知识学习内容包括:Html、CSS、JavaScript开发、Jquerybootstrap开发、前端框架VUE开发等。

阶段四:WEB框架开发

Python全栈开发与人工智能之WEB框架开发学习内容包括:Django框架基础、Django框架进阶、BBS+Blog实战项目开发、缓存和队列中间件、Flask框架学习、Tornado框架学习、Restful API等。

阶段五:爬虫开发

Python全栈开发与人工智能之爬虫开发学习内容包括:爬虫开发实战。

阶段六:全栈项目实战

Python全栈开发与人工智能之全栈项目实战学习内容包括:企业应用工具学习、CRM客户关系管理系统开发、路飞学城在线教育平台开发等。

阶段七:数据分析

Python全栈开发与人工智能之数据分析学习内容包括:金融量化分析。

阶段八:人工智能

Python全栈开发与人工智能之人工智能学习内容包括:机器学习、数据分析 、图像识别、自然语言翻译等。

阶段九:自动化运维开发

Python全栈开发与人工智能之自动化运维开发学习内容包括:CMDB资产管理系统开发、IT审计+主机管理系统开发、分布式主机监控系统开发等。

阶段十:高并发语言GO开发

Python全栈开发与人工智能之高并发语言GO开发学习内容包括:GO语言基础、数据类型与文件IO操作、函数和面向对象、并发编程等。

对于Python开发有兴趣的小伙伴们,不妨先从看看Python开发教程开始入门!B站上有很多的Python教学视频,从基础到高级的都有,还挺不错的,知识点讲的很细致,还有完整版的学习路线图。也可以自己去看看,下载学习试试。

Python其实很简单 第十一章 正则表达式

正则表达式是一个特殊的字符序列,它用来检查一个字符串是否与某种模式匹配。正则表达式在编译程序中至关重要,但并不是每个人都需要特别深入的学习和掌握。在此,只介绍一些最基本的应用。

1、元字符

元字符是构成正则表达式的一些特殊字符。在正则表达式中,元字符被赋予了新的含义。

下面介绍一些常用的元字符及其含义:

. 匹配除换行符以外的任意字符。

w 匹配字母、数字、下划线或汉字。

W 匹配w所匹配的字符以外的字符。

s 匹配单个空白符(包括Tab键和换行符)。

S 匹配除s匹配的字符以外的字符。

d 匹配数字。

b 匹配单词的分界符,如:空格、标点符号或换行符。

^ 匹配字符串的开始

$ 匹配字符串的结束

2、限定符

限定符是在正则表达式中用来指定数量的字符。常用的限定符有:

? 匹配前面的字符0或1次。如:zo?m可以匹配zom和zm,但不能匹配 zoom

+ 匹配前面的字符1或n次。如:zo?m可以匹配zom和zoom,但不能匹配zm

* 匹配前面的字符0或n次。如:zo?m可以匹配zom、zoom和zm

{n} 匹配前面的字符n次。如:zo{2}m可以匹配zoom,但不能匹配zom和zm

{n,} 匹配前面的字符至少n次。如:zo{1,}m可以匹配zom和zoom,但不能匹配zm

{n,m} 匹配前面的字符至少n次,最多m次。如:zo{1,2}m可以匹配zom和zoom,但不能匹配zm

3、方括号”[ ]”的用途

方括号“[ ]”里可以列出某个字符范围。如:[aeiou]表示匹配任意一个元音字母,[zqsl]表示匹配姓氏“赵钱孙李”的拼音第一个字母。

4、排除字符

方括号”[ ]”中的“^”字符表示排除的意思,如:[^aeiou]表示匹配任意一个非元音字母的字符。

5、选择字符

字符“|”相当于“或”。如:(^d{3}[-]d{8})|(^d{4}[-]d{7})$可以匹配形如” - ”或“ - ”的电话号码格式。

6、转义字符

对于已经用于定义元字符和限定符的字符,需要加转义符“”来表示。

如:为了匹配形如“192.168.0.1”的IPv4地址(1~255.0~255.0~255.0~255),可以用这样的正则表达式:^(25[0-5]|2[0-4][0-9]|[0,1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]).(25[0-5]|2[0-4][0-9]|[0,1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0).(25[0-5]|2[0-4][0-9]|[0,1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0).(25[0-5]|2[0-4][0-9]|[0,1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$

这里解释一下第一段IP地址的规则,取值范围为1~255,可分解为以下情况:

250~255:25[0-5];

200~249:2[0-4][0-9];

100~199:[01]{1}[0-9]{2};

0~99: [0-9]{1}[1-9]

再加上”.”: .

其他三段地址和第一段相似。

7、“( )”可以用于分组

在正则表达式中,用“( )”括起来的部分是一个整体。

8、r(或R)的意义

在正则表达式中,为了保证模式字符串为原生字符串(没有经过加工处理的字符串),可以在模式字符串前加上一个字符‘r’或‘R’。例如:

# 这里用到对的re.match()方法接下来介绍

import re # 导入re模块

re.match('bPy[a-z]+','Python') # 表达式'bPy[a-z]+'不能匹配’Python’

re.match('bPy[a-z]+','Python') # 表达式'bPy[a-z]+'可以匹配’Python’

在上述代码中,原本要用作匹配单词开始或结束的元字符’b’在表达式中字符串中会被视为转义一个字符‘b’,为了转义’b’就不得不再加一个’’符号。

也可以采用下面的方法:

re.match(r'bPy[a-z]+','Python') #加字符’r’,可以保证原生字符串

9、match()方法

Match()方法 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match() 就返回 none。

语法格式:

re.match(pattern, string, [flags])

其中,pattern表示匹配的正则表达式;string是要匹配的字符串;flags表示标志位,用于控制正则表达式的匹配方式,如:re.I表示不区分大小写。

例:

import re #导入re模块

print(re.match('www', '').span()) #span()函数可以获取匹配的位置

print(re.match('org', ''))

输出结果为:

(0, 3) #在位置0到3(不包括3)匹配成功

None #从起始位置未能匹配成功

10、search()方法

search()方法用于在整个字符串中搜索第一个匹配的值,如果匹配成功,则返回Match对象,否则返回None。

语法格式:

re.search(pattern, string, [flags])

其中,pattern表示匹配的正则表达式;string是要匹配的字符串;flags表示标志位,用于控制正则表达式的匹配方式,如:re.I表示不区分大小写。

例如:

re.search(r'Pyw+','It's easy to use Python, but it's not easy to learn Python.')

可以看出,目标字符串“It's easy to use Python, but it's not easy to learn Python.”中一共有两个‘Python’,search()方法可以从字符串的起始位置开始查找到‘Python’,当找到第一个匹配值后就停止查找,返回位置信息。

match()和search()的比较

match()要求目标字符串的起始位置就能匹配,search()对目标字符串全段进行逐次匹配,只要首次匹配成功就停止匹配。

请看下例:

import re

print(re.match(r'Pyw+','It's easy to use Python, but it's not easy to learn Python.'))

输出结果:None

11、findall()方法

findall()方法用于在整个字符串中搜索所有匹配的值,如果匹配成功,则返回以匹配值为元素的列表,否则返回空列表。

语法格式:

re.findall(pattern, string[, flags])

其中,pattern表示匹配的正则表达式;string是要匹配的字符串;flags表示标志位,用于控制正则表达式的匹配方式,如:re.I表示不区分大小写。

例:

import re

print(re.findall(r'Pyw+','It's easy to use Python, but it's not easy to learn Python.'))

输出结果:['Python', 'Python']

可以看出,findall()的结果没有指出匹配的具体位置。

12、正则表达式的应用

字符串替换

这里要用到sub()方法。它的语法格式如下:

re.sub(pattern, repl, string [,count] [,flgs])

其中,pattern是模式字符串;repl是用于替换的字符串;string是原字符串;可选参数count为模式匹配后替换的最大次数,省缺表示替换所有的匹配;可选参数flags的意义与前面的方法的该参数一致。

例:

import re

str1='x=36.567 y=123.234'

str2=re.sub('.d+','',str1) #用空格代替小数点及其后的数字

print(str2)

输出结果:x=36 y=123

分隔字符串

这里要用到split()方法。它的返回值为一个列表,它的语法格式如下:

re.split(pattern, string [,maxsplit] [,flgs])

其中,pattern是模式字符串;string是原字符串;可选参数maxsplit为最大拆分次数,省缺表示拆分所有的匹配;可选参数flags的意义与前面的方法的该参数一致。

例:

import re

str='白日依山尽,黄河入海流。欲穷千里目,更上一层楼!'

re.split(r',|。|!',str) #按照“,”、“。”、“!”分隔字符串。

['白日依山尽', '黄河入海流', '欲穷千里目', '更上一层楼', '']

注意,返回值列表中多出了一个空字符。

如何快速学习Python?

1.要有决心

做任何事情,首先要有足够的决心和坚持,才能做好事情、学好Python也是如此。

2.勤于动手

对于编程语言的学习,不能眼高手低,学的过程中,想到就要写出来,一方面能够培养出写代码的感觉,另一方面可以加深知识的掌控。

3.一套完整的学习体系

Python编程语言的全面学习,需要拥有一整套系统的学习资料和学习计划,全面掌握Python基础知识,对以后解决Python编程过程中的问题十分有益!

4.项目实战训练

Python编程基础知识的学习最终目的是应用于项目中,因此,项目实战训练必不可少,多做几个项目,尽量是功能完整的项目,形成项目思路,对以后进行项目实战是很有好处的!