链接B站,嵩天老师零基础学习视频:https://www.bilibili.com/video/av19391909?p=2

程序设计语言:编译型,一次性执行结束(c语言)和解释型,逐条执行,便于维护(JavaScript,python等脚本语言)

拿到一个问题时:

分析问题的计算部分

确定功能,使用IPO方法进一步分析:输入;处理;输出。I(输入input)P(处理process)O(output输出)分析"

设计算法:计算公式

编写程序

运行调试程序

程序设计的步骤:

确定程序的IPO

编写程序

调试程序

问题小练习:如何利用温度摄氏度和huashi华氏度进行转换?

I(输入input)P(处理process)O(output输出)分析;

设计算法:

C = (F - 32)/ 1.8

F = C * 1.8 + 32

源码如下:

1 while(True):2 content = str(input('请输入当前温度:'))3 if content[-1] in ["c","C"]:4 huashi = int(content[:-1]) * 1.8 + 32

5 print("当前温度为摄氏度{a},转化为华氏度{b}".format(a = content,b = str(huashi) + 'F'))6 elif content[-1] in ['f','F']:7 sheshi = (int(content[:-1])- 32) / 1.8

8 print('当前温度为华氏度{0},转化为摄氏度{1}'.format(content,str(sheshi) + 'C'))9 else:10 print('输入有误')

为了提高学习兴趣,跟着嵩天老师学习了一下turtle库,这个库可以在图形化页面生成图形。

下面一段是一段生成蟒蛇源码,大家可以自己敲一下,或者直接点击源码顶部按钮,然后复制即可。

不懂得地方自行百度,搜索能力是必备的。

下面的源码,利用是函数调用。先调用main(),然后从main()函数里面调用drawSnake()函数,def 是定义函数。里面的参数,嵩天老师都已经讲解,我也注释出来了。至于源码怎么编写的,暂时不需要了解,只要先明白大概源码的作用就OK了。

1 importturtle2 defdrawSnake(rad,angle,len,neckrad):3 for i inrange(len):4 turtle.circle(rad,angle) #rad表示爬行圆形轨迹的半径位置,正值为左,负值为右,angle表示小乌龟爬行的弧度值

5 turtle.circle(-rad,angle)6 turtle.circle(rad,angle/2)7 turtle.fd(rad) #forward简写,代表爬行的直线距离

8 turtle.circle(neckrad+1,180)9 turtle.fd(rad*2/3)10

11 defmain():12 turtle.setup(1300,800,0,0) #长度,高度,左上角坐标起始点

13 pythonsize = 60

14 turtle.pensize(pythonsize) #宽度,小乌龟宽度

15 turtle.pencolor("green") #小乌龟走过的轨迹颜色

16 turtle.seth(-40) #小乌龟开始爬行的角度方向,参照数学象限

17 drawSnake(40,80,5,pythonsize/2)18 main()

生成结果如下:

数据类型

数据类型就不详细介绍了,整型,浮点型,复数型,字符型,文件型,元组,列表,集合,字典等。

接下来学习数字类型(输一下下面的例子看看结果就知道区别,同时可以用下面的函数方法对其类型转换):

整型 int(4) 转为整数

浮点型 float(4) 转为浮点数

复数型 complex(4) 转换成复数

转换方法就是:int(),float(),complex()

运算方法:

字符串切片索引

下面一个小练习,最好对应嵩天老师的视频观看,简单的内容就不详述了,看视频了解。

输入1到7,然后打印出分别对应的星期一到星期日

下面是本人作出的源码,稍微多加了一点以后要写到的内容,其中包括循环,函数,__main__,__name__方法。不必纠结个别不懂得地方,船到桥下自然直,等你学到这,自然就会了,笔者也是这样过来的。

1 defcal():2 '''

3 输入1到7,然后打印出分别对应的星期一到星期日4 '''

5 for i in range(20):6 content = "星期一星期二星期三星期四星期五星期六星期日"

7 a = int(input('请输入星期几,输入用1到7数字代表:'))8 if a in list(range(1,8)):9 index = a * 3

10 output = content[index-3:index]11 print(output)12 else:13 print("请重新输入")14 continue

15 if __name__ == '__main__':16 cal()

列表的操作

小游戏,利用turtle库绘制五角星并填充。可以复制这段代码运行一下,同样试着更改一下参数,看看有什么变化。

