Python 有什么与众不同? 很多很多. 首先要指出 Python 有很多我们熟悉的东西, 类似于所有其它通用高级编程语言, Python 同样有 类、方法、语句、表达式、函数、操作符和模块等,Python 还有一些特别的东西,下面开始学习记录。

简介?

有这么一个需求, 我需要在 PC、MAC、Android、IOS 不列举了,总之就是我需要一个能够跨平台部署的东西,没错 用 Python 就对了(别的 JavaWeb、RN 什么的这里不提),据说还能用 Python 爬些数据,重点是速度快,下面我们开始 Python 的学习。

开始 Python 环境搭建

1. 安装 Python 3

你的计算机可能已经安装了某个版本的 Python,Mac OS X 会预装 Python 2,Linux 的大多数版本也是如此(也有可能是 Pyhon 3),但 Windows 不同,他没有内置任何版本,下面来检查计算机内是否内置有任何 Python 版本:
如果是 Mac OS X 或者 Linux 可以键入
1
python -v
如果是 Windows 则键入
1
2
3
4
5
// path 是安装路径
{path}/python.exe -v

// 一般 Python 默认路径是
c://Python31/python.exe -v
或者你的操作系统没有安装任何的 Python 版本, 可以在 官网 针对自己的操作系统下载对应版本的 Python。

MAC 版的 Python V3.6.3 的下载地址

安装 Python 3 完成,会有一个 IDLE ( 虽然我用 Item 2)这是 Python 的集成开发环境, 尽管简单,但极其有用。IDLE 包括一个能够利用颜色突出显示语法的编辑器、一个调试工具、Python Shell, 以及一个完整的 Python 3 在线文档集。

2. 使用 IDLE 来包住学习 Python

IDLE 提供一个完备的代码编辑器,允许你在这个编辑其中编写代码,Python Shell 可以在其中实验运行代码。总的来说 IDLE 的 shell 是真的强势棒棒哒,因为利用它可以在编写的同时运行 Python 代码。
第一次启动 IDLE 的时候,会显示 “三个大于号” 的提示符(>>>),可以再这里输入代码。shell 得到你的代码语句后会立即执行,并在屏幕显示生成结果。
IDLE 知道所有 Python 语法,它会提供 “完成提示” (当你使用一个内置函数(如 print())时,会弹出这种 “完成提示”)。Python 的码农通常把内置函数称为 BIF (built-in function)。print() BIF 的作用是把消息显示到标准输出(就是屏幕)。
IDLE 使用区分颜色的语法来突出限时代吗。默认的,内置函数都是紫色,字符串是绿色,Python 语言的关键字( 如:if )就是橙色。生成的所有结果显示为蓝色。如果你不喜欢这些颜色选择,只需要调整 IDLE 的首选项就可以很容易的改变颜色选择。
另外,IDLE 也很清楚 Python 的缩进语法( Python 要求代码块缩进 )。刚开始使用 Python 的时候,可能会很难适应这点,但是 IDLE 可以减轻你的负担,他会根据需要自动缩进。

3. 有效的使用 IDLE

IDLE 提供了大量特性,不过只需要了解其中一部分就可以很好的使用 IDLE。

TAB 完成

先键入一些代码,然后按下 TAB 键,IDLE 会根据一些建议,帮你完成这个语句。

回退代码语句

按下 Alt + P,可以回退到 IDLE 中之前输入的代码语句。或者按下 Alt + N 可以移到下一个代码语句。可以编辑之前输入的任何语句,甚至是跨多行的代码语句。

编辑回退的代码

一旦回退代码语句, 还可以进行编辑,并使用箭头键切换语句。可以编辑之前输入的任何语句,甚至是跨多行的代码语句。

调整 IDLE 的首选项

IDLE 的首选项对话框允许你私人定制 IDLE 的默认行为。有四个设置标签页可以调整,可以控制字体和 TAB 行为,改变突出显示语法所用的颜色,调整某些按键的组合行为,海军可以改变 IDLE 的启动设置。所以,如果你确实喜欢鲜艳的骚粉红色字符串,IDLE 会给你这个权利,可以改变 diamante 在屏幕上如何提示。

Pyhton 之列表学习

任何值得招收创建的程序都必然会处理数据,有些时候,数据很简单也很直接 —— 很容易处理。但还有些情况下,所要处理的数据不论从结构还是含义上讲都很复杂,这就要求你花些功夫把它完全搞清楚,另外编写代码来处理这些数据更是需要花些心思。
为了降低复杂性,通常可以把数据组织为列表:可以有顾客列表、朋友鞋标、购物清单和待办事项清单等。由于用列表组织数据如此常见,Python 中可以很容易地利用代码创建和处理列表。

01. 创建简单的 Python 列表

从简单的数据开始下手,例如:我要购买一台新的牛逼的台式电脑,我们会有以下的数据列表。

CPU: i7 8700K ¥3199
VGA: 1080Ti ¥7200
SIMM: 16G 3200 ¥2100
MAINBOARD: Z370 ¥3200
total: ¥15699

这就是我们的数据,什么内存条贵了?我们不讨论这个,回到正题,接下来我们从这配置清单列表开始入手,在此基础上逐步的深入;

