Fork me on GitHub

Python入门笔记(一)

以前虽然用 python 写过一些小东西,但是一直都没有系统的看过 python 的语法。这里想开一个系列笔记,记录一下我比较在意的一些知识点,比较基础,但是也比较跳跃。

列表 & 序列

有两种方式构造列表:

1
2
list1 = []
list2 = list()

跟 Java 中的集合不同,python 中向列表添加元素的方式是 append,并不是 add,有趣的是 Java 中的字符构造 StringBuilder 也是通过 append 方法向 StringBuilder 中追加字符。接下来记一下 python 中关于序列的一些操作,个人感觉是非常方便的,比 Java 要方便的多。

python 可以通过索引来操作序列中的元素,接下来就通过代码感受一下吧:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# -*- coding: utf-8 -*-

list1 = []

for i in range(0, 10):
list1.append(i)

print('list1=', list1)

print(list1[0])
print(list1[-1])

// 输出:
list1= [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
0
9

这里通过 0 索引来访问第一个元素,中规中矩,没啥,通过 -1 来访问最后一个元素这就比较骚了。还记得 Java 里是怎么集合的最后一个元素的么?list.get(list.size() - 1),事实上我刚开始写 python 时,我也是这么去拿序列的最后一个元素的:list[len(list) - 1]。当然了,这也许会让你觉得也不过如此,虽然用 -1 去访问最后一个元素,但用另外一种方式也不见得有多不方便。那么继续,还是用上面创建的列表:

1
2
3
4
5
6
7
8
9
10
print(list1[0:3])
print(list1[-2:])
print(list1[::3])
print(list1[::-1])

// 输出
[0, 1, 2]
[8, 9]
[0, 3, 6, 9]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

第一行,通过索引拿到前三个元素。第二行,通过-2索引访问倒数第二个到最后一个元素。第三行,访问所有元素,步长为3,也就是每隔3取一次元素。第四行倒序访问所有元素。如果你刷过数组相关的算法题,你应该能明白计算索引取相应的元素是最令人头疼的一件事,而 python 则大大简化了这件事。关于列表只想介绍到这,元组是不可变序列,有些类似于 Java 中用 final 修饰的变量。

循环

和 Java 一样,python 也有用于遍历列表的 for 循环:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
for item in list1:
print(item)

// 输出
0
1
2
3
4
5
6
7
8
9

有的时候可能需要索引,不仅仅是遍历:

1
2
3
4
5
6
7
8
9
for i in range(0, 5):
print('item=', list1[i], ' index=', i)

// 输出
item= 0 index= 0
item= 1 index= 1
item= 2 index= 2
item= 3 index= 3
item= 4 index= 4

while 循环和 Java 中的类似:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
x = 1
while x < len(list1):
print(list1[x])
x += 1

// 输出
1
2
3
4
5
6
7
8
9

python 中的条件判断语句 if - elif,与我平时使用的语言都有些不一样,第一次使用的时候写出 else if 发现还错了,当时还奇怪难道 python 没有 else if。。。这一次暂时就记到这里。