1 from turtle importTurtle2 p =Turtle()3 p.speed(1)4 p.pensize(5)5 p.color('black','yellow')6 p.begin_fill()7 for i in range(5):8 p.fd(200)9 p.right(144)10 p.end_fill()

输出结果:

词云:如下图所示

源码如下,尝试手动输出:

输入前请安装jieba库、wordcloud库、以及scipy库,安装方式pip install 库名

下面划线的部位根据自己文档和图片,字体的实际路径填写。

源码:

1 importjieba2 from wordcloud importWordCloud,STOPWORDS3 from scipy.misc importimread4 importmatplotlib.pyplot as plt5 #读取文件

6 obj_content = open("C:/Users/Desktop/ciyun.txt",'r')7 text=obj_content.read()8 #对文本进行分词

9 cut_text = ''.join(jieba.cut(text))10 #读取图片

11 picture = imread("C:/Users/Desktop/timg.jpg")12 #导入字体

13 cloud = WordCloud(font_path = "C:/Users/Desktop/simsun.ttc",14 background_color = 'white',15 mask =picture,16 max_words = 3000,17 max_font_size = 40)18 word_cloud =cloud.generate(cut_text)19 #输出图片

20 plt.axis('off')21 plt.imshow(word_cloud)22 plt.show()

网络爬虫---robots协议

robots协议就是不被允许的爬虫

例子:看一下百度的robots协议

网址:http://www.baidu.com/robots.txt

User-agent:后面指的被百度禁止的恶意爬虫,

disallow:后面的是被禁止的通配符类型,最后一个不允许爬虫访问的资源目录

京东的robots协议,被京东禁止的爬虫。在网址后面加/robots.txt就可以了。https://www.jd.com/robots.txt

QQ的robots协议https://www.qq.com/robots.txt

爬取网页源码通用框架:(为防止异常外加try :语句 except:语句)

1 #通用爬取网页的代码框架

2 importrequests3 defgetHtmlText(url):4 try:5 r = requests.get(url,timeout = 5)6 r.raise_for_status() #如果状态不是200,引发HttpError异常

7 r.encoding =r.apparent_encoding8 returnr.text9 except : #except Exception as e

10 return "产生异常"

11 if __name__ == '__main__':12 url = "www.baidu.com"

13 print(getHtmlText(url))

实例一:

爬取京东商城手机信息:https://item.jd.com/5853575.html

过程如下:

源码:

1 #通用爬取网页的代码框架

2 importrequests3 defgetHtmlText(url):4 try:5 r = requests.get(url,timeout = 5)6 r.raise_for_status() #如果状态不是200,引发HttpError异常

7 r.encoding =r.apparent_encoding8 return r.text[:1000]9 except : #except Exception as e

10 return "产生异常"

11 if __name__ == '__main__':12 url = "https://item.jd.com/5853575.html"

13 print(getHtmlText(url))14

运行结果和上面截图一样。

实例二:

爬取亚马逊商城商品信息:

1 importrequests2 url = 'https://www.amazon.cn/dp/B07G5Z9H8R/ref=lp_106200071_1_1?s=pc&ie=UTF8&qid=1546562300&sr=1-1'

3 try:4 kv = {"user_agent":"Mozilla/5.0"}5 r = requests.get(url,headers =kv)6 r.raise_for_status()7 r.encoding =r.apparent_encoding8 print(r.text[1000:2000]) #返回字符串一万多行,截取了一部分字符串

9 except:10 print("异常返回")

实例三:

爬取苏宁易购ipad商品信息

1 importrequests2 url = 'https://product.suning.com/0000000000/10400501623.html?safp=d488778a.13701.productWrap.1'

3 #请求头 模拟浏览器登陆

4 kv = {"user-agent":"Mozilla/5.0"}5 try:6 r = requests.get(url,headers =kv)7 r.raise_for_status()8 r.encoding =r.apparent_encoding9 print(r.text[:1000])10 except:11 print("爬取失败")

百度搜索关键词借口:https://www.baidu.com/s?wd=keyword

1 importrequests2 url = 'http://www.baidu.com/s'

3 kv = {'wd':"python"}4 try:5 r = requests.get(url,params =kv)6 r.raise_for_status()7 r.encoding =r.apparent_encoding8 print(r.request.url)9 print(len(r.text))10 except:11 print("爬取失败")12

13 importrequests14 url = 'http://www.baidu.com/s'