为了把人可读的列表转为 Python 可读的列表,需要遵循以下条件:

  1. 在数据两边加 “” 双引号,将各个配件转换为字符串;
  2. 用逗号将列表项余下一项分隔开来;
  3. 在列表的两边加上开始和结束中括号;
  4. 使用 = 赋值操作符将这个列表赋值到一个标识符,也就是变量;
  5. 1
    2
    3
    4
    mountings = [
    "i7 8700k", "1080TI",
    "16G 3200", "Z370"
    ]

    完全可以把创建列表的代码放在一行上(当然,前提是假设你有足够的空间,全部都能放在一行上放下,我那是老码农为了简洁看起来舒服的写法):

    1
    mountings = ["i7 8700k", "1080TI", "16G 3200", "Z370"]
    疑惑了吧,是不是感觉少了点东西,没错就是变量类型,Python 不需要知道变量类型,像 Kotlin 都需要个 var 来标识,Python 就是这么的任性,不需要知道声明是什么类型的变量,”Python 是世界上最好最简单的语言!“( 虽然我并不赞同这样的做法,感觉很突兀 )

    02. 列表就像是数组

    在 Python 中创建一个列表时,解析器会在内存中创建一个类似数组的数据结构来存储数据,列表中的每个数据项都有一个与之关联的数值偏移量,数据项是以堆的形式存放数据,自下而上先进后出的概念形成一个堆栈。类似于其它编程语言中的数组技术,堆栈中的第一个数据是从 0 开始的

    03. 使用中括号记法访问列表数据

    1
    print(mountings[0])
    应该看出来了 print 是打印用的,嗯,和别的编程语言一样数组使用中括号是可以获取到数据的

    打开 IDEL 试试手:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    >>> 
    mountings = [
    "i7 8700k", "1080TI",
    "16G 3200", "Z370"
    ]
    >>> print(mountings[0])
    i7 8700k
    >>> print(mountings[1])
    1080TI
    >>> print(mountings[2])
    16G 3200
    >>> print(mountings[3])
    Z370
    >>> print(mountings[4])
    Traceback (most recent call last):
    File "<pyshell#6>", line 1, in <module>
    print(mountings[4])
    IndexError: list index out of range
    >>>
    编码体验还是阔以滴,比较棒,相比其它编程体验来讲是全新的,下面有故意报错,并且也提示了 list index out of range

    Pythin 中的列表看起来像极了数组,不过还不只有这些,列表是完备的 Python 集合对象,也就是说,列表通过列表方法的形式提供了一些现成的功能。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    >>> mountings = [
    "i7 8700k", "1080TI",
    "16G 3200", "Z370"
    ]
    >>> print(mountings[0])
    i7 8700k
    >>> print(mountings[1])
    1080TI
    >>> print(mountings[2])
    16G 3200
    >>> print(mountings[3])
    Z370
    >>> print(mountings[4])
    Traceback (most recent call last):
    File "<pyshell#21>", line 1, in <module>
    print(mountings[4])
    IndexError: list index out of range
    >>> mountings.append("DELL");
    >>> print(mountings[4])
    DELL
    >>> print(mountings)
    ['i7 8700k', '1080TI', '16G 3200', 'Z370', 'DELL']
    >>> mountings.pop()
    'DELL'
    >>> print(mountings)
    ['i7 8700k', '1080TI', '16G 3200', 'Z370']
    >>> mountings.extend([
    "DELL", "USCORSAIR"
    ])
    >>> print(mountings)
    ['i7 8700k', '1080TI', '16G 3200', 'Z370', 'DELL', 'USCORSAIR']
    >>> mountings.remove("USCORSAIR")
    >>> print(mountings)
    ['i7 8700k', '1080TI', '16G 3200', 'Z370', 'DELL']
    >>> mountings.insert(4, "USCORSAIR")
    >>> print(mountings)
    ['i7 8700k', '1080TI', '16G 3200', 'Z370', 'USCORSAIR', 'DELL']
    无须描述了吧,这个列表操作的各种插入、各种查询、各种删除操作,对了,Python 列表是一个高层集合,支持混合类型,比如你在数组里面插入了字符串,你还可以插入整形,没错,很奇妙吧,去试试吧。

    04. 处理列表数据

    来点好玩的,比如打印一堆数据,想到了什么,没错,循环打印,目前有两种方法
    1. for 循环

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      >>> mountings = [
      "i7 8700k", "1080TI",
      "16G 3200", "Z370"
      ]

      >>> // each_flick 就是目标标识符
      >>> // in 将目标标识符与列表分隔开来
      >>> // : 冒号标识列表处理 code 开始
      >>> for each_flick in mountings:
      >>> print(each_flick)
    2. while 循环

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      >>> mountings = [
      "i7 8700k", "1080TI",
      "16G 3200", "Z370"
      ]

      >>> count = 0
      >>> // count 用来自增到 < mountings 的长度位置 while 停止
      >>> while count < len(mountings)
      >>> count = count + 1
      >>> print(mountings[count])

      05. 在列表中存储列表、查找列表、处理复杂数据、处理多层嵌套列表

      下面来一个更有意思的玩意儿 list 嵌套 list
      1
      2
      3
      4
      5
      6
      >>> mountings = [
      "i7 8700k", "1080TI",
      "16G 3200", "Z370", ["logitech", ["HHKB"]]
      ]
      >>> print(mountings[4][0][0])
      HHKB