selfteaching-learning-notes / selfteaching-learning-notes.github.io

自学营学员学习笔记
https://selfteaching-learning-notes.github.io
15 stars 83 forks source link

1901100206-自学训练营18群-Python入门 #150

Closed joeyhah closed 5 years ago

joeyhah commented 5 years ago

学员信息

学习笔记

re.findall(r'[\u4E00-\u9FFF]', text) 该用法取出所有中文字符 re.sub('[^\u4e00-\u9fa5]','',text) 该用法将所有非中文字符,替换为空,包含英文字符和标点符号等

path = os.path.abspath(file) 显示main.py的绝对路径

path = os.path.dirname(os.path.abspath(file)) 显示main.py所在文件夹的目录

path = os.path.join(os.path.dirname(os.path.abspath(file)), 'tang300.json') with open(path, "r", encoding='UTF-8') as f: #open可直接读取本地文件里的内容 read_one = f.read() #read()将文件内容读取,并存在read_one

<收获总结>

每次作业都是基于上次作业的基础完成的,通过不断升级快捷易用的工具,以便得到更高效率的解决方案。这便是编程的魅力之一吧!

<遇到的难点与问题(是否解决)>

re.findall用法,统计字频时可以使用,统计词频时需要用re.sub。

joeyhah commented 5 years ago

学员信息

学习笔记

yagmail(邮箱库) 用法:发送邮件 yag = yagmail.SMTP(sender, password, '服务器地址') #发件人,密码以及服务器 yag.send(recipients, '标题', word_str) #收件地址,标题以及要发送的内容

requests(网络请求库) 最基本的用法:获取该网页内容 response = requests.get('https://mp.weixin.qq.com/s/pLmuGoc4bZrMNl7MSoWgiA')

pyquery(xml 文档解析库) document = PyQuery(response.text) content = document('#js_content').text() #将网页内容转换成文本

<收获总结> 这些第三方库都有着强大的功能,以及配套的详细的用法教程,本次作业只是用了点皮毛,后面更多的玩法有待发掘。

<遇到的难点与问题(是否解决)> pyquery库的用法未参考教程,直接拷贝作业要求上的代码,复盘时需要再读读原教程

joeyhah commented 5 years ago

学员信息

学习笔记

搜集的一些类似项目

littlecodersh/ItChat: 微信个人号接口、微信机器人及命令行微信,三十行即可自定义个人号机器人。

liuwons/wxBot: 类似的基于Python的微信机器人

zixia/wechaty: 基于Javascript(ES6)的微信个人账号机器人NodeJS框架/库

sjdy521/Mojo-Weixin: 使用Perl语言编写的微信客户端框架,可通过插件提供基于HTTP协议的api接口供其他语言调用

HanSon/vbot: 基于PHP7的微信个人号机器人,通过实现匿名函数可以方便地实现各种自定义的功能

yaphone/itchat4j: 用Java扩展个人微信号的能力

kanjielu/jeeves: 使用springboot开发的微信机器人

<收获总结> 用一个库时,不会的地方先读文档,一般情况下,文档里都会有关于用法的详细解释。

<遇到的难点与问题(是否解决)> 可惜了我三个微信号都登不上web微信,好在有教练的帮助完成了任务,只是不能继续体验微信机器人的更多玩法有点可惜。 ps:网上搜了很多类似案例,目前暂时没看到什么好的解决方案。。。

joeyhah commented 5 years ago

学员信息

学习笔记

matplotlib用法 plt.bar((word_data[i][1],),(word_data[i][0],), facecolor='#9999ff', edgecolor='white') #绘制柱状图 plt.title('中文词频(TOP1-10)') # 显示标题 plt.xlabel('单词') # 显示x轴名称 plt.ylabel('词频') # 显示y轴名称 plt.legend('直方图') # 显示图例 plt.savefig('word_dict.png', dpi=300) # 保存图片

<收获总结> matplotlib的功能很强大,值得深入学习,本次使用的依然是只是皮毛,以后学习数据分析时会继续研读文档。

<遇到的难点与问题(是否解决)> 网上的文档和教程都很丰富,经过搜索到第一种解决方案,先将统计的结果转换成csv文件: with open('dict.csv', 'w') as csv_file: writer = csv.writer(csv_file) for key, value in word_dict.items(): writer.writerow([key, value]) 然后使用panda库读取csv文件,再使用matplotlib绘图。但此种方案实现起来有点复杂。 第二种解决方案,将统计结果转换成字典,遍历字典里的键值当做坐标值---出自知乎