15 kv = {'wd':"赵蕴卓"}16 try:17 r = requests.get(url,params =kv)18 r.raise_for_status()19 r.encoding =r.apparent_encoding20 print(r.request.url)21 print(len(r.text))22 except:23 print("爬取失败")

搜狗搜索关键字接口:https://www.sogou.com/web?query=keyword

1 importrequests2 url = 'http://www.sougou.com/web'

3 kv = {'query':"python"}4 try:5 r = requests.get(url,params =kv)6 r.raise_for_status()7 print(r.request.url)8 print(len(r.text))9 except:10 print('搜索失败')

360搜索关键词接口:https://www.so.com/s?q=keyword

1 importrequests2 url = 'https://www.so.com/s'

3 kv = {"q":"python"}4 try:5 r = requests.get(url,params =kv )6 r.raise_for_status()7 r.encoding =r.apparent_encoding8 print(r.request.url)9 print(len(r.text))10 except:11 print('爬取错误')

爬取网页图片并存储:

1 importrequests2 importos3 importtime4 url = 'http://wx1.sinaimg.cn/bmiddle/b4d7da4cly1fdk29b03dwj22c03407wi.jpg'

5 root = 'D://pics//'

6 path = root + url.split('/')[-1]7 try:8 if notos.path.exists(root):9 os.mkdir(root)10 if notos.path.exists(path):11 r =requests.get(url)12 with open(path,'wb') as f:13 f.write(r.content)14 f.close()15 time.sleep(3)16 print('下载完成')17 else:18 print("该文件已存在")19

20 except:21 print("爬取失败")

利用ip138查询接口查询输入ip地址的归属地http://www.ip138.com/

查看网页的ip地址可以在dos页面输入 ping + 网址(不加http协议) ,例如:ping www.baidu.com

ip以我校ip地址为例

1 #查询ip地址

2 importrequests3 url = 'http://www.ip138.com/ips138.asp?ip='

4

5 try:6 r = requests.get(url + "60.175.65.100")7 r.raise_for_status()8 r.encoding =r.apparent_encoding9 print(r.text[7100:7400])10 except:11 print('查询失败')

BeautifulSoup库---美味汤

语法两行搞定:

from bs4 import BeautifulSoup

