阅读量:2
继续打基础,爬虫部分随笔
第一题:特别数的和
题目描述:
小明对数位中含有2、0、1、9的数(不包含前导0)很感兴趣,在1到40中这样的数共有28个,它们的和是574。
请问在1到n中,这样的数的和是多少?
输入格式:
共一行,包含一个整数n
输出格式:
共一行,包含一个整数,表示符合条件的数的和。
def check(n): while n > 0: tmpn = n % 10 if tmpn == 2 or tmpn == 0 or tmpn == 1 or tmpn == 9: return True n //= 10 return False n = int(input()) ans = 0 for i in range(1,n + 1): if check(i): ans += i print(ans)
今天只写一个题,灵感爆发,我想再续写一下爬虫的相关内容。
上次不是说到把得到的数据保存到数据库MySQL中嘛,这次我来写一下怎样将其可视化。
我自己的做法是将得到的数据保存为json格式,然后我要画出柱状图和词云图。以下是实现的代码。
import json import pandas as pd import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties from wordcloud import WordCloud import jieba with open('./maoer1.json', 'r', encoding='utf-8') as file: movies = [json.loads(line) for line in file] df = pd.DataFrame(movies) font_path = './NotoSerifSC-Black.ttf' font_prop = FontProperties(fname=font_path) plt.rcParams['font.family'] = font_prop.get_name() plt.figure(figsize=(10, 6)) plt.barh(df['movie_name'], df['score'].astype(float), color='skyblue') plt.xlabel('评分',fontproperties=font_prop) plt.ylabel('电影名称',fontproperties=font_prop) plt.title('电影评分柱状图',fontproperties=font_prop) plt.yticks(fontproperties=font_prop) plt.gca().invert_yaxis() plt.show() text = ' '.join(df['description']) wordlist = jieba.cut(text, cut_all=False) wl_space_split = " ".join(wordlist) wordcloud = WordCloud( font_path=font_path, width=800, height=400, background_color='white' ).generate(wl_space_split) plt.figure(figsize=(10, 6)) plt.imshow(wordcloud, interpolation='bilinear') plt.axis('off') plt.title('电影描述词云',fontproperties=font_prop) plt.show()
但是,我不知道为啥,每次我运行这个代码,首先出来的是柱状图,将其关闭后还要过一会儿才会出现词云图,我一直不理解。
那这篇就这样了,我会在下一篇详细地写出scrapy爬取豆瓣的流程,感兴趣的朋友可以看一看,顺便指出我的错误。