没有项目计算语言学练手项目怎么行,这17个小项目收下

 上传我的文档
 下载
 收藏
粉丝量:35
该文档贡献者很忙,什么也没留下。
 下载此文档
java小项目练手 doc
下载积分:300
内容提示:java小项目练手 doc
文档格式:PDF|
浏览次数:250|
上传日期: 08:20:59|
文档星级:
全文阅读已结束,如果下载本文需要使用
 300 积分
下载此文档
该用户还上传了这些文档
java小项目练手 doc
关注微信公众号初学C语言没有项目练手怎么行,这17个小项目收下不谢
用微信扫描二维码分享至好友和朋友圈
用微信扫描二维码分享至好友和朋友圈
    C语言是我们大多数人的编程入门语言,对其也再熟悉不过了,不过很多初学者在学习的过程中难免会出现迷茫,比如:不知道C语言可以开发哪些项目,可以应用在哪些实际的开发中&&,这些迷茫也导致了我们在学习的过程中不知道如何学、学什么,所以,总结这个列表,希望对C语言初学者可以有所帮助~  C语言可以做什么?  从最简单的、最熟悉的说起吧,毕竟我们在学校学习的时候,老师几乎都会让我们去开发:  一、C语言可以实现一些常见的应用  以下几个几乎是我们学习C语言到一定阶段之后必开发的一个小项目了,简单。  1、C语言制作简单计算器  项目用C语言做一个简单的计算器,进行加、减、乘、除操作。  2、C语言实现通讯录  项目使用C语言完成一个简单的通讯录。会涉及到结构体、数组、链表等重要概念。  3、C语言利用epoll实现高并发聊天室  项目实现客户端和服务端编程,服务端使用epoll机制,高并发必备,支持多客户聊天室聊天;客户端使用epoll和fork,父进程与子进程通过pipe通信。    4、C语言编写万年历  使用C语言完成一个简单的日历功能。输入相应的年/月即可看到当月的日历。  二、C语言可以开发游戏  当然C语言也可以开发一些小游戏,有趣的同时也掌握了相应的知识点。  5、C语言制作2048  使用C语言完成一个2048游戏。  6、C语言版flappy_bird  使用C语言来实现一个字符版FlappyBird    关于怎么快速学C/C++游戏编程,有什么方法,这个问题,想必大家都已经心中有数了,打算深入了解这个行业的朋友,可以加下小编上面的C/C++编程学习企鹅裙,不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括小编自己整理的一份2018最新的C/C++资料和0基础入门教程,欢迎初学和进阶中的小伙伴。  7、C语言版扫雷游戏  使用C语言完成一个简单的扫雷游戏。  8、C语言快速实现五子棋  使用C语言实现五子棋游戏。    三、C语言可以开发的其他应用  如果你以为C语言只能开发上面介绍的小游戏以及一些耳熟能详的应用呢,那么就大错特错了,因为C语言还可以开发很多东西,如下:  9、C语言实现一个支持PHP的简易WEB服务器  用C语言实现一个简易的WEB服务器,并能支持动态解析PHP程序。主要涉及到的技术有:LinuxSocket编程,HTTP协议(只实现GET请求),Fast-CGI协议。  10、C语言实现ping程序  项目用C语言实现ping命令。通过项目可以更深入地理解TCP/IP协议,掌握C语言进行网络编程的技巧方法。  11、C语言实现Linux网络嗅探器  项目通过原生套接字的方式,监听所有本地主机收发的数据链路层帧结构,然后解析数据包的类型,并记录到日志文件。实现一个轻量级的网络嗅探器。  12、C语言实现文件类型统计程序  通过实现一个文件类型统计程序,对Linux的文件系统有一个更加深入的了解,尤其在文件类型的判断,目录的操作上的理解会加深。  13、C语言实现多线程排序  项目在Linux环境下使用C语言多线程模型实现了排序算法,通过该项目的学习,可以理解并实践Linux环境的编程基础及多线程模型。  四、用C语言实现Linux命令  最后,再介绍如何用C语言实现Linux命令,通过学习可以了解Linux操作系统。  14、C语言实现Linuxtouch命令  C语言实现Linuxtouch命令项目,学习基于LINUX环境的系统编程技术,尤其Linux文件IO操作相关技术。  15、C语言实现Linuxcp命令  C语言实现Linuxcp命令项目的学习,可以掌握Linux操作系统中的文件IO相关的系统函数和目录相关操作的系统函数,比如open,write,opendir,readir。深入了解Linux环境系统编程。  16、C语言实现Linuxls命令  使用C语言实现Linuxls命令,学习linux目录与文件属性。  17、C语言实现Linuxwho命令  通过C语言实现Linuxwho命令项目的学习,可以掌握Linux操作系统为上层提供的访问系统数据文件的接口。更好的理解Linux操作系统工作的原理。  最后的话:  以上17个大大小小的项目包含各个方面,可以当做是C语言新手的项目练手列表,也可以当做是看看C语言可以做什么的列表。  当然C语言可做的事情不止以上介绍的,还可以做更多你想不到的事情,这就需要熟练的掌握C语言了,需要不断的动手实践操作学习了。