soup = BeautifulSoup('

data

','html.parser'),第二个参数是解析方法

1 url = 'https://python123.io/ws/demo.html'

2 importrequests3 from bs4 importBeautifulSoup4 r =requests.get(url)5 demo =r.text6 soup = BeautifulSoup(demo,'html.parser')7 print(soup.prettify())

案例:最好大学排名http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html

爬取大学排名信息:

源码如下

1 importrequests2 from bs4 importBeautifulSoup3 importbs44 defgetHtmlText(url):5 '''提取html'''

6 try:7 r = requests.get(url,timeout = 30)8 r.raise_for_status()9 r.encoding =r.apparent_encoding10 returnr.text11 except:12 return ""

13

14 deffillUnivList(ulist,html):15 '''提取关键信息,填到列表中,这是一个二维列表16 列表里面的每一个元素是一个学校信息,每一个元素17 仍是一个含有三个元素的列表'''

18 soup = BeautifulSoup(html,'html.parser')19 for tr in soup.find('tbody').children:20 ifisinstance(tr,bs4.element.Tag):21 tds = tr('td')22 ulist.append([tds[0].string,tds[1].string,tds[2].string])23

24

25 defprintUnivList(ulist,num):26 ''''输入表头,和输出排名信息'''

27 plt = "{0:{3}<10}\t{1:{3}^10}\t{2:{3}>10}" #^居中对齐;<左对齐;>右对齐;

28 print(plt.format('排名','学校','总分',chr(12288))) #chr(12288)中文空格填充,放在对齐符号前面记住就行。

29 for i inrange(num):30 u =ulist[i]31 print(plt.format(u[0],u[1],u[2],chr(12288)))32 print('Suc' +str(num))33 defmain():34 unifo =[]35 url = 'http://www.zuihaodaxue.com/zuihaodaxuepaiming2016.html'

36 html =getHtmlText(url)37 fillUnivList(unifo,html)38 printUnivList(unifo,20)39 main()40

输入结果:

正则表达式

嵩天python笔记_Python学习笔记相关推荐

  1. python用法查询笔记_Python学习笔记 - 2 - PyCharm的基本使用

    什么是IDE 开始学习的小白同学,一看到这三个字母应该是懵逼的,那么我们一点一点来说. 既然学习Python语言我们就需要写代码,那么代码写在哪里呢?在记事本里写 在word文档里写 在sublime ...

  2. python字典数据类型笔记_Python学习笔记整理(六)Python中的字典

    一.字典介绍 字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型.列表是有序的对象结合,字典是无序的对象集合.两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通 ...

  3. range python命令_Python学习笔记(一)

    python的安装 linux系统自带python python的进入 终端输入python回车即可 python的退出 >>>exit() 或 Ctrl-D 第一个命令 单双引号无 ...

  4. python自学笔记_python学习笔记(4)

    函数定义和调用 函数就是最基本的一种代码抽象的方式(python有许多内置函数) 调用:要调用一个函数,需要知道函数 的名称和参数 比较函数cmp(x,y)就需要两个参数,如果xy就返回1 数据类型转 ...

  5. python初学篇笔记_Python学习笔记(基础篇)

    Python 基础 输入输出 输出 使用print()可以向屏幕上输出指定的文字: >>> print('Hello world!') Hello world! print()中可以 ...

  6. 中文python笔记_Python学习笔记-基础篇

    安装 Linux Linux已经自带Python了,我的Centos7自带Python2.7.4,我通过源码安装来更新版本. #!/bin/bash #源码安装 wget https://www.py ...

  7. python读取字典元素笔记_Python 学习笔记 - 字典

    Python 字典 字典是一种无序的.可修改的.可索引的容器. 字典使用花括号声明,具有键和值. mydic = { 'name':'孙悟空', 'origin':'猴子' } print(mydic ...

  8. python电子版笔记_python学习笔记-电子书

    程序输入和raw_inoput() 内建函数 字符解释 f% :对应小数 >>> print "%s is number %d" % ("python& ...

  9. python娃娃_Python学习笔记(一)

    一.Python开发环境配置 1.Python语言概述 1.1 Python:译为"蟒蛇" 1.2 2.Python基本开发环境IDLE 3.Python程序编写与运行 4.Pyt ...

最新文章

  1. 使用NSURLConnection实现大文件断点下载
  2. Python入门100题 | 第040题
  3. 【Linux高级驱动】如何分析并移植网卡驱动
  4. Go 语言web 框架 Gin 练习 7
  5. 深入理解Solidity
  6. php轻博客社区视频教程,轻博客主题 - SEO极致优化的ZBLOG轻博客主题
  7. 第八届育才杯机器人比赛_赛场、名单公布!南海区第八届“献血者杯”羽毛球公开赛“羽”你相约本周六...
  8. 精通 R plot—第1部分:颜色,图例和线
  9. 计算机专业内卷严重,考研,这6个专业“内卷”严重,竞争较为激烈!
  10. TC SRM 665 DIV2 A LuckyXor 暴力
  11. 什么叫pin脚的pad_普思海鸥脚H1102NL百兆网络变压器
  12. 无法启动程序,.dll不是有效的Win32应用程序
  13. python微博视频爬取
  14. 电子人的浪漫--致爱丽丝音乐盒
  15. 涂鸦Zigbee SDK开发系列教程——4.烧录授权
  16. Scrum敏捷开发之我的总结
  17. pandas duplicated() 重复行标记与drop_duplicates()删除
  18. 冒泡排序从左到右 从右到左方法实现(三种方法)
  19. 简单跑酷java代码_如何实现一个简单的跑酷游戏?(代码详解)
  20. 解决网络专线未开放80端口的问题

热门文章

  1. 一个程序中login.php的代码
  2. 一汽大众将召回3.7万辆存自燃隐患车辆
  3. 今日起开始预约!北京将发放5万份数字人民币红包
  4. 1月25日再次开抢!三星Galaxy S21系列标准版已多次开售即罄
  5. 突然!iPhone 12/12 Pro从苹果天猫旗舰店下架,不愿参加双11活动?
  6. 蘑菇街裁员14%为实现盈亏平衡?回应:系正常调整
  7. 未获利并倒赔2600元!暴风集团称公司董事实施短线交易公司股票的行为
  8. 腾讯牵手数十家合作伙伴发起“光合计划” 推动“百千万”三大目标落地
  9. 小米MIX 4 Pro“老底”被掀了,看完很激动!
  10. 继裁员千人后 蔚来打算卖掉电动方程式车队