USF MSDS501 计算数据科学中文讲义 1.2 Python 工具的初次尝试

栏目: Python · 发布时间: 5年前

内容简介:启动上面的命令行是一个非常低级的接口,用于与计算机的操作系统进行通信。您可以将终端视为诊断计算机,机械师可以将其插入汽车中,来获取控制权。仪表板类似于我们大多数时候使用的窗口图形界面。成为一名程序员就像成为一名机械师;有时你需要更强大但更复杂的工具来操作机器。

加载命令行应用

启动 Terminal.app (Mac)或任何 bash 终端shell ,它是 UNIX 风格的 命令行提示符 程序。你应该看到一个闪烁的光标和一个 $ 提示符:

$

上面的 $ 符号只是提示,终端正在等待您输入内容。执行命令后,您将再次看到 $ 提示符。

命令行是一个非常低级的接口,用于与计算机的操作系统进行通信。您可以将终端视为诊断计算机,机械师可以将其插入汽车中,来获取控制权。仪表板类似于我们大多数时候使用的窗口图形界面。成为一名 程序员 就像成为一名机械师;有时你需要更强大但更复杂的 工具 来操作机器。

你应该或多或少总是运行一个命令行 shell,以防你需要做一些低级别的事情。机械师在他或她开始工作时所做的第一件事,就是连接诊断计算机。你也应该这样。

命令行实际上是一个完整的编程语言,包含循环和所有内容,但大多数时候我们只是执行命令。命令具有参数,就像编程语言中的函数调用具有参数一样。以下是如何在命令行打招呼:

$ echo "hello"
hello
$

通过按返回键终止命令。

echo 命令类似于 Python 代码中的 print 命令。

执行该命令后,提示符将返回,指示您可以键入另一个命令。

我们可以做很多事情; 这是另一个:

$ date
Wed Jul 12 14:18:51 PDT 2017

我们可以将一个参数传递给命令(类似 Python 中的函数调用):

$ date "+%Y-%m-%d"
2018-07-08

这是一个很酷的例子,来自命令行的循环检查所有 .md 文件(你不需要在实验中运行这个文件;我只是在这里展示):

$ for f in *.md; do echo $f; done
aws.md
bash-intro.md
combinations.md
complexity.md
computation.md
data-in-memory.md
data.md
files.md
git.md
operations.md
planning.md
programming.md
reading-code.md
sqrt.md

环境健全性检查

在命令行中,键入以下命令以验证您是否可以访问 python3

$ which python3
/Users/parrt/anaconda3/bin/python3

或者,更好的是,确保默认的 Python 是版本 3:

$ which python
/Users/parrt/anaconda3/bin/python

Python 程序应该在 Anaconda bin (二进制)目录中,该目录包含所有二进制可执行文件。如果你没有在 which 命令的输出中看到 anaconda,你需要查看 Anaconda 的文档,并找出你没有运行适当的 Python 的原因。(很可能你的 PATH 环境变量有问题。)现在可以使用任何 3.X 版本的 Python 运行了。

接下来,运行该程序并确保您有最新版本如 3.6.5:

