上一篇《Python入门(1)》我们已经简单介绍了Python的安装,和第一个Python程序“Hello World”的实现。在这一篇中,我们主要讲一下Python的基本语法和基本数据类型。
基本语法
Python 和 其他编程语言最大的区别应该就是:Python的代码块不是用大括号“{}”来控制类、函数以及其他逻辑判断的。Python 最具特色的就是用缩进来写模块。
缩进的空格符数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。缩进相同的一组语句构成一个代码块,我们称之代码组。
像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。我们将首行及后面的代码组称为一个子句(clause)。
if True: print ("True") else: print ("False")
上面这样的代码是可以正确执行的,下面的代码是会报错的!
#!/usr/bin/python # 文件名:test.py if True: print ("Answer") print ("True") else: print ("Answer") # 没有严格缩进,在执行时会报错 print ("False") # 在这一行会报IndentationError: unindent does not match any outer indentation level
所以,在Python开发中,我们不管是使用空格缩进还是Tab缩进,使用的缩进方式必须一致,因为 Python 对格式的要求非常严格。建议:在每个缩进层次使用 单个制表符 或 两个空格 或 四个空格 , 切记不能混用。
在Python中,一般以换行符作为语句的结束符,而不是分号(;)符号;如果一条语句太长,我们可以使用反斜杠(\)将一行的语句分为多行显示;如果语句中包含[], {} 或 () 括号就不需要使用多行连接符(\);如果我们想把多条语句放在一行里才需要使用分号符(;)进行分割。如下:
#一条语句分成多行 total = item_one + \ item_two + \ item_three days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'] import sys; s = 'Hello world'; sys.stdout.write(s + '\n') #一行中包含多条语句
Python中的字符串可以用单引号( ‘ )、双引号( “ )、三引号( ”’ 或 “”” ) 来表示,引号的开始与结束必须是相同类型的。其中三引号可以由多行组成,是编写多行文本的快捷语法,常用于文档字符串,在文件的特定地点,三引号也可以被当做注释。如下:
#!/usr/bin/python # -*- coding: UTF-8 -*- # 文件名:test.py ''' 这是多行注释,使用单引号。 这是多行注释,使用单引号。 这是多行注释,使用单引号。 ''' word = 'word' sentence = "这是一个句子。" paragraph = """这是一个段落。 包含了多个语句"""
Python 中的注释除了上面说的三引号,还可以使用 # 开头进行注释,如下:
#!/usr/bin/python # 文件名:test.py # 第一个注释 print ("Hello, Python!") # 第二个注释
在Python程序的开发中,函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。空行也是程序代码的一部分。
数据类型
Python有五个标准的数据类型:
- Numbers(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Dictionary(字典)
Numbers(数字类型)
Python的数字类型用于用于存储数值。它们是不可改变的数据类型,当改变数字数据类型会分配一个新的对象。当我们指定一个值时,Number 对象就会被创建,可以使用del语句删除一些对象的引用。
var1 = 1 var2 = 10 del var1
Python支持四种不同的数字类型:
- int(有符号整型)
- long(长整型[也可以代表八进制和十六进制])
- float(浮点型)
- complex(复数)
int | long | float | complex |
---|---|---|---|
10 | 51924361L | 0.0 | 3.14j |
100 | -0x19323L | 15.20 | 45.j |
-786 | 0122L | -21.9 | 9.322e-36j |
080 | 0xDEFABCECBDAECBFBAEl | 32.3e+18 | .876j |
-0490 | 535633629843L | -90. | -.6545+0J |
-0x260 | -052318172735L | -32.54e100 | 3e+26J |
0x69 | -4721885298529L | 70.2E-12 | 4.53e-7j |
- 长整形(Long)建议使用大写 L(虽然小写 l 也可以)表示,避免与数字 1 混淆。
- 复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。
String(字符串类型)
字符串或串(String)是由数字、字母、下划线组成的一串字符。它是编程语言中表示文本的数据类型。
Python的字串列表有2种取值顺序:
- 从左到右索引默认0开始的,最大范围是字符串长度少1
- 从右到左索引默认-1开始的,最大范围是字符串开头

如果我们要实现从字符串中获取一段子字符串的话,可以使用 [头下标:尾下标] 来截取相应的字符串,其中下标是从 0 开始算起,可以是正数或负数,下标可以为空表示取到头或尾。[头下标:尾下标] 获取的子字符串包含头下标的字符,但不包含尾下标的字符。
>>> s = 'abcdef' >>> s[1:5] 'bcde'
Python 字符串截取还可以接收第三个参数,参数作用是截取的步长。

Python字符串还支持两个特殊符号:加号(+)是字符串连接运算符,星号(*)是重复操作。
#!/usr/bin/python str = 'Hello World!' print str * 2 # 输出字符串两次 print str + "TEST" # 输出连接的字符串
List(列表)
List(列表) 是 Python 中使用最频繁的数据类型,用 [ ] 标识,是最通用的复合数据类型。它可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。
列表中值的切割类似上面讲到的字符串截取,也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。

Tuple(元组)
元组是另一个数据类型,类似于 List(列表),用 () 标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。
元组和列表最大的区别是:元组不允许更新,而列表是允许更新的。
#!/usr/bin/python tuple = ( 'Hello', 'World', 3.14, 'Python' ) list = [ 'Hello', 'World', 3.14, 'Python' ] tuple[2] = 1000 # 元组不允许更新,所以这条语句是非法的 list[2] = 1000 # 在列表中,这个语句是合法的,列表会被更新成:[ 'Hello', 'World', 1000, 'Python' ]
Dictionary(字典)
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型,用”{ }”标识,它由索引(key)和它对应的值value组成。列表是有序的对象集合,字典是无序的对象集合。
两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。