python大作业代码及文档,python大作业有哪些题目

大家好,小编来为大家解答以下问题,python大作业代码及文档,python大作业有哪些题目,现在让我们一起来看看吧!

目录

1、课堂笔记

2、群消息

3、代码

3.1、demo1

3.2、demo2


1、课堂笔记

大作业题目思路引导:

题目1:定时爬取每个地级市的实时天气状况、存入excel中、为每个城市生成html展示、历史excel文件以每日为单位归档到文件夹中。

考察点:爬虫+文件读写+目录操作+pandas

网址:http://www.weather.com.cn/

定时任务框架(参考文档):https://www.cnblogs.com/xiao-xue-di/p/14081790.html

每个地市:1.从网站上寻找所有的地市列表-->地市编码(beautifulsoup解析页面)或(找数据接口)
                  2.根据地市编号,爬取该地的实时天气(beautifulsoup解析页面)或(找数据接口)

以合适的数据结构存储数据、导入到excel中(注意excel文件的存储目录、根据需要新建目录、以系统时间命名文件或文件夹)

按照html的格式写文件(IO流):格式是统一的,部分动态数据需要填充(页面展现效果看个人的htmls的水平和想象力)【不要做太复杂】

demo1:获取所有地市( k:名、 v:编码,存入dict中)

  

2、群消息

每小组,从题目1和题目2中,选择一个完成即可python turtle画三角形的树。请组长组织商讨,并进行后续的任务分工和讨论。

题目1:比较成模块,利于分工。题目2:可能代码量没那么多,但是细节点也不少。

有一个city.js吧,里面是城市数据。

400多个城市,在测试阶段(代码可能会出现bug的情况下),不要一次拉取所有,取前10个城市,把数据爬下来-->写入excel-->生成html等流程。

因为: 频繁的访问人家的接口-->被封,ip会被拉入黑名单。1s 400次,不是人工,是机器。

最好,再手动敲一遍,哪怕就换个变量名,再查重的时候,也会好一些。

数据爬取---->合适的数据结构---->生成pandas的DataFrame ---->to_excel就能得到表格

3、代码

3.1、demo1

'''
大作业题目思路引导:
题目1:定时爬取每个地级市的实时天气状况、存入excel中、为每个城市生成html展示、历史excel文件以每日为单位归档到文件夹中。
考察点:爬虫+文件读写+目录操作+pandas
网址:http://www.weather.com.cn/

每个地市:
1.从网站上寻找所有的地市列表-->地市编码(beautifulsoup解析页面)或(找数据接口)
2.根据地市编号,爬取该地的实时天气(beautifulsoup解析页面)或(找数据接口)

省份没什么用,我们只需要地级市的信息。
'''
import requests as req
import json
import time

# demo1:获取所有地市信息(k:名、v:编码,放入dict中)
hds = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'}

resp = req.get('https://j.i8tq.com/weather2020/search/city.js', headers=hds)

ct = resp.content.decode('utf-8')

ct = ct[ct.index('=') + 1:];  # dict格式的str->字符串切割,保留=后面的内容

info = json.loads(ct);  # str转dict
# print(info)
# print(type(info))  # <class 'dict'>

cityinfo = {};  # k:城市名、v:城市编码,将信息存储到dict中

topcity = ['北京', '天津', '上海', '重庆'];  # 单独列出直辖市

# 遍历字典
for province, cities in info.items():  # 最外层:省份(所有省份)与直辖市(地级市)
    for cityname, areas in cities.items():  # 城市名与直辖市、遍历所有地级市
        # print(cityname)  # 北京、上海、天津、重庆、哈尔滨、齐齐哈尔、郑州、商丘...
        # print(areas[cityname]['AREAID'])  # 101010100、101020100...
        if cityname in topcity:  # 若是4个直辖市之一,拉取所有的数据【存储键值对-城市名:城市编码】
            for k, v in areas.items():
                cityinfo[k] = v['AREAID'];
        else:
            cityinfo[cityname] = areas[cityname]['AREAID'];

