Python 持续学习 - 初识 Python
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 | // path 是安装路径 |
或者你的操作系统没有安装任何的 Python 版本, 可以在 官网 针对自己的操作系统下载对应版本的 Python。
安装 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 | mountings = [ |
完全可以把创建列表的代码放在一行上(当然,前提是假设你有足够的空间,全部都能放在一行上放下,我那是老码农为了简洁看起来舒服的写法):
1 | mountings = ["i7 8700k", "1080TI", "16G 3200", "Z370"] |
疑惑了吧,是不是感觉少了点东西,没错就是变量类型,Python 不需要知道变量类型,像 Kotlin 都需要个 var 来标识,Python 就是这么的任性,不需要知道声明是什么类型的变量,”Python 是世界上最好最简单的语言!“( 虽然我并不赞同这样的做法,感觉很突兀 )
02. 列表就像是数组
在 Python 中创建一个列表时,解析器会在内存中创建一个类似数组的数据结构来存储数据,列表中的每个数据项都有一个与之关联的数值偏移量,数据项是以堆的形式存放数据,自下而上先进后出的概念形成一个堆栈。类似于其它编程语言中的数组技术,堆栈中的第一个数据是从 0 开始的
Z370 | 3 |
16G 3200 | 2 |
1080TI | 1 |
i7 8700K | 0 |
03. 使用中括号记法访问列表数据
1 | print(mountings[0]) |
应该看出来了 print 是打印用的,嗯,和别的编程语言一样数组使用中括号是可以获取到数据的
打开 IDEL 试试手:
1 |
|
编码体验还是阔以滴,比较棒,相比其它编程体验来讲是全新的,下面有故意报错,并且也提示了 list index out of range
Pythin 中的列表看起来像极了数组,不过还不只有这些,列表是完备的 Python 集合对象,也就是说,列表通过列表方法的形式提供了一些现成的功能。
1 | mountings = [ |
无须描述了吧,这个列表操作的各种插入、各种查询、各种删除操作,对了,Python 列表是一个高层集合,支持混合类型,比如你在数组里面插入了字符串,你还可以插入整形,没错,很奇妙吧,去试试吧。
04. 处理列表数据
来点好玩的,比如打印一堆数据,想到了什么,没错,循环打印,目前有两种方法
for 循环
1
2
3
4
5
6
7
8
9
10mountings = [
"i7 8700k", "1080TI",
"16G 3200", "Z370"
]
// each_flick 就是目标标识符
in 将目标标识符与列表分隔开来 //
// : 冒号标识列表处理 code 开始
for each_flick in mountings:
print(each_flick)while 循环
1
2
3
4
5
6
7
8
9
10mountings = [
"i7 8700k", "1080TI",
"16G 3200", "Z370"
]
0 count =
while 停止 // count 用来自增到 < mountings 的长度位置
while count < len(mountings)
1 count = count +
print(mountings[count])
05. 在列表中存储列表、查找列表、处理复杂数据、处理多层嵌套列表
下面来一个更有意思的玩意儿 list 嵌套 list
1 | mountings = [ |
看出来了吧,很有意思,可以多次的嵌套下去,还是和上条一样打印全部如果只是 for 打印的话打印到 list 的时候会把 list 给打印出来而不会把 list 的元素打印出来
1 | mountings = [ |
总的来说就是 mountings 有 3层 list 而 for 循环打印出了第一层,如还不明白,可以去试试写 Java 取 Json 数据那可比这个嵌套有意思。
那么有什么解决方案呢,没错多次 for 循环,只需要判断下个打印对象是否是 list 就行了
1 | mountings = [ |
isinstance(判断对象, 类型) 达到条件即可为 true 然后继续 for 循环即可
1 | for mounting in mountings: |
再多嵌套几层的话,还得继续编写 for if 是不是觉得很蠢,咱们继续看下面
PS: 在 Python 或 IDEA shell 中:码入 dir(_builtins_)
可以看到 Python 提供的内置方法列表,查看某个 BIF 的作用,如 input,可以在 shell 码入 help(input) 就可以获得 input 的功能描述,目前为止 Python 大概提供了有 70 多个 BIF;
06. 不要重复;应当创建一个函数
前面讲到如果 list 结构够复杂,我们的嵌套也就多,作为一个牛逼逼的程序员怎么能干这种蠢事呢,那么怎么解决,方法有很多比如递归
创建函数的方法
1 | def 函数名 (参数): |
ps : 参数可选冒号表示函数代码开始,规范学习一定要注意缩进
1 | def print_lol (the_list): |