7月10日SHAI上海人工智能聚会

时间:2021年7月10日 2:30 – 4:30

地点:五原路380号(近武康路口)

大家可以在后台回复 “ 聚会 ” 获取参加快闪群的二维码。快闪群会在7月17日发放下一次聚会二维码之后解散。

本次的主题再次从宏观的PPT切换的代码模式,这周我想分享一下代码,分享一堂《黑客与画家的Python入门课》

我有很多各行各业的非常聪明的朋友,但是对于代码总觉得很远,而我觉得 Python 应该是大多数人随手应该掌握的东西,基本上有个10分钟就可以入个门,写点小东西,毕竟Python的关键字也就那20个,常用十个左右,并且Mac电脑缺省的就有环境,然后准备干啥活儿就用什么模块,就跟安装App,用App一样。这个门槛实在是低得不能再低了。

所以我以前开了好多张空头支票,说啥时候我给你们讲讲Python。结果。。。。。。。这不,拖了好多个月以后可以真的开讲了。

从更长远来说,Python 是开始人工智能的探索的第一步,或许以后我可以分享一下《三句 Python 语句的人工智能》。

以下是周六要分享的内容,来自去年成远,明月等朋友约我的一次分享。其中有对于工程师,对于艺术,以及和代码之间的相通性的思考。

7月10日周六,五原路380号见!

无需报名,直接过来就好。不过先打好招呼,座位有限,晚来的大概率需要站着了。建议带着自己的电脑。

《黑客与画家的Python入门课》

如果问我一个场景,我希望这门课的场景不像大学里面的课堂去学习一门技巧,毕竟两个小时不足放进去太多实际的技巧,而更像是到一个酿酒场参观,通过看到一个技术世界的人是怎么思考这个世界的。

但同时这门课也还是希望尽量有用。技术的世界的一大好处就是每个人都在努力让别人的工作变得简单,电脑的世界像一座大厦一样,每个人都在前人的基础上添砖加瓦。所以这次我会反其道而行之,不是从最简单的,而是从很实用,本来应该是很复杂的部分讲起。

还有一个声明,就是我以天然逻辑为优先,可能不会尊重时间的限制。如果需要更多的时间,我会直接延长或者开系列的课,而不会局限在两个小时以内。

将会涵盖的内容如下。需要使用的代码点击“阅读原文”获得。

第一部分,Python基础

传说中的“Hello World”

帮助大家打印出来自己的Hello World。为什么这个词在程序员的世界里面那么 的特殊。这一部分教会大家如何运行一个Python程序。程序和电脑的关系,程序 和程序员的关系,还有程序和这个世界的其他的程序的关系。

print('****************************************')print('Hello World')print('*' * 40)

起名字

为什么传说中说“编程问题归根到底是命名问题”。在编程的时候,我们无时无刻 不在给别人起名字。我们这一个部分会讲,在Python里面,如何用名字来装东西 如何把句子装到名字里面。如何把名字装到其他的名字里面。以及名字和名字的 关系。

# 计算机科学里面最难的两件事情,一件事缓存过期问题,一件事命名问题greetings = 'Hello, World!'name = '小机器人笨笨'introduction = '我的名字是' + nameage = '3'occupation = '机器人'bye = '*' * 20print(greetings)print(introduction)print('我' + age + '岁了')print('我是做' + occupation + '工作的')print(bye)

学会用一个布袋子,就是列表[ ]

用一个布袋子可以把很多东西装到一个袋子里面。这样子就可以处理文本了。

Python里面除了名字以外唯一需要认识的那是十个单词

只有这几个单词(33个。但实际上常用的10个以内)才是语言的一部分。其他的都 是自己或者别人给起的名字。通过认识这十个单词来认识一门语言。

ifelseforinandornotdefimportas

可以说,认识了这十个单词,你就可以说你会Python语言了。之后遇到的所有的 名字,都是别人命名的,可以叫这个,也可以叫其他的名字。

装箱。打包再打包

把自己的程序放在一个箱子里面,让自己用起来方便,让别人用起来方便。这里 介绍用 def 来定义函数,来调用函数。

# These are the functionsdef greetings(name):    if name == 'Jian Shuo':        print('Long time no see.', 'How are you ding?', name)    else:        print(name, 'How are you doing?')def greetsMyself():    greetings('Jian Shuo')greetings('John')greetsMyself()

第二部分,不管三七二十一直接冲到深水区

任务一,发邮件

这里会和大家聊一聊编程界的知识领域。HTML是画网页的,Python是做后端的, 互联网协议是专门的领域,比如SMTP等等。Python仅仅是众多的领域中间的一 部分。看这一部分可其他的部分有什么联系。

pip3 install yagmail

这部分我们会讲程序员世界的协作,讲开源运动,讲Python的流行的原因。Python 的世界有自己的App Store。只不过这个App Store是命令行的,是任何一个程序 员可以访问所有其他人的工作,这是世界上最重大的协作之一。

import yagmailusername = 'embarazada@qq.com'password = 'hlnixpqgqwwpbchd'server = 'smtp.qq.com'mail = yagmail.SMTP(username, password, server)to = 'jianshuo@icloud.com'subject = 'How are you doing today?'mail.send(to, subject, body)print('Message [' + subject + '] sent to ' + to)