print(len(cityinfo))  # 441
print(cityinfo)

# demo2:根据城市编码爬取实时天气
# '绍兴': '101210507', '台州': '101210601', '温州': '101210701'
def loadweather(cityname, code):
    hds = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'}
    hds['Referer'] = 'http://www.weather.com.cn/';
    resp = req.get('http://d1.weather.com.cn/sk_2d/{}.html'.format(code), headers=hds)
    ct = resp.content.decode('utf-8')
    ct = json.loads(ct[ct.index('=') + 1:])
    # print(ct)
    # print(cityname, ':')
    # print(ct['temp'])
    # print(ct['SD'])
    # print(ct['WD'], ct['WS'])
    # print(ct['aqi'])
    print(cityname, ':', ct['temp'], '、', ct['SD'], '、', ct['WD'], '、', ct['WS'], '、', ct['aqi'])

# loadweather('绍兴', '101210507');
count = 0
for k, v in cityinfo.items():
    loadweather(k, v);
    # import time
    # time.sleep(1.5);  # 1.5秒
    count += 1;  # 取前10个城市的信息进行测试
    if count == 10:
        break;

3.2、demo2

'''
大作业题目思路引导:
题目1:定时爬取每个地级市的实时天气状况、存入excel中、为每个城市生成html展示、历史excel文件以每日为单位归档到文件夹中。
考察点:爬虫+文件读写+目录操作+pandas
网址:http://www.weather.com.cn/

每个地市:
1.从网站上寻找所有的地市列表-->地市编码(beautifulsoup解析页面)或(找数据接口)
2.根据地市编号,爬取该地的实时天气(beautifulsoup解析页面)或(找数据接口)

省份没什么用,我们只需要地级市的信息。
'''
import requests as req
import json

hds = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'}
hds['Referer'] = 'http://www.weather.com.cn/';
resp = req.get('http://d1.weather.com.cn/sk_2d/101210507.html?_=1642489100702', headers=hds)  # 时间戳?_=1642489100702可省
ct = resp.content.decode('utf-8')
print(ct)  # var dataSK={"nameen":"shaoxing","cityname":"绍兴","city":"101210507","temp":"7","tempf":"44","WD":"东北风","wde":"NE","WS":"1级","wse":"1km\/h","SD":"85%","sd":"85%","qy":"1023","njd":"3km","time":"22:25","rain":"0","rain24h":"0","aqi":"123","aqi_pm25":"123","weather":"晴","weathere":"Sunny","weathercode":"d00","limitnumber":"","date":"01月18日(星期二)"}
ct = json.loads(ct[ct.index('=') + 1:])
print(ct['temp'])  # 7
print(ct['SD'])  # 85%
print(ct['WD'], ct['WS'])  # 东北风 1级
print(ct['aqi'])  # 123

# demo2:根据城市编码爬取实时天气
# '绍兴': '101210507', '台州': '101210601', '温州': '101210701'
def loadweather(cityname, code):
    hds = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'}
    hds['Referer'] = 'http://www.weather.com.cn/';
    resp = req.get('http://d1.weather.com.cn/sk_2d/{}.html'.format(code), headers=hds)
    ct = resp.content.decode('utf-8')
    ct = json.loads(ct[ct.index('=') + 1:])
    # print(ct)
    # print(cityname, ':')
    # print(ct['temp'])
    # print(ct['SD'])
    # print(ct['WD'], ct['WS'])
    # print(ct['aqi'])
    print(cityname, ':', ct['temp'], '、', ct['SD'], '、', ct['WD'], '、', ct['WS'], '、', ct['aqi'])

# loadweather('绍兴', '101210507');