joeyhah commented 5 years ago

学号: 1901100206 姓名: 台德祥 学习内容: day01: 使用github进行协作 学习用时: 合计3小时 收获总结: 在Pull Request时, base:是被合并的 compare:是有改动的,即把这些改动合并到base。 总体来说,没遇到什么困难,因为不是第一次接触github了。 这次做作业的过程中,和原来学习过程中遇到英语就退缩的我不一样的是,我开始试着读链接中的英文文档了,即使读得慢也坚持读完。

joeyhah commented 5 years ago

学号: 1901100206 姓名: 台德祥 学习内容: day02:配置本地运行开发环境 学习用时: 2小时 收获总结: 遇到的难点与问题(是否解决) 对于作业,先clone文件到本地,修改后commit,然后合并,最后pull request到远程仓库。这一套流程已经很熟悉了。

难点:在配置vs code开发环境时,面对长长的英文文档,有种没法下手的感觉,读了两段后开始云里雾里。就先跳过了。

joeyhah commented 5 years ago

学号: 1901100206 姓名: 台德祥 学习内容: day03 hello python 学习用时: 10小时 笔记:函数round(3.1415, 2),后面的参数代表返回几个小数位 method:.append(),可在列表里使用 print(a, end=" "),end代表输入结果之间以什么结尾 收获总结: 继续和英文文档死磕到底,看懂了后写作业就不难。

joeyhah commented 5 years ago

学号: 1901100206 姓名: 台德祥 学习内容: day04 控制流程 学习用时: 10小时 笔记: 笔记:.insert(0, w) 第一个数代表位置,第二个数代表插入的东西 单词:iterate 迭代 单词:indentation 缩进 收获总结: 遇到的难点与问题 写for循环时,感觉不是很难。但搜索后得知有更好的写法。 写while循环时,却因为定势思维以及思考不够深入而反复得不到正确结果。好在通过搜索也解决了问题。

joeyhah commented 5 years ago

学号: 1901100206 姓名: 台德祥 学习内容: day05 数据容器 学习用时: 20小时 笔记:时间匆忙,随后补在在评论区。 收获总结: 遇到的难点与问题 对python数据容器里的函数和methods要多加记忆,以便遇到问题随时拿来使用。 第二个作业是统计词频,善用这种方法有利于学习数据分析,以后会多加注意。

joeyhah commented 5 years ago

学号: 1901100206 姓名: 台德祥 学习内容: day06 函数 学习用时: 20小时 收获总结: 遇到的难点与问题 day06的作业是在day05作业的基础上修改的,所以统计英文词频的函数略加修改即可。而且稍稍优化了一下。 统计中文词频时,就要换个思路,参考别人的代码时,都会有去除标点符号一项。但使用正则表达式时则直接略过这一步,相当于降维打击了。

joeyhah commented 5 years ago

学号: 1901100206 姓名: 台德祥 学习内容: day07 模块 学习用时: 5小时 收获总结: 遇到的难点与问题 本次作业只需在day06作业上加以修改即可完成。 其中text因为是中英文混合,所以原先的代码不能直接拿来用,统计英文字符时需要先剔除中文字符。统计中午字符时同理。 封装模块时要细读作业要求,main.py与mymodule同目录。

joeyhah commented 5 years ago

学号: 1901100206 姓名: 台德祥 学习内容: day08 异常处理 学习用时: 5小时 收获总结: 遇到的难点与问题 本次作业在day07作业上加以修改,在三个函数里加上类型判断,可选type()以及isinstance()。 在main.py里,加上try: except:,如果输入的不是字符串,比如列表,则打印出错误提示。

joeyhah commented 5 years ago

学号: 1901100206 姓名: 台德祥 学习内容: day09 标准库 学习用时: 8小时 收获总结: 遇到的难点与问题 本次作业在day08作业上加以修改,先在函数里多加一个变量,再使用python自带标准库里的Counter(),统计出的结果直接为字典形式。可转换成列表。 在main.py里,需要先import json,使用open()打开文件时需要填写本地的绝对路径,路径前面以r开头,引号内为路径。

joeyhah commented 5 years ago

day14作业:https://github.com/dexiangjoy/selfteaching-python-camp/blob/master/exercises/1901100206/README.md