$ python
Python 3.6.5 | packaged by conda-forge | (default, Mar 30 2018, 00:00:55) 
[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

接下来尝试导入一个库:

$ python
Python 3.6.5 | packaged by conda-forge | (default, Mar 30 2018, 00:00:55) 
[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas as pd
>>>

你不应该得到错误。

另请参阅我的书 机器学习机制 中的 计算机环境健全性检查

交互式 Python

现在让我们跳转到交互式 Python shell。简单来说,它与控制计算机的 bash 命令行 shell 相同。两者都是编程语言;他们只是有不同的专长。当我们从 bash shell 跳到 Python 的 shell 时,它就像是从法国跳到德国边境。我们不得不停止说法语并开始讲德语。(或者,如果你是美国人,请继续说英语,因为我们很懒,不懂任何外语。哈哈)当你退出 Python 解释器时,你会回到 bash 世界,就像你从德国到法国。

要进入 Python 世界,请从 bash $ 提示符输入 python ,就像我们在上一节中所做的那样。您应该看到它正在使用 Anaconda 版本。 如果没有,这意味着您正在使用系统上的默认 Python。

现在,从 Python 提示符 >>> (我们不再使用 bash ),键入 500 + 1 后跟换行符。你应该看到这样的东西:

$ python
Python 3.6.5 |Anaconda, Inc.| (default, Apr 26 2018, 08:42:37) 
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 500+1
501
>>>

Python 已经求值了表达式并将结果打印回屏幕。好像我们使用了 print 函数调用,这给了我们相同的结果:

>>> print(500+1)
501

Python 交互式 shell 立即打印表达式值,但在将程序作为脚本运行时(即不是交互式)则不是这种情况。

要退出交互式 shell 并返回命令行(终端程序),请键入 quit() (或 ctrl-D )并按下回车:

>>> quit()
$

$ 提示符表示您回到了 bash 命令行。 您不能再键入 python 代码。

脚本化 Python

访问磁盘上合适的目录(文件夹),或创建一个,例如 /Users/YOURID/msan501/inclass 。( 不要在任何目录或文件名中使用空格......永远不要! )现在在该目录中创建一个名为 hello.py 的**文本文件,其中只包含一行:

500+1

使用您选择的编辑器,虽然 nano 是一个很好的编辑器,因为当我们进行云计算时,您将能够在远程服务器上使用它。 Sublime 和 TextEdit.app 也有效。

这个“代码”正是您在交互式 Python shell 中首先输入的内容。 将文件保存在 inclass 目录或任何调用目录中。

一旦使用编辑器将 Python 文件写入磁盘,您应该能够使用命令行中的 cd (更改目录)跳转到该目录:

$ cd /Users/YOURID/msan501/inclass

使用 ls 获取目录列表:

$ ls
hello.py

通过在命令行键入以下内容,验证是否已正确创建 Python 脚本:

$ cat hello.py
500+1
$

以下是最常见错误的解决方案:

  1. 不要将 .txt 放在文件名的末尾;它必须是 .py
  2. 不要使用 MS Word 或任何其他文字处理器;你认为它是文本,但事实并非如此。有很多文本编辑器,包括 Mac 的 TextEdit.app 。只需确保保存为纯文本而不是“富文本”。还有很多文本编辑器,如 SublimeTextMate 。(如果你真的很硬核,你将学习 viemacs ,你会看到我在课堂上使用它。)你也可以在命令行中使用 nano ,直接在命令行窗口中进行编辑。

现在,我们将运行该程序/脚本:

$ python hello.py
$

我们没有任何输出。这是一个至关重要的区别。交互式 Python shell 会立即打印表达式值,因为它是交互式的。当您从命令行运行文件时,它假定您希望像脚本一样,以批处理模式执行代码。这就是为什么我们没有 print 语句就得不到任何输出。

现在编辑该文件并将其更改为:

print(500+1)

保存文件并重新运行。 现在您应该看到:

$ python hello.py 
501
$

Jupyter 笔记本(通过 Jupyter Lab)

现在,除了使用基于 Jupyter Lab 浏览器的环境之外,我们将做同样的事情。 (请参阅 正在编写的 ML 书 中的 您的机器学习开发环境 来了解更多信息。)

从命令行启动 Jupyter:

$ jupyter lab
I 11:27:00.606 LabApp] [jupyter_nbextensions_configurator] enabled 0.2.8
[I 11:27:00.613 LabApp] JupyterLab beta preview extension loaded from /Users/parrt/anaconda3/lib/python3.6/site-packages/jupyterlab
[I 11:27:00.613 LabApp] JupyterLab application directory is /Users/parrt/anaconda3/share/jupyter/lab
[W 11:27:00.616 LabApp] JupyterLab server extension not enabled, manually loading...
...

这将启动一个程序,在您的浏览器中启动一个选项卡:

<img src=" https://user-gold-cdn.xitu.io... ;h=1000&f=png&s=19693" width="60%">

单击 Notebook 类别下的 Python 3 图标,可为您创建一个新的笔记本窗口:

<img src=" https://user-gold-cdn.xitu.io... ;h=388&f=png&s=14891" width="80%">

In [] 旁边的第一个单元格中键入 500 + 1 。您应该看到在它下面的 Out 部分生成的输出 501。按 control-enter ,或工具栏中的右三角形来执行该单元格。

这是一个交互式环境,所以你可以返回去编辑 500 + 1 ,比如说 print(500 + 1) 。 这样做,然后再次点击 control-enter 来运行。 你应该得到相同的输出。

您应该能够非常快速地测试 Python 小程序或代码段。重复这些过程,直到它们成为第二本能。


以上所述就是小编给大家介绍的《USF MSDS501 计算数据科学中文讲义 1.2 Python 工具的初次尝试》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Google御用網頁語言Node.js

Google御用網頁語言Node.js

郭家寶 / 佳魁資訊 / 2013-4-26 / NT 490

這是一本 Node.js 的入門教學,寫給想要學習 Node.js,但沒有任何系統的經驗的開發者。如果你聽說過 Node.js,並被它許多神奇的特性吸引,本書就是為你準備的。 透過閱讀本書,你可以對 Node.js 有全面的認識,學會如何用 Node.js 程式設計,了解事件驅動、非同步式 I/O 的程式設計模式,同時還可以了解一些使用JavaScript 進行函數式程式設計的方法。 ......一起来看看 《Google御用網頁語言Node.js》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换