先上网址 https://github.com/Show-Me-the-Code/show-me-the-code

初学python拿来练手,记住一些常用的库和函数

第 0000 题:将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。 类似于图中效果

 1 # -*- coding:utf-8 -*-
 2 import sys
 3 import glob,os
 4 from PIL import Image,ImageDraw,ImageFont
 5 type = sys.getfilesystemencoding()
 6
 7 font = ImageFont.truetype("msyhbd.ttc",30)
 8 for infile in glob.glob("*.jpg"):
 9     file,ext = os.path.splitext(infile)
10     im = Image.open(infile)
11     w,h = im.size
12     x=w*0.8
13     y=h*0.1
14     drawSurface = ImageDraw.Draw(im)
15     drawSurface.text((x,y), "4", fill=(255,0,0), font=font)
16     im.show()

这个题带来了图像处理的库:PIL

Image和ImageDraw,ImageFont是配套的,Draw可以作画,font可以添加一些东东比如字体

可能比较麻烦的是字体的名字怎么找……打开字体文件夹,随便选中一款字体

右键,选择属性查看名称。如果右键没有属性,说明这个字体里还分了类。。比如我的微软雅黑里面还有细体粗体什么的。。打开再属性就好

第 0001 题:做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)?

激活码,就是平时我们看到的那种很奇葩的乱七八糟的码,数字夹杂了字母

而激活码要保证独一而二,又要考虑存储于数据库,那么必然要和id对应上。

# coding:utf-8
import random
import stringdef create_code(id,length=10):id_ = hex(id)id_ = id_[2:]+'L'length = length-len(id_)chars=string.ascii_letters+string.digits;code=id_+ ''.join([random.choice(chars) for i in range(length)])return codedef get_Id(code):id_ = code.split('L')[0]id = int(id_,16)        return str(id)if __name__ == "__main__":for i in range(0,200):code = create_code(i)id = get_Id(code)print code,id#本篇重点是string中的char列表,还有join,random.choice(chars)用法

根据输出可以看到I与id是相同的,把i当作id生成code,把code转成id说明不变。成功~

chars列表很有意思~原来还能这么玩

第 0002 题:将 0001 题生成的 200 个激活码(或者优惠券)保存到 MySQL 关系型数据库中。

第 0003 题:将 0001 题生成的 200 个激活码(或者优惠券)保存到 Redis 非关系型数据库中。

这两题涉及到数据库~~博主并不会数据库~~等我学了再写这两题咯

第 0004 题:任一个英文的纯文本文件,统计其中的单词出现的个数。

# -*-coding:utf-8 -*—

filename = "image.py"
key = "import"
file = open(filename)text = file.read()
beg = 0
num = 0while text.find(key) != -1:num = num + 1text = text.split(key,1)[1]
print num
file.close()

filename和key都是可以自己改的~~~~

这里需要注意的是find()函数。find()如果找得到,就会返回index,如果找不到,就会返回-1.所以千万不可以直接写 if find().无论如何都有返回值……所以一定要写!=-1才能做出正确判断

第 0005 题:你有一个目录,装了很多照片,把它们的尺寸变成都不大于 iPhone5 分辨率的大小。

# -*- coding:utf-8 -*-
import glob,os
from PIL import Imagesize = 200,200
for file in glob.glob('*.jpg'):filename,ext = os.path.splitext(file)im = Image.open(file)w,h = im.sizeim.thumbnail(size)im.save(filename + 'thumbnail.jpg','JPEG')

os.path.splitext()函数会返回两个部分,前一个是文件名(可能含路径),后一个是类型名,glob.glob("")会查找当前目录中符合的文件。如果想获取当前的目录,可以用os.getcwd()。python中类似的方法实在太多了

第 0006 题:你有一个目录,放了你一个月的日记,都是 txt,为了避免分词的问题,假设内容都是英文,请统计出你认为每篇日记最重要的词。

最重要的词,我就把它当出现最多的词咯

# coding:utf-8
import os
import sys
import re
from collections import Counter
type = sys.getfilesystemencoding()def getCounter(file):f = open(file)r = re.findall(r'[A-Za-z]+',f.read())return Counter(r)if __name__ == "__main__":total_counter = Counter()for infile in os.listdir(os.getcwd()):filename,ext = os.path.splitext(infile)if ext == '.py':
#            total_counter += getCounter(infile)print filename    print getCounter(infile).most_common(2)#    print total_counter.most_common()[0][0]

这次用到的是神奇的counter!counter类会对内部的数据进行自动统计计数,http://www.pythoner.com/205.html 这个网址有详细的讲解

第 0007 题:有个目录,里面是你自己写过的程序,统计一下你写过多少行代码。包括空行和注释,但是要分别列出来。

#coding:utf-8
import os
import re
from collections import Counterannotation = r'^\#.'
space = r'^\s+$'if __name__ == "__main__":for i in os.listdir(os.getcwd()):code,blank,note = 0,0,0filename,ext = os.path.splitext(i)if ext == '.py':with open(i) as f:line = f.readline()while line:if re.match(space,line):blank += 1elif re.match(annotation,line):note += 1else:code += 1line = f.readline()print filenameprint "code:%d, blank:%d, note:%d"%(code,blank,note)

同样还是在当前目录下运行……定义了注释和空格符的正则,由于不会写代码的正则干脆用else来表示了,与c不同的是else if写成elif……

re.match()就是捕获咯,第一个参数是正则式,第二个参数就是看你检验的字符串啦

第 0008 题:一个HTML文件,找出里面的正文

#coding:utf-8
import glob,os
import requests
from bs4 import BeautifulSoup
import sys
ty = sys.getfilesystemencoding()
url = "https://github.com/Show-Me-the-Code/python/blob/master/Forec/0008/0008.py"
html = requests.get(url)
soup = BeautifulSoup(html.text,"html.parser")
print soup.body.text.encode('GBK','ignore').decode('GBK')

鼎鼎大名的bs4!!!!

曾经初学爬虫………………用urllib爬下来然后partition...index....虽然也能做出效果然而实在蛋疼

beautifulsoup会把html代码结构化。soup.body.text指的就是body的全部字符咯,当然也可以尝试输出soup.body.div……不过这样输出的是不含子结构的div,否则是检查不到的~~~那么要怎么才能明确输出某个藏在很深很深结构里标签呢?下面就是这个啦

第 0009 题:一个HTML文件,找出里面的链接。换成<a>标签去找。。。就好

第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-)

#coding:utf-8
import requests
import urllib2
from bs4 import BeautifulSoup
import lxml.html
url = "http://tieba.baidu.com/p/2166231880"html = requests.get(url)
soup = BeautifulSoup(html.text,"html.parser")
lis =  soup.find_all('img')
count = 1
for img in lis:src = img.attrs['src']start = src.rfind('/')+1end = src.rfind('?') if src.rfind('?') != -1 else len(src)name = src[start:end]#print namefilepath = 'e:/image/'+str(count)+namewith open(filepath,'wb') as f:#    image_data = urllib2.urlopen(src).read() #bs4这里好像下不了image_data = requests.get(src).content #bs4的用法
        f.write(image_data)count += 1

注意find_all函数。。。。不管这个img标签藏得多么深。。这么写就会通通把他们找出来啦

转载于:https://www.cnblogs.com/bakoom/p/5251293.html