梅科尔工作室 @全体成员 培训太累了!我和你们一样也很累!很多同学放假之后希望回去休息休息,这种要求是毋庸置疑的,而工作室呢,一直倡导不断学习与提高。可能很多同学不理解为什么放假了,如此的辛苦,我们学习的同时,还有很多人比我们还要努力,利用假期别人休息的时间,而不断的学习和增进。那么很多同学就有疑问,学这些课程有什么用,想过自己主宰的日子,拥有自己的惬意时光,这种要求都是毋庸置疑,但是有一句话大家知道就是“夏虫不可与语冰,笃于时也!”,夏天的虫子你告诉他准备好过冬的棉衣和粮食,他认为多此一举,他是不理解的,因为他从来没有活到过冬天,等到了冬天的时候等待的结果只有被冻死。就像你们年轻的大学生一样,没有经历过就业,没有经历过被别人瞧不起,没有经历过“好”学校鄙视“轻大”时的欲哭无泪,他们会认为自己生活是美好的、轻松的、是不需要努力的。可能考研是大家手里唯一的稻草,这根稻草也构建了大家的围城,很多同学认为读了研究生就包治百病,但是研究生导师是因为你具备的能力而选择你,而不是因为选择了你培养你的能力,这本身就是一个鸡生蛋和蛋生鸡的问题。起码你们知道研究生导师不傻,他们收研究生不是培养,而是使用。而你的本科学校没有多大优势的前提下,个人的能力就显得至关重要,你具备什么样的能力,值得他们的青睐呢?读了研究生不一定会有能力的提升,研究生不一定有更好的工作机会,只是校招时多了一张纸为你背书,这张纸早晚是要被戳破的,到了高学历的平台上,低能力只能被别人更加碾压。李老师是经历过这个过程的,所以才会一而再再而三地要求大家进行培训和学习,这些呢恰恰属于冬天做的越冬准备。整个培训并不是出于一种变态的心理去折磨大家,没有一分钱课时费,图什么,有没有犯罪动机呢?只是一种出于学生不自知的一种自身客观需要而提出的培训要求,那么开学之后和你的宿舍人沟通交流之后,你就会知道自己进步了多少,长进了多少以及荒废了多少。不怕苦,吃半辈子苦,怕吃苦,吃一辈子苦”,这句话到什么时候都是正确的,因此呢,在寒假期间并不是我们休息的时候,而是我们利用别人打盹的时候奋起直追,弯道超车,我也希望每一个梅科尔工作室的同学不要做平庸的人,能够在这个时刻让自己通过一系列的学习提升思考达成质的变化。如果有同学吃不了这份苦,更愿意享受自己的时慵懒的青春生活,没有关系,谁都可以追求你的爱好与喜乐。老师也祝福你开心的度过每一天!

  

  • 12
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
python大作业 一、Turtle创意大PK 自拟题目,完成一个利用Python程序的创意绘图,采用turtle库绘图为主,不少于50行代码,可选采用其他库。 (滑稽绘制) 二、程序练习 2.1 问题描述(10分) 人们常常提到"一万小时定律",就是不管你做什么事情,只要坚持一万小时,应该都可以成为该领域的专家。那么,10000小时是多少年多少天呢? 2.2 问题描述(10分)0380031003800341590145037657 编写计算从n到m和的函数‬,函数名为sum(n,m)‬,函数返回值为n到m所有数据的和‬,使用该函数计算输入数据x,y之间所有数据的和。 2.3 问题描述(15分) 编写函数judgeTri(a,b,c),判断以参数a,b,c的值为边长能否构成三角形并判断三角形的形状;若是锐角三角形,返回R;若是直角三角形,返回Z;若是钝角三角形,返回D;若三边长不能构成三角形,返回ERROR。 2.4 问题描述(15分) 用户输入一个字符串,分别统计其中小写字母、大写字母、数字、空格和其他字符的个数,并在一行内输出小写字母、大写字母、数字、空格和其他字符的个数。 2.5 问题描述(20分) 程序的功能: (1) 使用随机库功能,生成一个包含10个不重复且小于200的正整数列表ls1,输出ls1。‬ (2) 使用列表排序方法,对ls1按奇数在前偶数在后,并且奇数之间的相对顺序不变,偶数之间的相对顺序也不变进行排序,再输出ls1。‬ (3) 使用列表排序方法,对ls1按元素字符长度降序进行排序,输出ls1。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值