Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: swaroopch/byte-of-python
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: LenKiMo/byte-of-python
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Loading
Showing with 5,361 additions and 3,630 deletions.
  1. +47 −0 .github/workflows/honkit-depoly.yml
  2. +7 −0 02.dedication.md
  3. +27 −0 03.1.preface.md
  4. +51 −0 03.2.translator-preface.md
  5. +90 −0 04.about_python.md
  6. +83 −0 05.installation.md
  7. +184 −0 06.first_steps.md
  8. +435 −0 07.basics.md
  9. +224 −0 08.op_exp.md
  10. +285 −0 09.control_flow.md
  11. +380 −0 10.functions.md
  12. +266 −0 11.modules.md
  13. +443 −0 12.data_structures.md
  14. +416 −0 13.problem_solving.md
  15. +364 −0 14.oop.md
  16. +224 −0 15.io.md
  17. +221 −0 16.exceptions.md
  18. +100 −0 17.stdlib.md
  19. +247 −0 18.more.md
  20. +142 −0 19.what_next.md
  21. +41 −0 20.floss.md
  22. +33 −0 21.about.md
  23. +100 −0 22.revision_history.md
  24. +200 −0 23.translations.md
  25. +8 −0 24.Translation-how-to.md
  26. +10 −0 25.Feedback.md
  27. +0 −6 INSTALL.md
  28. +427 −0 LICENSE
  29. +86 −208 README.md
  30. +26 −24 SUMMARY.md
  31. +0 −35 about.md
  32. +0 −92 about_python.md
  33. +0 −420 basics.md
  34. +12 −3 book.json
  35. +0 −166 control_flow.md
  36. +0 −240 data_structures.md
  37. +0 −7 dedication.md
  38. +0 −123 exceptions.md
  39. +0 −3 feedback.md
  40. +0 −190 first_steps.md
  41. +0 −41 floss.md
  42. +0 −217 functions.md
  43. BIN img/pycharm_command_line_arguments.png
  44. BIN img/pycharm_create_new_project.png
  45. BIN img/pycharm_create_new_project_pure_python.png
  46. BIN img/pycharm_hello_open.png
  47. BIN img/pycharm_new_file_input.png
  48. BIN img/pycharm_new_python_file.png
  49. BIN img/pycharm_open.png
  50. BIN img/pycharm_output.png
  51. BIN img/pycharm_run.png
  52. BIN img/terminal_screenshot.png
  53. +0 −84 installation.md
  54. +0 −118 io.md
  55. +0 −212 modules.md
  56. +0 −174 more.md
  57. +0 −184 oop.md
  58. +0 −204 op_exp.md
  59. +0 −23 preface.md
  60. +0 −157 problem_solving.md
  61. +17 −17 programs/backup_ver1.py
  62. +20 −21 programs/backup_ver2.py
  63. +24 −24 programs/backup_ver3.py
  64. +23 −23 programs/backup_ver4.py
  65. +1 −1 programs/continue.py
  66. +8 −8 programs/ds_reference.py
  67. +2 −1 programs/ds_seq.py
  68. +1 −1 programs/ds_str_methods.py
  69. +3 −3 programs/ds_using_dict.py
  70. +4 −4 programs/ds_using_tuple.py
  71. +2 −2 programs/exceptions_finally.py
  72. +4 −2 programs/exceptions_raise.py
  73. +4 −4 programs/function1.py
  74. +3 −3 programs/function_docstring.py
  75. +2 −2 programs/function_docstring.txt
  76. +2 −2 programs/function_param.py
  77. +4 −4 programs/function_varargs.py
  78. +7 −7 programs/if.py
  79. +7 −7 programs/io_pickle.py
  80. +10 −10 programs/io_using_file.py
  81. +2 −2 programs/more_decorator.py
  82. +2 −2 programs/oop_init.py
  83. +2 −2 programs/oop_method.py
  84. +11 −9 programs/oop_objvar.py
  85. +1 −1 programs/oop_simplestclass.py
  86. +8 −6 programs/oop_subclass.py
  87. +2 −2 programs/while.py
  88. +0 −105 revision_history.md
  89. +0 −67 stdlib.md
  90. +1 −0 styles/pdf.css
  91. +5 −0 styles/website.css
  92. +0 −8 translation_howto.md
  93. +0 −201 translations.md
  94. +0 −148 what_next.md
47 changes: 47 additions & 0 deletions .github/workflows/honkit-depoly.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Simple workflow for deploying static content to GitHub Pages
name: Deploy static content to Pages

on:
# Runs on pushes targeting the default branch
push:
branches: ["master"]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false