github/python/ show me the code 25题(一)相关推荐

  1. android kotlin面试题,Kotlin面试25题

    大家好,这一期呢,我们谈一下kotlin的面试题. 第1题,什么是kotlin? kotlin是静态类型的编程语言,运行于jvm之上. 第2题, 是谁开发了kotlin? kotlin是由jetbra ...

  2. 电子学会 2020年6月 青少年软件编程Python编程等级考试一级真题解析(选择题+判断题+编程题)

    青少年编程Python编程等级考试一级真题解析(选择题+判断题+编程题) 2020年6月 一.选择题(共25题,共50分) 以下哪种输入结果不可能得到以下反馈: 重要的事情说三遍:安全第一!安全第一! ...

  3. 中国电子学会2022年12月份青少年软件编程Python等级考试试卷四级真题(含答案)

    分数:100   题数:38 测试时长:60min         一.单选题(共25题,共50分) 1.    有n个按名称排序的商品,使用对分查找法搜索任何一商品,最多查找次数为5次,则n的值可能 ...

  4. 中国电子学会2022年12月份青少年软件编程Python等级考试试卷三级真题(含答案)

    2022-12 Python三级真题 分数:100 题数:38 测试时长:60min 一.单选题(共25题,共50分) 1.  列表L1中全是整数,小明想将其中所有奇数都增加1,偶数不变,于是编写了如 ...

  5. 中国电子学会2022年06月份青少年软件编程Python等级考试试卷二级真题(含答案)

    2022-06 Python二级真题 分数:100 题数:37 测试时长:60min 一.单选题(共25题,共50分) 1.运行下列程序,输出的结果是?(A)(2分) tup1=('苏炳添','谷爱凌 ...

  6. 电子学会青少年软件编程Python编程等级考试一级真题解析(选择题+判断题)2022年6月

    电子学会青少年软件编程Python编程等级考试一级真题解析(选择题+判断题)2022年6月 一.选择题(共25题,共50分) 在Python编辑器中写好程序代码后,在Run菜单中,下列哪个命令可以用来 ...

  7. 中国电子学会2022年06月份青少年软件编程Python等级考试试卷一级真题(含答案)

    2022-06 Python一级真题 分数:100题数:37 一.单选题(共25题,共50分) 1.在Python编辑器中写好程序代码后,在Run菜单中,下列哪个命令可以用来执行程序?(B)(2分) ...

  8. 软件测试基础知识面试题目(25题英文题目)

    软件测试基础知识面试题目(25题英文题目) 1. Verification is:  a. Checking that we are building the right system b. Chec ...

  9. python程序设计第二章序列类型 题库及选解

    由于学校的python是笔试,所以找了份感觉比较好的题库刷了下其中前八章的填空和判断,附上选解.各章链接如下 python程序设计题库完整版 https://blog.csdn.net/lijia11 ...

最新文章

  1. python 中 property 属性的讲解及应用
  2. 多层陶瓷电容器用处_典型陶瓷电容的用途和作用
  3. Python八种数据导入方法,你掌握了吗?
  4. 一些SAP S4CRM On-Premises开发的代码审查,2017-02-16
  5. git修改commit注释_【Slog】Git之多人同feature的同分支开发
  6. 白帽子讲Web安全(对看书之后的一点笔记)
  7. ViT (Vision Transformer) ---- Text Generation(文本生成器)
  8. python android自动化能做哪些页面_android - python 自动化测试 移动互联网 - SegmentFault...
  9. 【LeetCode】【数组】题号:*41,最小正正数
  10. SpringMVC学习指南【笔记4】数据绑定、表单标签库、转换器、格式化、验证器
  11. Linux命令之find命令
  12. 手机电脑同连一个wf,手机网速比电脑网速快很多,电脑网速很慢
  13. android 自定义menu菜单按键功能
  14. LoRa 学习Day4 LoRa无线通信设计(二)空空距离测试
  15. Pytorch迁移学习加载部分预训练权重
  16. Python 使用pyinstaller打包exe文件报错: TypeError: an integer is required (got type bytes) 的解决方法
  17. FLASH常见问题(转载)
  18. extjs json 数据的操作 自由操作服务器返回的json数据
  19. c++求矩阵的秩_对于向量和矩阵的理解
  20. 共享EXCEL工作簿实现协同录入(转)

热门文章

  1. ospf 环回口的路由条目_OSPF (4)
  2. java curl json_curl javaSSm框架中传入json数组的格式方法
  3. python并发编程方法_Python Futures并发编程详解
  4. oracle判断非空并拼接,oracle sql 判断字段非空,数据不重复,插入多跳数据
  5. 【资源分享】The Beatles(披头士)乐队所有专辑带封面
  6. Spring之注解方式实例化Java类
  7. iOS SwiftUI篇-5 专题NavigationView、NavigationLink
  8. ios架构篇-2 国际化多语言
  9. python绝对值编程_Python-abs vs fabs
  10. 微信小程序插件新增能力