原文

原文竟然包含波兰语,看不懂的只能Google翻译

文章目录

  • [1.安装Python](http://python.astrotech.io/about/install.html)
    • 1.1 系统要求
    • 1.2 环境设置
      • 1.2.1 Windows
      • 1.2.2 macOS
      • 1.2.3 Linux
  • [2.书中涉及内容](http://python.astrotech.io/about/references.html)
    • 2.1 鸢尾数据集
      • 2.1.1 鸢尾物种
      • 2.1.2 鸢尾数据集
      • 2.1.3 鸢尾网格
    • 2.2 Ehlo World!
    • 2.3 地址
    • 2.4 日期和时区
    • 2.5 主要角色
      • 2.5.1 宇航员
        • 2.5.1.1 Pan Twardowski
        • 2.5.1.2 José Jiménez
        • 2.5.1.3 Иван Иванович
        • 2.5.1.4 Melissa Lewis
        • 2.5.1.5 Ryan Stone
        • 2.5.1.6 Mark Watney
        • 2.5.1.7 Matt Kowalski
        • 2.5.1.8 Alex Vogel
      • 2.5.2 船员
        • 2.5.2.1 National Geographic’s Mars
        • 2.5.2.2 Martian Movie
  • [3.关于Python语言](http://python.astrotech.io/about/language.html)
    • 3.1 Python是什么?
      • 3.1.1 Python作为一门语言
      • 3.1.2 Python作为一个生态
    • 3.2 选哪个版本?
      • 3.2.1 Python3新变化(对比Python2)
      • 3.2.2 为什么不用Python2?
    • 3.3 脚本
      • 3.3.1 文件类型和扩展名
      • 3.3.2 简单示例程序
      • 3.3.3 声明解释器(Interpreter)
      • 3.3.4 系统环境变量`PATH`
      • 3.3.5 系统环境变量`PYTHON_PATH`
    • 3.4 Python控制台(REPL)
    • 3.5 Jupyter
  • [4 集成开发环境IDE](http://python.astrotech.io/about/ide.html)
    • 4.1 IDE是什么?
    • 4.2 如何选择?
    • 4.3 哪一个是最好的?
      • 4.3.1 开源
      • 4.3.2 收费
    • 4.4 PyCharm
      • 4.4.1 快捷键
    • 4.5 作业
      • 4.5.1 使用纯Python创建项目
      • 4.5.2 在GIT中创建项目
      • 4.5.3 检查Python版本
      • 4.5.5 了解你的IDE
      • 4.5.6 拼写检查
  • [5 语法](http://python.astrotech.io/about/syntax.html)
    • 5.1 缩进代替括号
    • 5.2 行结束
    • 5.3 注释
      • 5.3.1 行注释
      • 5.3.2 行内注释
      • 5.3.3 多行注释
      • 5.3.4 Docstring
      • 5.3.5 注释所有代码
    • 5.4 变量和常量
      • 5.4.1 变量声明
      • 5.4.2 常量声明
      • 5.4.3 变量与常量比较
    • 5.5 `print()`
    • 5.6 作业
      • 5.6.1 初见Python

1.安装Python

1.1 系统要求

  • 你可以使用你的电脑
  • 最新Python支持的任何操作系统
  • 安装最新的官方Python版本(https://www.python.org/downloads/)
  • 安装最新的PyCharm Professional EAP(https://www.jetbrains.com/pycharm/nextversion/)
  • GIT相关:
    • 安装GIT(https://git-scm.com/download/)
    • 我在Github上创建了一个免费帐户(请记住你的登录信息)

1.2 环境设置

1.2.1 Windows

  • 保留默认选项
  • 编写PATH(重要!)
  • 使用cmd运行Python
  • 记住安装Python的目录的路径
  • 检查GIT和PyCharm的默认选项(记得与.py文件关联)
  • 使用python --version命令验证

1.2.2 macOS

  • macOS应该已经安装了Python
  • 您可以从官方网站安装最新版本的Python
  • 或者,您可以使用brew(免费包管理器)
  • 在从AppStore安装最新版本的Xcode之前,brew能够为您完成
  • 安装运行以下命令:
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  • 安装后:
$ brew install python3
  • 从terminal终端运行
  • 使用python --version命令验证

1.2.3 Linux

  • 几乎所有Linux发行版都安装了Python
  • 要安装较新版本,请使用包管理器:
    • apt-get - Debian, Ubuntu
    • yum - Suse
    • emerge - Gentoo
    • rpm - Redhat, Fedora
  • 从terminal终端运行
  • 使用python --version命令验证

2.书中涉及内容

2.1 鸢尾数据集

2.1.1 鸢尾物种

鸢尾物种有杂色鸢尾、山鸢尾、维吉尼亚鸢尾

2.1.2 鸢尾数据集

2.1.3 鸢尾网格


2.2 Ehlo World!

在编程课程中,我们总是从众所周知的“Hello World”开始。 然而,这一次,我们将从’Ehlo World’开始。这不是一个错误。 这是SMTP1服务器的欢迎语。 在本书中,您将看到几个IT笑话和旧的笑话

2.3 地址

此书中用到的地址

姓名 街道 城市 邮编 国家
Kosmodrom Bajkonur Wochod Bajkonur 101503 Kyzyłordyński Kazachstan
Johnson Space Center 2101 E NASA Pkwy Huston 77058 Texas USA
Kennedy Space Center None Cape Canaveral 32899 Floryda USA
NASA Jet Propulsion Laboratory 4800 Oak Grove Dr Pasadena 91109 California USA
NASA Armstrong Research Center 2825 E Ave P Palmdale 93550 California USA
ESA EAC Linder Hoehe Köln 51147 North Rhine-Westphalia Germany

2.4 日期和时区

此书中用到的日期

Date Time Timezone Description
1957-10-04 19:28:34 UTC Sputnik launch
1961-04-12 06:07:00 UTC Yuri Gagarnin’s launch
1969-07-21 14:56:15 UTC Apollo 11 Neil Armstrong’s first step on the Moon

2.5 主要角色

2.5.1 宇航员

2.5.1.1 Pan Twardowski

2.5.1.2 José Jiménez

  • https://www.youtube.com/watch?v=kPnaaHR9pLc
  • https://www.youtube.com/watch?v=i6ckW7uRRNw
  • https://www.youtube.com/watch?v=PVxfJYw59cM
  • https://www.youtube.com/watch?v=i6ckW7uRRNw
  • https://www.youtube.com/watch?v=PVxfJYw59cM
  • https://youtu.be/kPnaaHR9pLc?t=16

2.5.1.3 Иван Иванович

2.5.1.4 Melissa Lewis

2.5.1.5 Ryan Stone

2.5.1.6 Mark Watney

2.5.1.7 Matt Kowalski

2.5.1.8 Alex Vogel

2.5.2 船员

2.5.2.1 National Geographic’s Mars


来自National Geographic’s Mars的船员有: Robert Foucault (左上), Javier Delgado (正上), Amelie Durand (右上), Hana Seung (左下), Ben Sawyer (正下), Marta Kamen (右下)

2.5.2.2 Martian Movie


来自Martian Movie的船员有: Melissa Lewis (左上), Alex Vogel (正上), Mark Watney (右上), Chris Beck (左下), Beth Johanssen (正下), Rick Martinez (右下)

3.关于Python语言

3.1 Python是什么?


3.1.1 Python作为一门语言

  • 图灵完全的通用语言2
  • 跨平台
  • 自动内存分配和GC3的动态语言
  • 代码的可读性和简单性很重要
  • 缩进很重要
  • 一切都是对象,但你也可以编写函数

3.1.2 Python作为一个生态

  • 机器学习和数据科学中的标准语言
  • 非常好的标准系统库
  • 拥有许多开源库的巨大生态系统
  • 由非盈利Python软件基金会创建的开源软件

3.2 选哪个版本?

  • 最新的Python3

3.2.1 Python3新变化(对比Python2)

  • 所有字符串都是Unicode4
  • 标准库命名的变化
  • 在Python3中print()是函数而不是关键字
  • 新的字符串格式

3.2.2 为什么不用Python2?

  • Python2不再更新
  • Python2.7是2.x的最新版
  • 再也不会有Python2.8(PEP 404)
  • Python2.7的BUG修复只会持续到2020(PEP 372)

3.3 脚本

3.3.1 文件类型和扩展名

  • Python文件用.py作为扩展名
  • 编译好的文件在__pycache__目录下
  • Python也使用其他扩展名:
Extension Description
.pyc 编译好的源代码(字节码)
.pyd 编译好的Windows DLL文件
.pyw 编译好的Windows文件,可以用pythonw.exe执行
.pyx 用于C/C++下运行的cPythona源代码
.pyz zipapp压缩存档。 从Python3.5开始

3.3.2 简单示例程序

print('Ehlo World!')

3.3.3 声明解释器(Interpreter)

  • 用单独的脚本#!/usr/bin/env python3声明解释器
#!/usr/bin/env python3print('Ehlo World!')

3.3.4 系统环境变量PATH

  • 在安装Python时,将其可执行文件添加到系统$PATH路径中

3.3.5 系统环境变量PYTHON_PATH

  • Python会在$PYTHON_PATH路径下搜索库和模块
  • $PYTHON_PATHsys.path的基础

3.4 Python控制台(REPL)

  • Read–Eval–Print Loop:“读取-求值-输出”循环
  • 快速测试和评估代码
  • 每一行以>>>开头
  • 行以...延续
  • 运行结果在下方打印
  • 在python3 terminal终端下打开REPL
$ python3Python 3.7.0 (default, Aug 22 2018, 15:22:33)
[Clang 9.1.0 (clang-902.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.>>> print('Ehlo World!')
Ehlo World!

注意:
在文档和书籍中,你可能会找到>>>...在代码清单行的开头

if True:print(True)
else:print(False)

3.5 Jupyter

  • 开源web应用程序REPL
  • 在机器学习和数据科学领域非常流行
  • 创建和共享包含实时代码、等式、可视化和叙述性文本的文档
  • 用途包括:数据清洗与转换、数值模拟、统计建模、数据可视化、机器学习等

4 集成开发环境IDE

4.1 IDE是什么?

  • 重构
  • 语法帮助和突出显示
  • 代码提示和检查
  • VCS5支持
  • 虚拟环境支持
  • Debug6
  • 拼写检查
  • 运行代码和检查
  • 文件范围和视图
  • 数据库浏览器
  • 支持测试(doctest, unittest)
  • 跳转到异常行

4.2 如何选择?

  • 你使用什么IDE并不重要!
  • 编辑Python脚本只需要记事本或Jupiter
  • 随着项目的复杂性和文件数量的增长,IDE会非常有用
  • 一个好的IDE能帮助你重构,代码提示,调试和进行版本控制
  • PyCharm有两个付费和免费版本,免费版本对我们来说足够了
  • 一个有趣的替代方案可以是PyDev,一个Eclipse环境下的插件

4.3 哪一个是最好的?

4.3.1 开源

  1. PyCharm社区版
  2. PyDev
  3. Spyder
  4. Atom
  5. Jupyter Notebook
  6. Rodeo

4.3.2 收费

  1. PyCharm专业版
  2. Visual Studio

4.4 PyCharm

4.4.1 快捷键

快捷键 动作
Ctrl+/ 注释多行
Alt+F12 打开终端Terminal
Shift+F6 重构/重命名
Tab 缩进(可同时多行)
Shift+Tab 删除缩进(可同时多行)
Alt+1 显示文件抽屉
Ctrl+G 跳至某行
Ctrl+F 在文件中搜索
Ctrl+R 在文件中替换

4.5 作业

4.5.1 使用纯Python创建项目

  • 要写入的代码行:0行
  • 预计完成时间:2分钟
  1. 在IDE中创建项目
  2. 选择“Pure Python”(仅在Pycharm Professional中可用)
  3. 展开Project Interpreter列表并将其设置为使用“Virtualenv”
  4. 提示:确保您使用的是Python 3.7或更高版本
  5. 创建项目后,创建一个以你的姓名命名的目录
  6. 提示:本书最后将创建所有任务的解决方案

Virtualenv7

4.5.2 在GIT中创建项目

  • 要写入的代码行:0行
  • 预计完成时间:2分钟
  1. 在IDE中创建项目
  2. 使用“从VCS创建”选项(即版本控制)
  3. 提示:确保您使用的是Python 3.7或更高版本
  4. 创建.gitignore文件
  5. 输入.idea行/到文件
  6. 创建项目后,创建一个以你的姓名命名的目录
  7. 提示:本书最后将创建所有任务的解决方案

4.5.3 检查Python版本

  • 文件名:python_version.py
  • 要写入的代码行:0行
  • 预计完成时间:5分钟
  1. 创建一个名为python_version.py的脚本(脚本名称将始终输入“关于”部分)
  2. 该文件应包含以下内容:
import sysprint(sys.version)
  1. 在IDE中运行它(菜单 Run - >Run… - >脚本名称)
  2. 安装了什么Python版本?

为什么这样做

  • Python工作吗
  • Python版本是什么
  • 使用打印
  • 能够运行脚本
  • 从书中寻找任务的解决方案

4.5.5 了解你的IDE

  • 要写入的代码行:0行
  • 预计完成时间:10分钟
  1. 如何在IDE中执行以下操作:

    • Run运行…
    • 在Console中运行
    • Debug调试…
    • Python Console
    • Terminal
    • 全屏
    • 无干扰模式
    • 格式化代码
    • 作用域
  2. 每个选项的快捷键是什么?
  3. Run和Debug的不同之处?
  4. Python Console和Terminal有什么区别
  5. Free Mode与Full Screen的区别
  6. 设置作用域来隐藏Virtualenv中的目录

4.5.6 拼写检查

  • 要写入的代码行:0行
  • 预计完成时间:3分钟
  1. 安装’Hunspell’插件
  2. 从https://github.com/LibreOffice/dictionaries下载波兰语的.dic和.aff
  3. 配置IDE以使用此字典

为什么这样做

  • 使用IDE
  • IDE配置

5 语法

5.1 缩进代替括号

  • Python使用缩进代替括号
  • 建议使用4空格缩进,不用Tab
  • Python会抛出IndentationError异常
  • 在同一层次上缩进的代码属于一个块:
if True:print('First line of the true statement')print('Second line of the true statement')print('Third line of the true statement')
else:print('This is false')

5.2 行结束

  • 每行结束没有分号(;
  • 可以用\r\n\n:
print('Hello!\nHow are you?')
print('Hello!\r\nHow are you?')

5.3 注释

5.3.1 行注释

  • 缩进必须与块缩进处于同一级别
  • 拼凑 #、空格、注释:
# José Jiménez says hello
print('My name... José Jiménez')

5.3.2 行内注释

  • 源代码、两个空格、#、空格、注释
print('My name... José Jiménez')  # José Jiménez says hello

5.3.3 多行注释

  • 三个单引号
  • 三个双引号(更常见)
  • '''"""作用相同
"""
We choose to go to the Moon!
We choose to go to the Moon in this decade and do the other things,
not because they are easy, but because they are hard;
because that goal will serve to organize and measure the best of our energies and skills,
because that challenge is one that we are willing to accept, one we are unwilling to postpone,
and one we intend to win, and the others, too.
"""

5.3.4 Docstring

  • Docstring是一个多行注释,放在:

    • 文件/模块
    • 方法/函数
  • 可通过访问__doc__查看对象属性
  • 用于help()函数生成帮助文档
def apollo_dsky(noun, verb):"""This is the Apollo Display KeyboardIt takes noun and verb"""print(f'Program selected. Noun: {noun}, verb: {verb}')
  • 用于doctest
def add(a, b):"""Sums two numbers.>>> add(1, 2)3"""return a + b

doctest8

5.3.5 注释所有代码

  • 绝不!
  • 使用版本控制来代替,例如git blame
  • IDE有本地记录(修改记录),你可以比较文件不同

5.4 变量和常量

  • NameError发生在使用未定义变量时
  • AttributeError发生在不能赋值给变量时
  • 命名大小写敏感(区分大小写)
name = 'José Jiménez'
NAME = 'Иван Иванович'
Name = 'Pan Twardowski'

5.4.1 变量声明

  • 小写字母
name = 'José Jiménez'
  • 下划线连接
first_name = 'José'
last_name = 'Jiménez'

5.4.2 常量声明

  • 大写字母
PATH = '/etc/passwd'
  • 下划线连接
FILE_NAME = '/etc/shadow'

5.4.3 变量与常量比较

  • 命名大小写敏感(区分大小写)
name = 'José Jiménez'
NAME = 'Иван Иванович'
Name = 'Pan Twardowski'
  • Python不区分变量和常量
  • Python允许你改变常量,但这不是个好习惯(好的IDE会提示你)
NAME = 'José Jiménez'
NAME = 'Иван Иванович'

5.5 print()

  • print()在最后隐含'\n'(即打印自动换行)
  • 在屏幕上打印
print('My name... José Jiménez')
# My name... José Jiménez
  • 变量替换
name = 'José Jiménez'print(f'My name... {name}')
# My name... José Jiménez
  • 特殊字符
name = 'José Jiménez'print(f'My name...\n\t{name}')
# My name...
#     José Jiménez

注意:
更多关于打印格式

5.6 作业

5.6.1 初见Python

  • 文件名:syntax_python.py
  • 要写入的代码行:2行 + 2行注释
  • 预计完成时间:5分钟
  1. 创建Python脚本
  2. 添加解释器声明
  3. 在解释器声明底下添加程序描述的多行注释
  4. 声明变量name并将值设为你的名字
  5. 给变量name添加行内注释This is my name
  6. 打印变量
  7. print的下一行添加行注释,并显示预期输出
  8. 运行脚本

为什么这样做

  • 创建Python脚本
  • 变量声明
  • 代码注释
  • 显示变量的值

线索print()


  1. SMTP,简单邮件传输协议(Simple Message Transfer Protocol) ↩︎

  2. 图灵完全是指在可计算性理论中,编程语言或任意其他逻辑系统等可以用于通用图灵机的计算能力。 ↩︎

  3. GC,Garbage collection,垃圾回收机制。在计算机科学中是一种自动的记忆体管理机制。当一个电脑上的动态记忆体不再需要时,就应该予以释放,以让出记忆体,这种记忆体资源管理,称为垃圾回收。 ↩︎

  4. Unicode,万国码。是计算机科学领域里的一项业界标准。它对世界上大部分的文字系统进行了整理、编码,使得电脑可以用更为简单的方式来呈现和处理文字。 ↩︎

  5. Version control system,版本控制。 ↩︎

  6. Debug,调试以排除故障。 ↩︎

  7. Virtualenv,虚拟环境,用来为一个应用创建一套“隔离”的Python运行环境。 ↩︎

  8. doctest是Python标准库模块,允许根据标准Python解释器shell的输出轻松生成测试,并将其剪切和粘贴到docstring中。 ↩︎

Python3从零入门机器学习:第一章 简介相关推荐

  1. 从零入门机器学习之开宗明义:编程与数据思维

      大家好,我是herosunly.985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用.曾获得阿里云天池比赛第一名,科大讯飞比赛第三名,CCF比赛第四名.拥有多项发明专利.对机器学 ...

  2. 人工智能第一章——简介(附上有用资料和链接)

    文章目录 摘要 前言 一.人工智能及智能认识 第二阶段 第三阶段 第四阶段 第五阶段 三.小结 四.相关资料 备注 参考文献 摘要 本文会讲明白 1)什么是人工智能(AI):2)什么是智能(intel ...

  3. 从零入门机器学习之Linux系统详解

      大家好,我是herosunly.985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用.曾获得阿里云天池比赛第一名,科大讯飞比赛第三名,CCF比赛第四名.拥有多项发明专利.对机器学 ...

  4. Storm入门之第一章

    原书下载地址 译者:吴京润   编辑:方腾飞 译者注:本文翻译自<Getting Started With Storm>,本书中所有Storm相关术语都用斜体英文表示. 这些术语的字面意义 ...

  5. python 机器学习第一章

    机器学习是一门能够发掘数据价值的算法和应用,是计算机科学中最激动人心的一个领域之一. 接下来的时间,开始学习吧! python机器学习第一章 1.机器学习方法分为三类:监督学习,无监督学习,强化学习. ...

  6. C++ API 设计 06 第一章 简介

    第一章 简介 1.1 应用程序编程接口是什么? 应用程序编程接口(API)提供对问题的一个抽象,并说明客户端如何与实现这个问题的解决方案的软件组件来进行交互. 这些组件本身通常作为一个软件库发布,允许 ...

  7. ATA iSpec 2300:第一章 简介

    1-1. 目的 本规范旨在为固定翼和旋翼机飞行运行技术内容的管理.配置和交换提供一套简明的信息标准和指南.本规范侧重于以数据为中心的方法,解决飞机运营商对这些数据的当前和计划的未来运营/业务需求.本规 ...

  8. 【Aries - Unity入门】第一章 行业与引擎的了解

    目录 -------- [Aries - Unity入门] -------- 第一章 行业与引擎的了解 1.1 什么是Unity? 1.2 Unity能做什么? 1.3 什么是引擎? 1.4 游戏行业 ...

  9. 模式识别与机器学习·第一章——概论

    模式识别与机器学习·第一章--概论 开篇 模式识别 模式 识别 机器学习 研究目的 发展历史 模式识别简史 机器学习简史 系统方法 系统目标 假说的获得 系统的构成 小结 开篇 这系列博客主要用来回忆 ...

最新文章

  1. java 计算移动平均线_基于Java语言开发的个性化股票分析技术:移动平均线(MA)...
  2. 并发编程--线程池与进程池
  3. 蛙蛙推荐:几种典型的生产环境调试场景
  4. Linux / 僵尸进程、孤儿进程 产生原因、有什么危害、如何预防(解决方案)
  5. Activity has leaked window that was originally added 问题解决
  6. How to achieve conditional break point in your ABAP program
  7. 3D建模行业内幕及“钱”景
  8. The parent project must have a packaging type of POM
  9. android 简单获取实时天气数据_绘图本身很简单但是获取数据很难
  10. AndroidStudio_安卓原生开发_显示不开的时候设置TextView文字横向滚动---Android原生开发工作笔记142
  11. linux下编译upx ucl
  12. Openssl学习——x509证书函数
  13. oracle表空间配额和unlimited tablespace权限
  14. js 中日期 转换成时间戳 例如2013-08-30 转换为时间戳
  15. Python软件编程等级考试二级——20210314
  16. 安装WampServer后无法打开localhost的问题
  17. 【java】个人项目:中小学数学卷子自动生成程序
  18. AR发展简史(未完待续)
  19. html设置字体对其方式,css中通过属性( )设置字体的水平对齐方式
  20. 亚马逊关联封号的真实案例

热门文章

  1. Python:for循环语句
  2. 如何利用(微软学术)/(google学术)/google网页,聚焦最新科技文献,并获得PDF版
  3. 1.莫尔斯编码和布莱叶盲文
  4. Hi3516EV200使用UART1笔记
  5. Mac如何连接远程服务器
  6. 技术实现之http请求封装
  7. 嵌入式Linux中间件,高可用性(HA)和嵌入式管理中间件:Enea Element详解
  8. React兼容IE8
  9. 自己封装了一个带有比较日期的datepicker组件
  10. xss/reflected/default