jobs:
# Single deploy job since we're just deploying
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build Pages
uses: FriesI23/honkit-build-page@v2
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: "_site"

deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
7 changes: 7 additions & 0 deletions 02.dedication.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# 献词

本书献给 [Kalyan Varma](http://www.kalyanvarma.net/) 以及其他许多来自 [PESIT](http://www.pes.edu/) 的先驱,是他们向我们介绍了来自 GNU/Linux 世界的开放源代码。

谨以此书纪念 [Atul Chitnis](http://www.nextbigwhat.com/atul-chitnis-obituary-297/),一位友人以及非常怀念他的人的引导者。

本书献给 [创造互联网的开拓者们](http://www.ibiblio.org/pioneers/index.html)。本书初撰于 2003 年。得益于这些先驱们对互联网上这一分享知识的土壤与环境的设想,本书得以流行至今,并对他们深表感谢。
27 changes: 27 additions & 0 deletions 03.1.preface.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# 前言

Python 可能是极少数能够同时兼顾简单与功能强大的编程语言。无论是对于新手或是行家,这一点都裨益颇深。更重要的是,采用 Python 编程充满了乐趣。本书旨在于帮助你学习这一美妙的程序语言,并向你展现如何快速且毫不费力地完成诸多事情,实际上也可说是“助你解决编程问题的抗毒血清”。

## 本书是为谁而撰

本书将以指南或教程的形式向你介绍 Python 这门编程语言。它以新手为主要目标。同时本书也对有经验的程序员有所帮助。

如果你对电脑的所有了解仅止步于如何保存文本文件的话,那本书的目标便是协助你通过本书学习 Python。如果在此之前你已经有了编程经验,你同样可以通过本书来学习 Python。

如果你已经有过编程经验,你或许会对 Python 与其它你所喜爱的编程语言间有何区别抱有兴趣——而我将会你展现许多这种区别。顺便提醒你一下,Python 将会很快成为你最喜欢的编程语言!

## 官方网站

本书英文原版的官方网站是 {{ book.officialUrl }} ,在此你可以在线阅读本书的全部内容,下载本书的最新版本,[购买本书的实体版]({{ book.buyBookUrl }}),或是向我提交反馈。

你现在阅读的这一简体中文版的刊载网站是 {{ book.sctransUrl }} ,你可以在此在线阅读本书的简体中文版,并下载最新版本。

## 值得思考的一些事情

> 构建一项软件设计有两种方式:一种是将软件设计得足够简单以至于明显找不到缺陷;另一种是软件设计得足够复杂以至于找不到明显的缺陷。
> ——查尔斯·安东尼·理查德·霍尔爵士(C. A. R. Hoare)
<!-- -->

> 在人生中取得成功,与其说靠天才与机会,不如说靠专注与毅力。
> ——C. W. Wendte
51 changes: 51 additions & 0 deletions 03.2.translator-preface.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# 译者前言

如果一位新手想要学习编程,那么 Python 一定能排在推荐清单的最前列。而如果要想学习 Python,Swaroop C H 所撰写的《A Byte of Python》一定也能排在推荐教材的靠前位置。作为一本旨在简明、易懂地传授 Python 知识的教材,这本采用知识共享协议免费分发的图书一经刊行就流行于世界各地,不仅被翻译成各种语言,还被许多大学或教育机构采用用作正式的教学教材。它在中国还有一个流传已久的名字——《简明 Python 教程》。

2005 年,沈洁元将《Byte of Python》的 1.20 版本引进中国,并完成了全本翻译,将其译名定为《简明 Python 教程》。十余年来,这一译本流行于各大网站,想必自是为无数新晋的 Python 学习者以及业已有编程经验的程序员们提供了莫大帮助。

如今这份教程的中文译本的年龄已逾 11 年,原书《Byte of Python》已有诸多改动,而 Python 亦已历经多个重大更新。最简单的情况便是,在 Python 2 更新至 Python 3 后,译本中开头的第一个程序 `print 'hello world'` 这一写法已经不再适用于 Python 3。可以料想,这个问题已对不少学习者成了他们在学习 Python 时面对的第一个困扰。

这也是促使我这个兴趣使然的编程新手开始试图重新翻译这本教程的原因。计算机技术、程序与应用开发技术的发展可能比其他任何一项技术更能贴合日新月异这样的说法,而有关 Python 由 2 至 3 的改动是否得当、应当使用哪一个版本这些议题到今天依然争执不休。即便如此,一本简明教程或许仍有其紧跟时代的必要,在所有资料都准备就绪后,才可对后来的新入门者提供更全面的帮助,产生更为有利的影响。

于是,自一个兴起而至的想法启程,今天我心怀忐忑地带来这本从头重新翻译的《简明 Python 教程》的新译本。

本译本根据《Byte of Python》原书在 [GitHub](https://github.com/swaroopch/byte-of-python) 上提供的原文件进行翻译。根据原书中提供的修订历史信息,译本遵循同样的版本号,定义为 4.0c 版。本次翻译除了正文内容外,还翻译了其他介绍章节、附录章节以及其中的读者来稿与感言。书中所附的 .py 文件及直接写入正文中的的源代码酌情翻译了注释部分。但为了保证程序源代码中的整洁与避免不必要的修改,程序案例源码中的英文语句没有翻译而保持原样。

由于沈洁元所发布的 1.20 版译本是基于 [CC BY-NC-ND 1.0](https://creativecommons.org/licenses/by-nd-nc/1.0/)(署名-非商业使用-禁止演绎,在译本发布时写作“署名-非派生作品-非商业用途”)协议进行授权与分发,因此这一重译本不能在沈的译本上进行改动或采纳其已有的更有力的表述,而只能将其列为参考。但在此依旧要向沈洁元的翻译工作表示感谢,这份开辟性的译本对本译本的翻译提供了诸多参考,在这十数年间为无数学习者起到了至关重要的帮助。新译本不敢抱持多少野心,只希望能够继承先前译本所能起到的作用——哪怕只有些许。

另外,作为同一本书不同修订版的前后译本,为使阅读过沈洁元译本的读者便于通过本书了解新增的内容,同时也为避免对同一概念的不同表达可能造成的困扰,对于本译本与沈洁元译本译法相左的一些术语或概念,会在注释中列出了沈洁元译本采用的译法,供读者参考。

有关现在这本新译本,翻译并非一蹴而就,期间磕磕绊绊也是必然。事实上现在这位新译者在刚开始翻译时仍是一名编程门外汉,仅抱着兴趣使然的心与一边翻译一边学习的浅薄想法而仓促启程。只不过在抵达终点时仍担心不已,不知是否已实现出发时的雄心壮志。因此,读者诸君在阅读本译本时如果遇到了任何表达上的疑惑,或是发现了任何翻译上的错误,还请务必与译者联系,指出个中疑惑或疏漏、错误,以便更好地改进这一译本,为后来的其他学习者提供更为有用的帮助。

在翻译过程中,译者得到了诸如 Nakagawa Kanon,Zxteloiv,Yukko 等其他不能一一列清姓名的友人帮助,是他们向我解释概念,提出更精准的译法。在面对我这一个新手时常流露出的无知与莽撞时他们所展现出的包容和耐心予我莫大鼓励,在此要对他们表示感谢。

有关对于本书内容方面的感想或谢意,你可以将其直接寄给原作者 [SwaroopC H](blog@swaroopch.com)blog@swaroopch.com)。有关译本在翻译方面存在的任何疑惑与问题,你可以通过[电子邮件](mailto:i@molun.net)i@molun.net)与译者取得联系。而受限于译者在编程方面的浅薄学识,对于本书在学习过程中产生的编程方面的疑惑,很可能不能为读者诸君提供有用的解答,这点还望见谅。

在此,预祝你的 Python 学习之路能一路畅通无阻,携坚持与毅力出发,最后满载而归。

漠伦

2017年1月2日

## 修订追记

本书在译成后得到了诸多读者的指正,以下列出对本译本的修改提出过建议的读者,并感谢他们的意见与建议。所有排名不分先后。

2017 年 1 月 3 日至 1 月 8 日,陆续进行了错字漏字的订正。依 anglum 与 slimray 的建议对《面向对象编程》一章的部分翻译作了修改,并修正了错误。经 行走的鱼2001 指正改正了《函数》一章的错误。经 lefinite 指正改正了《数据结构》一章的错误。经 Zhanyu Wang 指正改正了《模块》一章的错误。经 nonozone 与 张小西 指正改正了《基础》一章的错误。在 ivysrono 协助下改正了《函数》《模块》两章的错误。——以上修订体现在 4.01c 版中。

2017年 1 月 9 日至 2 月 16 日,陆续进行了错字漏字订正与部分译文重写。依 Haruki Kirigaya、Yuki Kiriyama、Nakagawa Kanon 指正改写了《面向对象编程》一章的部分译文。经 Cloud 指正改正了《运算符与表达式》一章的错误。经 yurikaka 指正改正了《前言》《基础》《运算符与表达式》几章的错误。经 aristotll 指正改正了《标准库》一章的错误。经 Tian Zhao 指正改正了《解决问题》一章的错误。——以上修订体现在 4.02c 版中。

2017 年 3 月 19 日,进行了错字漏字订正。依 Tian Zhao 指正,改正了《解决问题》一章的错误。依 yangyangwithgnu 指正修改了《基础》《函数》《模块》《解决问题》《面向对象编程》《数据结构》《标准库》《迈出下一步》《FLOSS》章节的错误。追忆、Yang 同样指出了前述的部分错误。——以上修订体现在 4.03c 版中。

2017 年 5 月 1 日,进行了错字漏字订正与部分译文重写。依 Nangcr 建议修改了《控制流》一章的部分措辞。依邹鹏、Haruki Kirigaya、Yuki Kiriyama、藍星アキラ、shuven 指正与建议改写了《面向对象编程》一章的部分译文与多处翻译错误。——以上修订体现在 4.04c 版中。

2017 年 7 月 6 日,进行了错字漏字订正。在 shuizhongyueming 的帮助下修改了《运算符与表达式》《安装》《面向对象编程》章节的错误。在 Leon0824 的帮助下修改了《基础》《函数》《模块》几章的错误。依 cobeee 指正修改了《翻译》一章的错误。依 Alexander Nie 的指正调整了《函数》章节的部分内容。依 192\*\*\*\*543 指正修改了《第一步》章节的错误。依 薛景老师 指正改正了《关于 Python》章节的错误。依 genkagen 指正改正了《异常》《输入与输出》章节的错误。依 nastydt 指正改正了《面向对象编程》《运算符与表达式》一章的错误。依 wang454 指正改正了某一示例程序的错误。——以上修订体现在 4.05c 版中。

2017 年 7 月 28 日,进行了错字漏字订正。依 David Wang 的指正改正了《更多》《迈出下一步》章节的错误。依 薛景老师 指正改成了《第一步》《基础》《运算符与表达式》《控制流》章节的错误。依 Lulu Zeng 指正修改了《面向对象编程》章节的错误。依 LazyWolf Lin 指正与建议修改了《控制流》《函数》章节的错误与措辞。依 Kuno Kuno 指正修改了《面向对象编程》章节的错误。依 Cobeee 指正修改了《本书由来》章节的错误。本次修订得到了 Haruki Kirigaya 的协助,他参与修改了部分上述提到的错误,并指出了其它错误,具体章节包括《第一步》《基础》《运算符与表达式》《控制流》《函数》《解决问题》《面向对象编程》《异常》,在此深表感谢。——以上修订体现在 4.06c 版中。

2017 年 11 月 1 日,对错字漏字以及误译错译进行了集中修订。依 Lyfeway 指正修改了《数据结构》《面向对象编程》一章的错误。依单行道指正修改了《附录:本书由来》一章的错误。依 Starnight Cyber 指正修改了《基础》一章的错误。依chchuj 指正修改了《面向对象编程》一章的错误。依 YangtseSu 指正修改了《模块》一章的错误。依小陈指正改正了《数据结构》一章的错误。依夜雨指正改正了《函数》一章的错误。在本次修订过程中,来自 Little Train Branch 群组的朋友 Haruka、Haruki Kirigaya、Yuki Kiriyama、藍星アキラ 检查了修订草稿,并对多处修订方案提出了具体的建议,同时还指出了先前尚未发现的错误,在此向他们表示感谢。——以上修订体现在 4.07c 版中。

2018 年 2 月 4 日,对错字漏字与错译误译进行了集中修订。依颜、urzeye 指正改正了《基础》一章的错误。依 Cobeee 指正修改了《基础》《控制流》《译者前言》章节的错误,对误记了他的名字深表歉意。依 Shihaotian 的建议调整了《函数》一章中一个示例程序的输出内容。依 Xiaolei Wang 指正改正了《基础》一章的错误。依 ddtyjmyjm 指正改正了《异常》一章的错误。依 whxaing 指正改正了《函数》一章的错误。依 David Jiang 指正改正了《安装》《基础》《运算符与表达式》《模块》《数据结构》《输入与输出》《迈出下一步》《附录:修订历史》章节的错误。依 gooyie 指正改正了《运算符与标表达式》章节的错误,Haruka、Haruki Kirigaya、Yuki Kiriyama、藍星アキラ 参与了有关本修正的讨论,并提供了相关建议。——以上修订体现在 4.08c 版中。

同时,由于域名配置问题,从 4.08c 版开始,本书存放域名由 bop.molun.net 迁移至 bop.mol.uno。原域名理论上依旧有效。
Loading