任务二,从网页上面拿内容下来

  import requests  url = 'https://zhuanlan.zhihu.com/smetalk'  response = requests.get(url)  print(response.text)

手工的任务是如何自动化的

任务三:从网页上获取信息并且找到自己要的部分,然后发邮件

import requestsfrom bs4 import BeautifulSoupresp = requests.get('https://s.weibo.com/realtime?q=%23姜潮妈妈婚前给麦迪娜买房%23&rd=realtime&tw=realtime&Refer=weibo_realtime')soup = BeautifulSoup(resp.text, 'html.parser')card = soup.find('div', attrs={'class': 'card-wrap'}).find('p', attrs={'class':'txt'})latest = card.text.replace(' ', '').replace('\n', '')print(latest)import yagmailusername = 'embarazada@qq.com'password = 'hlnixpqgqwwpbchd'server = 'smtp.qq.com'mail = yagmail.SMTP(username, password, server)to = 'jianshuo@icloud.com'subject = 'How are you doing today?'mail.send(to, subject, body)print('Message [' + subject + '] sent to ' + to)

任务四,分析热词,给自己发邮件。

这个是最后一个任务了。我们会从微博的一个评论里面来分析词的频率, 这个其实是对于提供者科技含量很高,对于使用者 科技含量很低的任务,当然大多数的库都是这样的。

import requestsfrom bs4 import BeautifulSoupurl = 'https://mp.weixin.qq.com/s/41fG4qjPTbIPXGDs5IGdug'url = 'https://github.com/jianshuo/painters'url = 'https://www.zhihu.com/question/20706333'url = 'https://mp.weixin.qq.com/s/8fbmZz6uPTHFukgwtt2_xA'response = requests.get(url)soup = BeautifulSoup(response.text, 'html.parser')content = soup.find('div', {'class': 'rich_media_content'})import jiebafrom collections import Counterstopwords = ',,。,的,我,了,是,、,在,“,”,一个,飞镖,有,也,卖,元,这个,就,盘, ,说,?,和'.split(',')words = jieba.cut(content.text)words = [w for w in words if w not in stopwords]cnter = Counter(words)for word, occur in cnter.most_common(50):    print(word, occur)import wordcloudwc = wordcloud.WordCloud(font_path='YangRenDongZhengBangTi.ttf', width=600, height=400).generate_from_frequencies(cnter)wc.to_file('wc.jpg')import osos.system('open wc.jpg')

第三部分:程序员的世界很好懂。

这部分用来回答大家的问题,还有接受更多的问题。已经准备好的问题包括:

  1. 如何克服学习一门语言从入门到放弃?

  2. 如何根据自己的情况选择学习哪种语言?

  3. 如何分辨和结识大牛?

第四部分:课前准备

上课前,需要大家准备这些内容:

  1. 电脑。根据调查,绝大多数同学是Mac电脑。这是最好,因为Python和Mac非常兼容,相处得很好。Windows电脑也没问题。我的目标还是让大家在上课的时候就把程序跑起来,下课了就可以自己完成以上的那些复杂的任务了。

  2. 安装Python。到这里 https://www.python.org/downloads/ 下载并安装Python,有Mac版本和Windows版本。最好安装最新版本3.8.3。对于初学者版本差异不那么大。

  3. 安装一个好的编辑器。任何可以编辑纯文本的编辑器都可以。但是Word不行,任何可以编辑出来不同大小的字体,为字体加一个下划线的编辑器都 不 可 以。我推荐使用Atom,下载地址 https://atom.io 有Mac,Windows等各种版本。这个编辑器和Python没关系,但是是很好用的简单的编辑器

上课前需要大家准备这些知识:

大家看一下这个列表,看看有哪些是自己已经知道的,哪些还不知道。不知道的可以提前熟悉起来

  1. 你知道怎么打开你的电脑的命令行吗?

在Mac电脑上,在Spotlight里面(就是最右上角的那个小放大镜图标点一下),输入“Terminal”(只要输入Ter就应该自动的出来了。接下来执行都是在Terminal里面的。不知道的赶紧去打开,打开了以后不知道干什么试着打一个ls试试

在Windows电脑上,他的名字叫CMD,在运行里面输入就好。CMD里面你可以输入DIR

然后你就进入了黑黑的DOS时代了。如果不会打开命令行,就跟手机不知道屏幕在哪里一样,以后的一切都没法开始了。

  1. 你知道如果你编辑了一个文件,怎么可以在命令行找到吗?

在这一步,我们会用文本编辑器编辑一个文件,你需要在命令行进入这个文件所在的文件夹。找到你写好的Python文件是运行一个Python文件的前提。

如果你对这个不熟悉,可以这样做:你用编辑器(推荐Atom)编辑一个文件,然后把它放在你的桌面上。然后进入你的命令行,输入

cd Desktop

注意:大小写很重要,cd 小写, D 大写,用ls列表命令你就看得到刚刚的那个文件了

发表回复

您的电子邮箱地址不会被公开。