特别声明:本文为网易自媒体平台“网易号”作者上传并发布,仅代表该作者观点。网易仅提供信息发布平台。
阅读下一篇
网易通行证/邮箱用户可以直接登录:初学C语言没有项目练手怎么行,这17个小项目收下不谢 - 简书
初学C语言没有项目练手怎么行,这17个小项目收下不谢
C语言是我们大多数人的编程入门语言,对其也再熟悉不过了,不过很多初学者在学习的过程中难免会出现迷茫,比如:不知道C语言可以开发哪些项目,可以应用在哪些实际的开发中……,这些迷茫也导致了我们在学习的过程中不知道如何学、学什么,所以,总结这个列表,希望对C语言初学者可以有所帮助~C语言可以做什么?从最简单的、最熟悉的说起吧,毕竟我们在学校学习的时候,老师几乎都会让我们去开发:一、C语言可以实现一些常见的应用以下几个几乎是我们学习C语言到一定阶段之后必开发的一个小项目了,简单。1、C语言制作简单计算器项目用C语言做一个简单的计算器,进行加、减、乘、除操作。2、C语言实现通讯录项目使用C语言完成一个简单的通讯录。会涉及到结构体、数组、链表等重要概念。3、C语言利用epoll实现高并发聊天室项目实现客户端和服务端编程,服务端使用epoll机制,高并发必备,支持多客户聊天室聊天;客户端使用epoll和fork,父进程与子进程通过pipe通信。小编推荐一个学C/C++的学习裙【六二七,零一二,四六四】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有很多干货和技术分享!
4、C语言编写万年历使用C语言完成一个简单的日历功能。输入相应的年/月即可看到当月的日历。二、C语言可以开发游戏当然C语言也可以开发一些小游戏,有趣的同时也掌握了相应的知识点。5、C语言制作2048使用C语言完成一个2048游戏。6、C语言版flappy_bird使用C语言来实现一个字符版FlappyBird7、C语言版扫雷游戏使用C语言完成一个简单的扫雷游戏。8、C语言快速实现五子棋使用C语言实现五子棋游戏。
三、C语言可以开发的其他应用如果你以为C语言只能开发上面介绍的小游戏以及一些耳熟能详的应用呢,那么就大错特错了,因为C语言还可以开发很多东西,如下:9、C语言实现一个支持PHP的简易WEB服务器用C语言实现一个简易的WEB服务器,并能支持动态解析PHP程序。主要涉及到的技术有:LinuxSocket编程,HTTP协议(只实现GET请求),Fast-CGI协议。10、C语言实现ping程序项目用C语言实现ping命令。通过项目可以更深入地理解TCP/IP协议,掌握C语言进行网络编程的技巧方法。11、C语言实现Linux网络嗅探器项目通过原生套接字的方式,监听所有本地主机收发的数据链路层帧结构,然后解析数据包的类型,并记录到日志文件。实现一个轻量级的网络嗅探器。12、C语言实现文件类型统计程序通过实现一个文件类型统计程序,对Linux的文件系统有一个更加深入的了解,尤其在文件类型的判断,目录的操作上的理解会加深。13、C语言实现多线程排序项目在Linux环境下使用C语言多线程模型实现了排序算法,通过该项目的学习,可以理解并实践Linux环境的编程基础及多线程模型。四、用C语言实现Linux命令最后,再介绍如何用C语言实现Linux命令,通过学习可以了解Linux操作系统。14、C语言实现Linuxtouch命令C语言实现Linuxtouch命令项目,学习基于LINUX环境的系统编程技术,尤其Linux文件IO操作相关技术。15、C语言实现Linuxcp命令C语言实现Linuxcp命令项目的学习,可以掌握Linux操作系统中的文件IO相关的系统函数和目录相关操作的系统函数,比如open,write,opendir,readir。深入了解Linux环境系统编程。16、C语言实现Linuxls命令使用C语言实现Linuxls命令,学习linux目录与文件属性。17、C语言实现Linuxwho命令通过C语言实现Linuxwho命令项目的学习,可以掌握Linux操作系统为上层提供的访问系统数据文件的接口。更好的理解Linux操作系统工作的原理。最后的话:以上17个大大小小的项目包含各个方面,可以当做是C语言新手的项目练手列表,也可以当做是看看C语言可以做什么的列表。当然C语言可做的事情不止以上介绍的,还可以做更多你想不到的事情,这就需要熟练的掌握C语言了,需要不断的动手实践操作学习了。
C/C++免费学习交流企鹅群,海量最新教程 工具免费分享,还有大神解答问题,快来加入吧
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金相信有很多朋友...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金 相信有很多...
pdf下载地址:Java面试宝典 第一章内容介绍 20 第二章JavaSE基础 21 一、Java面向对象 21 1. 面向对象都有哪些特性以及你对这些特性的理解 21 2. 访问权限修饰符public、private、protected, 以及不写(默认)时的区别(201...
转自http://blog.csdn.net/xugangwen/article/details/ 经典编程书籍大全: http://blog.jobbole.com/106093/ https://github.com/jobbole/awesome-pr...
摘要:近期在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。 于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。 近期在学习Linux下的C编程,买了一本叫《Linux环境下的C...
喜闻山水趣,归隐却非宜。 牵绊也无他,尘缘乱如麻。
巴巴昨天问我,有没有觉得自己命好,我说有啊!他说真的吗?我说嗯!其实他所指的是,我犯错了他总是能够给我分析,让我改进,让我看到自己的不足!确实这一年半来,步入社会,自己总觉得自信满满,一身优点,但是从象牙塔走出社会,我们所面对的很多东西都是需要高效率,思维敏捷来处理的,但是...
忍者跑酷格斗游戏,弹跳,格斗和躲避三种不同的操作方式带给你一个简单有趣的城市忍者格斗跑酷游戏体验! 100%的上瘾,有趣和富有挑战性的游戏,完全的免费。 游戏玩法: 简单地控制忍者的球员连跳和格斗。 杀死敌人或者躲避敌人。 收集金币。 精彩的游戏体验。 良好的忍者风格的背景...
新年在家中…… 详细笔记:《动物农场》笔记 详细笔记:《沟通的艺术》笔记 详细笔记:《简爱》笔记 详细笔记:《非暴力沟通》笔记 详细笔记:《学会提问》笔记 待续中……MVP模式+dagger2+ Glide +Fresco+ Retrofit+OkHttp+GreenDao + RxJava + Kotlin(新人练手项目)&&
先看一下整体效果
这个项目是我用多个类型的项目结合的,所以截图比较多
说一下我写这个项目的感受:这个项目我用Java写过,是半年前实习的时候,学MVP模式写的,因为自己当时贪玩,就想做一个能看新闻,看小说,听歌,看直播,看段子的供自己娱乐的项目,所以就去Github上找了几个大神的开源项目,然后自己做了一个架构,单纯为了学而敲代码,一点自己的思考都没有,就造成现在的我都不敢去看原有的项目代码,真的是一团糟;17年6月份忙完毕业的事,忙完公司的事空闲时间开始计划学习落下的Kotlin,我的学习方式是边敲代码,边学知识点,直到现在,ShowTimeForKtlin才基本上完成。在敲第二遍代码的时候,才有了自己的思考,然后把自己思考到的东西加到项目中去,这真的是学到了很多。同时也发觉Kotlin的魅力好大,现在真的不想用Java写程序了
首先感谢一下MvpApp的作者,我学习MVP模式时看到的该开源项目,然后萌发去做一个自娱自乐的App,从MvpApp上我学到了很多知识,感谢作者的分享。
直播的API接口来自该项目
感觉阅读的自定义好难,原谅我是萌新,基本上照搬的!
音乐API接口
上面的开源项目我只放了一部分的功能进我的项目,还有很多很好的知识以及技能我都没用到,想要学习请到这上面的开源项目里去学习!
该项目仅供交流学习使用,如有侵犯版权问题,可通知本人及时删除
PS:拖了好久才更新一篇,懒惰的毛病真的要改改了,因为公司最近要忙和项目上的一些启发最近打算写一个开源框架,要做一些准备,所以csdn博客会不常登,有心得邮箱交流啊,或者Github也行啊,骚年,不要害羞哟-00-
拼搏在技术道路上的一只小白And成长之路
被转藏 : 1次
被转藏 : 1次查看:14286|回复:75
获奖名单公布
恭喜以上获奖用户,请各位于<font color="#ff年10月16日前,回复获奖短消息告知以下信息(姓名、电话、邮寄地址),未在规定时间内回复的用户,将视为自动放弃奖品。
——————————————————————————————————
有人说,Python是万金油,能做运维,能做Web,能做科学计算,能做大数据…
Python 这么好?速度学起来!
但是想要真正学会编程,还是要动手做点东西出来的!然而对初学者来说,好的练手项目可遇不可求~
Github 源码,看不懂
九九乘法表之类的项目,太无聊
跟着课程敲一遍,可是真到自己写的时候还是不会
那么问题来了:Python有哪些经典的练手项目呢?
“老司机们”让我们荡起学习的双桨~ 将你知道的 Python经典练手项目po出来!最终选择 5位 符合规则的幸运用户,奖励《精通Python设计模式》图书一本。
活动规则:
1、分享你知道的Python经典练手项目;
2、禁止灌水,一经发现,拉到小黑屋吊打;
3、最终将本活动整理成文档,供大家查阅下载;
小编先抛砖引玉,分享一个练习题:复制内容到剪贴板代码:使用 Python 实现:对着电脑吼一声,自动打开浏览器中的默认网站。
例如,对着笔记本电脑吼一声“百度”,浏览器自动打开百度首页。
关键字:Speech to Text
参考思路:
1:获取电脑录音--&WAV文件 python record wav
2:录音文件--&文本
STT: Speech to Text
STT API Google API
3:文本--&电脑命令试读章节:
活动时间:日——日
获奖规则:本次图书奖品由『图灵教育』赞助提供
活动结束后,选取 5位 优质回复用户,奖励《精通Python设计模式》图书一本。
(67.68 KB)
读者推荐:“如果想要优化代码、增强其可读性,你应该看看这本使用了代码结构示例的书,看后一定会有新的想法。这本书的写作风格干净利落、紧抓要点,不适合初学者,但如果你具备一些 Python 编程经验,想要学习新的编程风格,这本书很适合你。”
果断支持一个。
初级工程师
复制内容到剪贴板代码:# -*- coding: utf-8 -*-
# 将你的QQ头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示。
# using PIL in http://www.lfd.uci.edu/~gohlke/pythonlibs/#pillow
from PIL import Image
from PIL import ImageFont
from PIL import ImageDraw
def write_number(image_file_path, number=1):
& & img = Image.open(image_file_path)
& & font_size = img.size[0] if img.size[0] & img.size[1] else img.size[1]
& & font_size = font_size / 4
& & number_txt = str(number) + ' ' if number & 100 else '99+'
& & font = ImageFont.truetype(&arial.ttf&, size=font_size)
& & if font.getsize(number_txt)[0] & img.size[0] or font.getsize(number_txt)[1] & img.size[1]:
& && &&&return img
& & position = img.size[0] - font.getsize(number_txt)[0]
& & ImageDraw.Draw(img).text((position, 0), number_txt, (255, 0, 0), font)
& & return img
write_number('0000.png').save('result.png')
write_number('0000.png', 100).save('result100.png')好活动mark,养大了回看~ 顺便分享一个
本帖最后由 棉花糖 于
10:14 编辑
助理工程师
最近在学习python, 找到一本python神书 500 line or less.这里不只是源码,而是这么一本书。
强烈推荐!!!
强烈推荐!!!
强力推荐!!!
这本书共16个章节,每章均是由该领域的大牛完成,用不到500行的代码实现一个特(装)定(逼)功能。
不明觉厉!!!!!
助理工程师
Python 图片转字符画
助理工程师
引用:原帖由 flybirdfly 于
11:13 发表
Python 图片转字符画 from PIL import Image
import argparse
#命令行输入参数处理
parser = argparse.ArgumentParser()
parser.add_argument('file')& &&&#输入文件
parser.add_argument('-o', '--output')& &#输出文件
parser.add_argument('--width', type = int, default = 80) #输出字符画宽
parser.add_argument('--height', type = int, default = 80) #输出字符画高
args = parser.parse_args()
IMG = args.file
WIDTH = args.width
HEIGHT = args.height
OUTPUT = args.output
ascii_char = list(&$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~&&i!lI;:,\&^`'. &)
# 将256灰度映射到70个字符上
def get_char(r,g,b,alpha = 256):
& & if alpha == 0:
& && &&&return ' '
& & length = len(ascii_char)
& & gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)
& & unit = (256.0 + 1)/length
& & return ascii_char[int(gray/unit)]
if __name__ == '__main__':
& & im = Image.open(IMG)
& & im = im.resize((WIDTH,HEIGHT), Image.NEAREST)
& & txt = &&
& & for i in range(HEIGHT):
& && &&&for j in range(WIDTH):
& && && && &txt += get_char(*im.getpixel((j,i)))
& && &&&txt += '\n'
& & print txt
& & #字符画输出到文件
& & if OUTPUT:
& && &&&with open(OUTPUT,'w') as f:
& && && && &f.write(txt)
& && &&&with open(&output.txt&,'w') as f:
& && && && &f.write(txt)
初级工程师
引用:原帖由 deanyuancn 于
11:02 发表
最近在学习python, 找到一本python神书 500 line or less.这里不只是源码,而是这么一本书。
强烈推荐!!!
强烈推荐!!!
强力推荐!!!
这本书共16个章节,每章均是由该领域的大牛完成,用不到500行的代码实现一个特(装)定(逼)功能。
http:// ... 我是来学习的,这个厉害!
将Python放到日常工作中学习,使用Python语言写一些工作的自动化脚本,最后做成一个自动化工作平台。实践出真知。
引用:原帖由 51cto活动 于
09:50 发表
有人说,Python是万金油,能做运维,能做Web,能做科学计算,能做大数据…
Python 这么好?速度学起来!
但是想要真正学会编程,还是要动手做点东西出来的!然而对初学者来说,好的练手项目可遇不可求~
Github 源码,看不懂
九九乘 ... 小编的眼光和选题真的很赞!
作为c++程序员,最近因项目需要,不得不研究Python。随着对Python的了解逐渐深入,真的为其方便和快捷所征服!在c++语言中需要100函解决的问题使用Python也许只需要简单的1两行就可以搞定。python的编码格式要求比较高,刚开始可能会有点不太适应,但是熟练使用后统一的代码格式会让你轻松阅读任何代码。
推荐练项目:
这是linux下的一个一个客户端工具,在学习过程中大家也可以互相交流!
另外,很期待这本书,太有吸引力啦!!!
本帖最后由 wosign 于
11:32 编辑
51CTO论坛有移动端啦!扫码下载体验就送月会员哦!
啊,我想转开发了
初级工程师
无聊新手,只会写爬虫,天天跑51上签到,领豆豆
初级工程师
人生苦短,我用python
小编这活动,为我等python狗谋福利啊
打飞机游戏火了一段时间,用python开发打飞机游戏是一个上手的好项目。
具体可以参照这个博客:,我把步骤整理了一下,分享一个。
1.打飞机游戏使用的是Pygame库,因此首先了解学习一下Pygame库。
2.从微信APK中提取飞机大战的资源文件。
3.编程第一步,显示飞机大战的游戏背景。
1 # -*- coding: utf-8 -*-
3 import pygame
4 from pygame.locals import *
5 from sys import exit
7 SCREEN_WIDTH = 480
8 SCREEN_HEIGHT = 800
10 # 初始化游戏
11 pygame.init()
12 screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
13 pygame.display.set_caption('飞机大战')
15 # 载入背景图
16 background = pygame.image.load('resources/image/background.png')
18 while True:
19& &&&# 绘制背景
20& &&&screen.fill(0)
21& &&&screen.blit(background, (0, 0))
23& &&&# 更新屏幕
24& &&&pygame.display.update()
26& &&&# 处理游戏退出
27& &&&for event in pygame.event.get():
28& && && &if event.type == pygame.QUIT:
29& && && && & pygame.quit()
30& && && && & exit()
4.编程第二步,显示飞机。
1 # 载入飞机图片
2 plane_img = pygame.image.load('resources/image/shoot.png')
4 # 选择飞机在大图片中的位置,并生成subsurface,然后初始化飞机开始的位置
5 player_rect = pygame.Rect(0, 99, 102, 126)
6 player = plane_img.subsurface(player_rect)
7 player_pos = [200, 600]
5.编程第三步,让飞机动起来
让飞机动起来即是让游戏在主循环中响应键盘事件。上面的代码中我们知道 screen.blit(player, player_pos) 这一句代码绘制出了飞机,这个player_pos就是每次循环中绘制出的飞机的位置,响应键盘事件时,我们只需要改变这个位置就能移动飞机了。
其他经典的项目,还有:贪吃蛇游戏,2048游戏,python网络爬虫等等,网上都可以找到。
本帖最后由 deeplythinking 于
11:44 编辑
引用:原帖由 51cto活动 于
09:50 发表
有人说,Python是万金油,能做运维,能做Web,能做科学计算,能做大数据…
Python 这么好?速度学起来!
但是想要真正学会编程,还是要动手做点东西出来的!然而对初学者来说,好的练手项目可遇不可求~
Github 源码,看不懂
九九乘 ... 我来提供一些我遇到的小项目~~哈哈
1.做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)?
import string
import random
def coupon_creator(digit):
& & coupon=''
& & for word in range(digit):
& && &&&coupon+=random.choice(string.ascii_uppercase + string.digits)
& & return coupon
def two_hundred_coupons():
& & data=''
& & count=1
& & for count in range(200):
& && &&&digit=12
& && &&&count+=1
& && &&&data+='coupon no.'+str(count)+'&&'+coupon_creator(digit)+'\n'
& & return data
coupondata=open('coupondata.txt','w')
coupondata.write(two_hundred_coupons())
coupondata.close()
2.任一个英文的纯文本文件,统计其中的单词出现的个数。
def count():
& & name = raw_input(&Enter file:&)
& & if len(name) & 1 : name = &test.txt&
& & handle = open(name)
& & count_words=list()
& & for line in handle:
& && &&&count_words+=line.split()
& & return len(count_words)
print count()
3.将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。 类似于图中效果
from PIL import Image, ImageFont, ImageDraw
__author__ = 'Chris5641'
def img_add_num(num=1):
& & img = Image.open('img.png')
& & w, h = img.size
& & font = ImageFont.truetype('arial.ttf', w // 4)
& & draw = ImageDraw.Draw(img)
& & draw.text((w*3//4, 0), str(num), font=font, fill='red')
& & img.save('img2.png')
if __name__ == '__main__':
& & img_add_num(5)
4.你有一个目录,装了很多照片,把它们的尺寸变成都不大于 iPhone5 分辨率的大小。
from PIL import Image
__author__ = 'Chris5641'
def change_resolution(path):
& & for picname in os.listdir(path):
& && &&&picpath = os.path.join(path, picname)
& && &&&with Image.open(picpath) as im:
& && && && &w, h = im.size
& && && && &n = w/1366 if (w/1366) &= (h/640) else h/640
& && && && &im.thumbnail((w/n, h/n))
& && && && &im.save('finish_'+picname.split('.')[0]+'.jpg', 'jpeg')
if __name__ == '__main__':
& & change_resolution('/home/chris/pictures/123')
5.有个目录,里面是你自己写过的程序,统计一下你写过多少行代码。包括空行和注释,但是要分别列出来。
def get_files(path):
& & files=os.listdir(path)
& & files_path=[]
& & for fi in files:
& && &&&fi_path= path+'\\' + fi
& && &&&if os.path.isfile(fi_path):
& && && && &if fi.split('.')[-1]=='py':
& && && && && & files_path.append(fi_path)
& && &&&elif(os.path.isdir(fi_path)):
& && && && &files_path+=get_files(fi_path)
& & return files_path
# Count lines and blank lines and note lines in designated files
def count_lines(files):
& & line, blank, note = 0, 0, 0
& & for filename in files:
& && &&&f = open(filename, 'rb')
& && &&&for l in f:
& && && && &l = l.strip()
& && && && &line += 1
& && && && &if l == '':
& && && && && & blank += 1
& && && && &elif l[0] == '#' or l[0] == '/':
& && && && && & note += 1
& && &&&f.close()
& & return (line, blank, note)
if __name__ == '__main__':
& & a=r'c:\python27'
& & #files = get_files(r'c:\python27\oneday_one')
& & files = get_files(r'F\v6:')
& & print len(files),files
& & lines = count_lines(files)
& & print 'Line(s): %d, black line(s): %d, note line(s): %d' % (lines[0], lines[1], lines[2])
6.一个HTML文件,找出里面的链接。
from bs4 import BeautifulSoup
def find_the_link(filepath):
& & links = []
& & with open(filepath) as f:
& && &&&bs =BeautifulSoup(f,'lxml')
& && &&&for i in bs.find_all('a'):
& && && && &links.append(i['href'])
& & return links
if __name__ == '__main__':
7.登陆中国联通网上营业厅 后选择「自助服务」 --& 「详单查询」,然后选择你要查询的时间段,点击「查询」按钮,查询结果页面的最下方,点击「导出」,就会生成类似于 日~日通话详单.xls 文件。写代码,对每月通话时间做个统计。
import xlwt
import xlrd
book = xlrd.open_workbook(r'c:\python27\oneday_one\2015.xls')
print book.sheet_names()
sheet=book.sheet_by_index(0)
print sheet.name,sheet.nrows,sheet.ncols
col3=sheet.col_values(3)
for i in col3:
& & li.append(i)#.encode('utf-8')
info=re.compile(ur&(\d+)[\u4e00-\u9fa5](\d*)[\u4e00-\u9fa5]*&)#匹配汉字!!!!
for each_time in li:
& & t=info.match(each_time).groups()
& & t=list(t)
& & if u'' in t:
& && & t[1],t[0]=t[0],u'0'
& & s[0]=s[0]+int(t[0])
& & s[1]=s[1]+int(t[1])
s[0],s[1]=s[0]+int(s[1]/60),s[1]%60
print '通话时长累计%d分%d秒'%(s[0],s[1])
新闻聚合。这个的主要功能是用来从指定的来源收集信息,然后讲这些信息保存到指定的目的文件中(这里使用了两种形式:纯文本和html文件)。这个程序的用处有些类似于现在的博客订阅工具或者叫RSS订阅器。复制内容到剪贴板代码:from nntplib import NNTP
from time import strftime,time,localtime
from email import message_from_string
from urllib import urlopen
import textwrap
day = 24*60*60
def wrap(string,max=70):
& && &&&'''
& && &&&'''
& && &&&return '\n'.join(textwrap.wrap(string)) + '\n'
class NewsAgent:
& && &&&'''
& && &&&'''
& && &&&def __init__(self):
& && && && && & self.sources = []
& && && && && & self.destinations = []
& && &&&def addSource(self,source):
& && && && && & self.sources.append(source)
& && &&&def addDestination(self,dest):
& && && && && & self.destinations.append(dest)
& && &&&def distribute(self):
& && && && && & items = []
& && && && && & for source in self.sources:
& && && && && && && && &items.extend(source.getItems())
& && && && && & for dest in self.destinations:
& && && && && && && && &dest.receiveItems(items)
class NewsItem:
& && &&&def __init__(self,title,body):
& && && && && & self.title = title
& && && && && & self.body = body
class NNTPSource:
& && &&&def __init__(self,servername,group,window):
& && && && && & self.servername = servername
& && && && && & self.group = group
& && && && && & self.window = window
& && &&&def getItems(self):
& && && && && & start = localtime(time() - self.window*day)
& && && && && & date = strftime('%y%m%d',start)
& && && && && & hour = strftime('%H%M%S',start)
& && && && && & server = NNTP(self.servername)
& && && && && & ids = server.newnews(self.group,date,hour)[1]
& && && && && & for id in ids:
& && && && && && && && &lines = server.article(id)[3]
& && && && && && && && &message = message_from_string('\n'.join(lines))
& && && && && && && && &title = message['subject']
& && && && && && && && &body = message.get_payload()
& && && && && && && && &if message.is_multipart():
& && && && && && && && && && &&&body = body[0]
& && && && && && && && &yield NewsItem(title,body)
& && && && && & server.quit()
class SimpleWebSource:
& && &&&def __init__(self,url,titlePattern,bodyPattern):
& && && && && & self.url = url
& && && && && & self.titlePattern = re.compile(titlePattern)
& && && && && & self.bodyPattern = re.compile(bodyPattern)
& && &&&def getItems(self):
& && && && && & text = urlopen(self.url).read()
& && && && && & titles = self.titlePattern.findall(text)
& && && && && & bodies = self.bodyPattern.findall(text)
& && && && && & for title.body in zip(titles,bodies):
& && && && && && && && &yield NewsItem(title,wrap(body))
class PlainDestination:
& && &&&def receiveItems(self,items):
& && && && && & for item in items:
& && && && && && && && &print item.title
& && && && && && && && &print '-'*len(item.title)
& && && && && && && && &print item.body
class HTMLDestination:
& && &&&def __init__(self,filename):
& && && && && & self.filename = filename
& && &&&def receiveItems(self,items):
& && && && && & out = open(self.filename,'w')
& && && && && & print && out,'''
& && && && && & &html&
& && && && && & &head&
& && && && && &&&&title&Today's News&/title&
& && && && && & &/head&
& && && && && & &body&
& && && && && & &h1&Today's News&/hi&
& && && && && & '''
& && && && && & print && out, '&ul&'
& && && && && & id = 0
& && && && && & for item in items:
& && && && && && && && &id += 1
& && && && && && && && &print && out, '&li&&a href=&#&&%s&/a&&/li&' % (id,item.title)
& && && && && & print && out, '&/ul&'
& && && && && & id = 0
& && && && && & for item in items:
& && && && && && && && &id += 1
& && && && && && && && &print && out, '&h2&&a name=&%i&&%s&/a&&/h2&' % (id,item.title)
& && && && && && && && &print && out, '&pre&%s&/pre&' % item.body
& && && && && & print && out, '''
& && && && && & &/body&
& && && && && & &/html&
& && && && && & '''
def runDefaultSetup():
& && &&&agent = NewsAgent()
& && &&&bbc_url = 'http://news.bbc.co.uk/text_only.stm'
& && &&&bbc_title = r'(?s)a href=&[^&]*&&\s*&b&\s*(.*?)\s*&/b&'
& && &&&bbc_body = r'(?s)&/a&\s*&br/&\s*(.*?)\s*&'
& && &&&bbc = SimpleWebSource(bbc_url, bbc_title, bbc_body)
& && &&&agent.addSource(bbc)
& && &&&clpa_server = 'news2.neva.ru'
& && &&&clpa_group = 'alt.sex.telephone'
& && &&&clpa_window = 1
& && &&&clpa = NNTPSource(clpa_server,clpa_group,clpa_window)
& && &&&agent.addSource(clpa)
& && &&&agent.addDestination(PlainDestination())
& && &&&agent.addDestination(HTMLDestination('news.html'))
& && &&&agent.distribute()
if __name__ == '__main__':
& && &&&runDefaultSetup()
从整体上进行分析,重点部分在于NewsAgent,它的作用是存储新闻来源,存储目标地址,然后在分别调用来源服务器(NNTPSource以及SimpleWebSource)以及写新闻的类(PlainDestination和HTMLDestination)。
所以从这里也看的出,NNTPSource是专门用来获取新闻服务器上的信息的,SimpleWebSource是获取一个url上的数据的。而PlainDestination和HTMLDestination的作用很明显,前者是用来输出获取到的内容到终端的,后者是写数据到html文件中的。
有了这些分析,然后在来看主程序中的内容,主程序就是来给NewsAgent添加信息源和输出目的地址的。
这确实是个简单的程序,不过这个程序可是用到了分层了。
本帖最后由 ssrenttwu 于
14:08 编辑
助理工程师
进来膜拜大神
我不会 但是我也想要&&精通Python设计模式
引用:原帖由 yanggang1025 于
14:23 发表
我不会 但是我也想要&&精通Python设计模式
这本书需要一定的 Python编程基础哦~
51CTO论坛有移动端啦!扫码下载体验就送月会员哦!
论坛首席搬砖工程师
活动顶一手~~~
已更新,防火墙、上网行为管理、VPN设备
去checkio上做题。}

我要回帖

更多关于 计算语言学练手项目 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信