一直觉得编程是一种应该学会,而且可以学会的东西,但现实情况是一直都没有开始正式学,这里算是个起点,来了了这个心愿。
这几天在极客时间入手了几个课程,其中就有大牛尹会生的Python入门课,已经决定要正式来学习这个东西,就在这里记录下来吧,与诸君共勉。
Python学习大纲
还是,在动脑筋之前,先做体力活,把课程大纲在这里抄一下,按照某琳的整理分类法,这其实体现了Python在老师脑海中的样子,很有意义
Python的介绍和安装
- Python语言的特点
- Python的发展历史与版本
- Python的安装
Python基础语法
- Python程序的书写规则
- 基础数据类型
- 变量的定义和常用操作
序列
- 序列的概念
- 字符串的定义和使用
3.字符创的常用操作 - 元组的定义和常用操作
- 列表的定义和常用操作
条件与循环
- 条件语句
- for循环
- while循环
- for循环语句中的if嵌套
- while循环语句中的if嵌套
映射与字典
- 字典的定义和常用操作
- 列表推导式与字典推导式
文件和文件输入输出
1.文件的内建函数
2.文件的常用操作
错误和异常
- 异常的检测和处理
函数
- 函数的定义和常用操作
- 函数的可变长参数
- 函数的变量作用域
- 函数的迭代器与生成器
- lambda表达式
- Python内建函数
具体学习中,以这个内容为框架,具体填充细节进去,后续呈现出来。
2018-6-2 早上5:47
Python的介绍和安装
- Python语言的特点
- Python的发展历史与版本
- Python的安装
Python基础语法
- Python程序的书写规则
- 基础数据类型
- 变量的定义和常用操作
序列
- 序列的概念
- 字符串的定义和使用
3.字符创的常用操作 - 元组的定义和常用操作
- 列表的定义和常用操作
条件与循环
- 条件语句
- for循环
- while循环
- for循环语句中的if嵌套
- while循环语句中的if嵌套
映射与字典
- 字典的定义和常用操作
- 列表推导式与字典推导式
文件和文件输入输出
1.文件的内建函数
2.文件的常用操作
错误和异常
- 异常的检测和处理
墨菲定律,会出错的事情一定会出错,编写程序也是这样
错误不等于异常
异常实在出现错误时采用正常控制流以外的操作
异常处理:检测到错误,引发异常,对异常进行捕获的操作
如何捕获异常
try:
<监控异常>
except Exception[, reason]
finally:
<操作项> // 如无论异常是否发生都执行
// 案例
try:
year = int(input('input years'))
except ValueError:
print('年份请输入数字')
// 可捕获多个异常
except (ValueError, AttributeError, KeyError)
# 捕获所有错误
try:
print(1/'a')
except Exception as e:
print('%s',%e)
# 实例
try:
a = open('name.txt') #打开一个文件
except Exception as e: # 捕获错误
print(e) #打印错误说明
finally:
a.close #无论如何都关闭文件
函数
- 函数的定义和常用操作
新的需求:统计三国演义中哪些主角光环比较明显(以出现次数为指标),并且做兵器谱。
三国演义全本(sanguo.txt)
提取人物(name.txt)
提取名字(weapen.txt)
提取全文
函数:对程序逻辑进行结构化的一种编程方法
小技巧:批量注释代码功能,选中代码,contrl+/
#函数的定义
def 函数名称():
代码
return 需要返回的内容
#函数的调用
函数名称()
- 函数的可变长参数
- 函数的变量作用域
- 函数的迭代器与生成器
- lambda表达式
- Python内建函数
现在是6月3号,上午10点35
已经将极客时间的Python课程现有上传部分学了一遍,到内建函数部分(今天早上学习了 filter,map,reduce,zip等函数,但课程只是将最浅层的函数使用讲解了,后续还需要自己进行更深入的探索)。
在这里贴下昨天做三国主角出现次数的代码
import re
def find_item( hero ):
with open('sanguo.txt',encoding='GB18030' ) as f:
data = f.read().replace('\n','')
name_num = re.findall(hero,data)
# print('主角 %s 出现了 %s 次' %(hero,len(name_num)))
return len(name_num)
#读取人物信息
name_dict = { }
with open('name.txt') as f:
for line in f:
names = line.split('|')
for n in names:
# print(n)
name_num = find_item(n)
name_dict[n] = name_num
#下面一句是没有学过的代码
name_sorted = sorted(name_dict.items(), key=lambda item:item[1], reverse = True )
#最终输出,出现次数排名前十的人物
print(name_sorted[0:10])
昨天做三国的例子时,被中文的编码格式搞惨了,最后发现主要的原因是我在pycharm中项目的Python interpreter设置的是python2 ,真是个神乌龙
不过即使后来切换过了了 interpreter,但是由于例子中用的sanguo.txt的文字是中文繁体,转换成GB18030也只是让乱码少了些,最终得到的结果并不准确,但方法是基本正确的。
那现在就需要回顾下这几天学到的Python知识,顺便把作业做了,
然后等待新的一批课程更新。
整个课程的知识体系
image.png
- 第一行Python代码
输出
注释
缩进
整数
浮点数
字符串 - 变量(编写一个网络带宽选择器)
变量赋值
关键字
变量命名
命名规范
作业 - 序列(编写计算生肖和星座案例1.0)
序列
字符串
列表
元祖
作业 - 条件和循环(编写计算生肖和星座案例2.0)
字典类型
集合类型
列表推导式
作业 - 文件和输入输出(编写三国人物和兵器排行榜案例1.0)
文件对象
文件操作的内建函数 - 文件操作的内建函数
异常的定义与产生
异常检测
异常处理
作业 - 函数(编写三国人物和兵器排行榜案例2.0)
调用函数
自定义函数的编写
可变长参数
变量的作用域
递归
生成器
迭代器
Lambda表达式
闭包
装饰器
作业
网友评论