您的位置:澳门402永利com > 编程应用 > 你能编出什么,一个适合于Python新手的入门练手

你能编出什么,一个适合于Python新手的入门练手

发布时间:2019-09-23 20:45编辑:编程应用浏览(60)

    随着人工智能的兴起,国内掀起了一股Python学习热潮,入门级编程语言,大多选择Python,有经验的程序员,也开始学习Python,正所谓是人生苦短,我用Python

    有个Python入门练手项目,一直没有和大家推荐过,这个开源项目还是一本书,这本书最大的特点在于每个章节都是由一位该领域的开源大牛编写的,每章包含一个程序实现,这些程序的代码都在500行以内,故而这本书叫——《500 Lines or Less》

    不到500行Python代码,你能写出什么东西?Github上一个名为“500lines”的开源项目集结了众多业内较为知名的开发者,同时,所有贡献项目的代码行数均在500行以内。完整版本每章包含一个程序演练,该程序在至多500条源代码行中解决了软件工程中的规范问题。来看看业内一线的编程大牛能在500行代码之内编出什么程序吧!

    图片 1

    每位建筑师在学习期间都会研究家庭住宅、公寓、学校和其他常见建筑类型。同样,每个程序员都应该知道编译器如何将文本转换为指令,电子表格如何更新单元格以及数据库如何高效保持数据。

    这本书在 GitHub 上的名称为 500lines,目前已经获得20344个 Star,4697个Fork

    图片 2

    虽说本书是关于Python入门,但实际上并非所有代码都是用Python编写的,里面也有一些项目采用Ruby、C、JavaScript等编写,实际上这本书的重点不在于编程语言,更侧重于程序员在编写代码时所作出的设计决策和权衡:

    项目完整清单

    • 为什么使用这些特定接口将应用程序划分为特定的模块?
    • 为什么这里使用继承,那里使用封装?
    • 如何预测程序可能需要扩展的地方,以及如何让程序员轻松实现

    很多书籍和资料会给出非常棒和相对成熟的高级架构,但这些可能并不实用,当代码行数缩减,很多不必要的设计就会被避免,选择什么样的接口、框架、如何扩展、如何合理利用继承等会变得很重要,这对于程序员来说,很容易被吸收。

    图片 3

    该项目重点关注有经验的程序员在编写代码时所做的设计决策和权衡:

    书中一共有22个项目,下面介绍一下,这本书都有哪些项目:

    • 为什么用这些特定的接口将应用程序分成某些特定模块?

    • 为什么要在这里继承?

    • 如何预测程序可能需要扩展的地方,以及如何让其他程序员使用更容易?

    1、Blockcode: A visual programming toolkit

    (以下为500 Lines or Less项目内包含的部分开源项目简短介绍,完整项目文件和解说均可通过文末链接查看)

    图片 4

    1、500 Lines or Less——可视化编程工具(Blockcode)

    该项目主要通过龟图(turtle graphics)实现块语言,通过简单拖放创建图案,整个过程通过常用的Html、CSS和JavaScript来实现(每一个块由html元素组成,CSS用于设置样式,JavaScript时间处理器进行拖拽并修改参数)。属于图片编程的一种

    该项目主要用于为龟图(turtle graphics)实现块语言,通过简单拖放创建图案,整个过程通过常用的Html、CSS和JavaScript来实现(每一个块由html元素组成,CSS用于设置样式,JavaScript时间处理器进行拖拽并修改参数)。其次,作者将块构建为一个框架以服务其他编程语言。

    2、A Continuous Integration System

    图片 5

    持续集成系统是Python编写的用于测试新代码的专用系统。该项目使用Git作为测试代码的存储库。但它只使用标准的源代码管理调用,如果你不熟悉Git但熟悉其他版本控制系统,如svn或Mercurial,也是可以正常使用。该系统有三大主要功能:获取更改后代码、自动测试代码、生成测试报告

    操作视图效果

    3、Clustering by Consensus

    该项目也是图形编程的一种方式,目前图形编程也被广泛应用于低年级学生编程教学中。Github上也有很多类似项目,虽然编程语言可能不同,但实现逻辑有异曲同工之妙。

    分布式系统 paxos原理与实现,并采用一些技巧帮助你尽可能的减少和查找、修复漏洞以及特别的开发调试技巧。

    2、500 Lines or Less——持续集成系统

    4、Contingent: A Fully Dynamic Build System

    该项目作者曾任职于Mozilla,后转去Twitch工作,一直致力于在保证代码安全的前提下提升程序员的编码速度。

    使用python构建一个文档系统

    在这个敏捷开发、敏捷交付的时代,很多程序在上线前的测试都不完整。多数情况下,开发人员会在开发过程中直接测试代码以确保功能实现的完整和稳定,随着版本的不断迭代,需要进行的测试越来越多,持续集成系统可以很好地解决这类问题,在开发环境中对不断迭代的代码进行完全测试。

    5、A Web Crawler With asyncio Coroutines

    这类系统主要功能就三项:获取更改后代码、自动测试代码、生成测试报告。但是,这个过程必须是稳定的、正确的以及可恢复的。

    几百行代码实现一个简单的Web爬虫程序

    3、500 Lines or Less——Python 解释器

    6、Dagoba: an in-memory graph database

    该项目名为Byterun,是一个用Python实现的Python解释器。它的结构与CPython非常相似,但是Byterun更小。它最大的缺点是速度略慢,但已经可以解析大多数代码了,毕竟这是500行代码以内完成的,肯定会有一些不足。而且,CPython基于C语言实现并做了大量优化。

    这个项目主要讲述如何通过JavaScript构建一个图形数据库

    作为一个解释器,Byterun很容易被理解,如果你希望搞清楚一个解释器的编写过程,这是一个非常不错的尝试,并且Python语言本身就很容易理解。

    7、DBDB: Dog Bed Database(key-value的非关系型数据库)

    4、500 Lines or Less——简单的对象模型

    DBDB(Dog Bed Database)是一个Python库,它实现了一个简单的key-value的非关系型数据库,旨在保护计算机出现崩溃或者报错时的数据。

    该项目主要实现了一套简单的对象模型,先实现一个简单的类与实例,并能够通过实例访问一些方法,这是很多早期面向对象语言所采用的面向对象模型。然后,在此基础上逐渐扩展,进一步优化性能得到一个低配版的Python对象模型。

    8、A Flow Shop Scheduler

    5、500 Lines or Less——光学文字识别

    Flow Shop 调度问题,通过Python的一些功能特性,用少量的代码,从局部最优解找全局最优解

    该项目涉及目前大火的人工智能技术,项目说明针对人工智能、反向传播进行了部分解说,对于想要进入人工智能领域的开发者而言,这是非常棒的学习资料和实践项目。

    9、Making Your Own Image Filters

    作者利用前馈神经网络探索搭建了一个OCR系统,主要由5部分组成,分别写在5个文件之中。它们是:客户端(ocr.js)、服务器(server.py)、简单的用户界面(ocr.html)、基于反向传播训练的ANN(ocr.py)、ANN的实现脚本(neural_network_design.py)

    图片 6

    6、500 Lines or Less——决策采样器

    通过Processing(一种用Java构建的编程语言和开发环境)创建一个图像过滤器

    有一定数学基础的开发者对采样、多项分布、随机分布等名词一定不陌生,简单来说,该项目将整个过程通过编程方式来实现。

    10、A Python Interpreter Written in Python(Python解释器)

    7、500 Lines or Less——模板引擎

    Byterun是一个用Python实现的Python解释器,这个项目主要是帮助你搞清楚这个解释器的结构

    Web应用程序是典型以文字为主的常见任务,这类应用程序最重要的一个阶段就是将生成的HTML送到浏览器,一般的HTML至少会包含一些小的动态数据,比如用户名之类的。对于如何生成一个动静态数据混合的大型字符串是很多开发者一直在尝试解决的问题,模板引擎就是这样一个解决方案。

    11、A 3D Modeller

    8、500 Lines or Less——简易web服务器

    用 Python 实现一个3D设计,显示到屏幕,可以交互。

    尽管互联网技术发生了天翻地覆的变化,但过去20年里,网络核心的改动却不多,大多数web服务器仍然遵循以前的方式处理数据,这个简易的web服务器同样如此,如果你想了解web服务器的简单搭建过程,这个开源项目绝对是最好的选择。

    12、a-simple-object-model

    完整的开源项目清单当然远不止这8个项目,但部分项目尚未出现中文翻译版,中文版地址中涵盖了所有开源项目的具体说明链接,如果有兴趣,可以自行移步至Github平台。

    本章探讨了一系列非常简单的对象模型的实现。码适用于Python 2.7和3.4,为了更好理解,还介绍了对象模型测试。

    图片 7

    13、Optical Character Recognition

    中文翻译完成现状

    AI的一个众所周知的应用是光学字符识别。OCR系统是一种软件,该项目将使用神经网络搭建一个OCR系统

    Github开源地址英文原版:

    14、A Pedometer in the Real World

    Github开源地址中文版(待完成):

    教你如何使用Ruby建立一个基本的计步器,并在代码中添加一个Web层,为用户提供一个友好UI界面

    【编辑推荐】

    15、The Same-Origin Policy

    SOP是每个现代浏览器安全机制的重要组成部分。该项目使用Alloy(一种用于建模和分析软件设计的语言),构建一个SOP模型

    16、A Rejection Sampler

    该项目将对采样、多项分布、随机分布等名词,通过Python编程方式来实现。

    17、Web Spreadsheet

    该项目仅仅用了99行 HTML、CSS 和 JS 代码就写出一个Web 的电子表格

    18、Static Analysis

    通过Julia代码编写静态分析工具,一种基于类型的静态分析工具,一种是基于变量的静态分析工具。

    19、A Template Engine

    任何Web应用程序中的一个重要阶段是生成要提供给浏览器的HTML。本项目通过Python构建一个简单的模板引擎,解析 html 中的静态变量和简单的语句

    20、A Simple Web Server

    利用Python搭建一个简单的 Web 服务器

    21、An Event-Driven Web Framework

    在Common Lisp中构建一个Web框架,解决游戏中交互的问题

    22、An Archaeology-Inspired Database

    488行Clojure源代码构建数据库,其中73行是空白行,55行是文档字符串。

    写在最后

    如果你对这本书感兴趣,可以通过官方链接免费阅读,也可以购买原版平装书籍或者PDF版本,你还可以直接在GitHub上获取这22个项目的源码,地址如下:

    在线阅读地址:

    为了让国内的开发者能够更好理解阅读,有人已经在GitHub上开源了500 line or less 中文翻译版本——「500LineorLess_CN」

    中文版Github地址:

    本文由澳门402永利com发布于编程应用,转载请注明出处:你能编出什么,一个适合于Python新手的入门练手

    关键词: