{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 开始阅读前的一些准备" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 内容概要" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "关于 Python 编程的第一部分总计 7 章,主要内容概括为:\n", "\n", "> 1. 以布尔值为入口开始理解程序本质\n", "> 1. 了解值的分类和运算方法\n", "> 1. 简要了解流程控制的原理\n", "> 1. 简要了解函数的基本构成\n", "> 1. 相对完整地了解字符串的操作\n", "> 1. 了解各种容器的基础操作\n", "> 1. 简要了解文件的读写操作" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 阅读策略" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "首先,不要试图一下子就全部搞懂。这不仅很难,**在最初的时候也完全没必要**。\n", "\n", "因为这部分的知识结构中,充满了 “过早引用”。请在第一遍粗略完成第 1 部分中的 E1 ~ E7 之后,再去阅读《[如何从容应对 “过早引用”?](Part.1.F.deal-with-forward-references.ipynb)》。\n", "\n", "其次,这一部分,注定要**反复阅读若干遍**。\n", "\n", "在开始之前,要明确这一部分的阅读目标。\n", "\n", "这一部分的目标,不是让你读完之后就可以开始写程序;也不是让你读完之后就对编程或者 Python 编程有了完整的了解,甚至不是让你真的学会什么…… 这一部分的目标,只是让你 “**脱盲**”。\n", "\n", "不要以为脱盲是很容易的事情。你看,所有人出生的时候,都天然是 “文盲”;人们要上好多年的学,才能够真正 “脱盲” —— 仔细想想吧,小学毕业的时候,所有人就真的彻底脱盲了吗?\n", "\n", "以中文脱盲为例,学字的同时,还要学习笔划;为了学更多的字,要学拼音,要学如何使用《新华字典》……\n", "\n", "学会了一些基础字之后,要学更多的词,而后在练习了那么多造词造句之后,依然会经常用错…… 你看,脱盲,和阅读能力强之间距离很长呢;不仅如此,阅读能力强和写作能力强之间的距离更长……\n", "\n", "反复阅读这一部分的结果是:\n", "\n", "> * 你对基本概念有了一定的了解\n", "> * 你开始有能力相对轻松地阅读部分官方文档\n", "> * 你可以读懂一些简单的代码\n", "\n", "仅此而已。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 心理建设" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "当我们开始学习一项新技能的时候,我们的大脑会不由自主地紧张。可这只不过是多年之间在学校里不断受挫的积累效应 —— 学校里别的地方不一定行,可有个地方特别行:给学生制造全方位、无死角、层层递进的挫败感。\n", "\n", "可是,你要永远记住两个字:\n", "\n", "> 别怕!\n", "\n", "用四个字也行:\n", "\n", "> 啥也别怕!\n", "\n", "六个字也可以:\n", "\n", "> 没什么可怕的!\n", "\n", "我遇到最多的孱弱之语大抵是这样的:\n", "\n", "> 我一个文科生……\n", "\n", "哈哈,从某个层面望过去,其实吧,编程既不是文科也不是理科…… 它更像是 “手工课”。你越学就越清楚这个事实,它就好像是你做木工一样,学会使用一个工具,再学会使用另外一个工具,其实总共就没多少工具。然后,你更多做的是各种拼接的工作,至于能做出什么东西,最后完全靠你的想象力……\n", "\n", "十来岁的孩子都可以学会的东西,你怕什么?\n", "\n", "**别怕**,无论说给自己,还是讲给别人,都是一样的,它可能是人生中最重要的鼓励词。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 关于这一部分内容中的代码" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "所有的代码,都可以在选中代码单元格(Code Cell)之后,按快捷键 `⇧ ⏎` 或 `^ ⏎` 执行,查看结果。\n", "\n", "少量执行结果太长的代码,其输出被设置成了 “Scrolled”,是可以通过触摸板或鼠标滑轮上下滑动的。\n", "\n", "为了避免大量使用 `print()` 才能看到输出结果,在很多的代码单元格中,开头插入了以下代码:\n", "\n", "```python\n", "from IPython.core.interactiveshell import InteractiveShell\n", "InteractiveShell.ast_node_interactivity = \"all\"\n", "```\n", "你可以暂时忽略它们的意义和工作原理。注意:有时,你需要在执行第二次的时候,才能看到全部输出结果。\n", "\n", "另外,有少量代码示例,为了让读者每次执行的时候看到不同的结果,使用了随机函数,为其中的变量赋值,比如:\n", "\n", "```python\n", "import random\n", "r = random.randrange(1, 1000)\n", "```\n", "\n", "同样,你可以暂时忽略它们的意义和工作原理;只需要知道因为有它们在,所以每次执行那个单元格中的代码会有不同的结果就可以了。\n", "\n", "如果你不是直接在网站上浏览这本 “书”、或者不是在阅读印刷版,而是在本地自己搭建 Jupyterlab 环境使用,那么请参阅附录《[Jupyterlab 的安装与配置](T-appendix.jupyter-installation-and-setup.ipynb)》。\n", "\n", "> **注意**:尤其需要仔细看看《[Jupyterlab 的安装与配置](T-appendix.jupyter-installation-and-setup.ipynb)》的《关于 Jupyter lab themes》这一小节 —— 否则,阅读体验会有很大差别。\n", "\n", "另外,如果你使用的是 [nteract](https://nteract.io) 桌面版 App 浏览 `.ipynb` 文件,那么有些使用了 `input()` 函数的代码是无法在 nteract 中执行的。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[Next Page](./Part.1.E.1.entrance.ipynb)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.3" } }, "nbformat": 4, "nbformat_minor": 2 }