基本数据类型

Python 基础快速过一遍:数字、布尔值、字符串与列表的自求值特性、常用运算和切片操作。

基础知识

作为有经验的程序员,我们会快速过完基础部分,好让你尽快上手。但开始之前,先立几条规矩:

  • Python 区分大小写
  • Python 代码用空格或制表符(tab)的缩进来组织代码结构
  • 空格和制表符不能混用,选定一种就坚持用下去(推荐空格)
    • 如果你用 Sublime,请在 View > Indentation 菜单中勾选 “Indentation Using Spaces”
    • 如果遇到报错,可以在 View > Indentation 菜单中尝试把所有缩进转换成空格,并仔细检查你的缩进
  • 括号可以用来明确求值顺序(和数学里一样)
    • (1 + 2) * 3
  • # 会把它所在的同一行中之后的内容全部变成注释

数学与数字

数字是自求值(self-evaluating)的(会返回自身)。数值运算可以作用于数字、持有数值的变量,以及返回数值的表达式。下面是 Python 大多数内置数值运算的速查表。欢迎把这些表达式直接敲进 Python 解释器,看看运行结果。

运算表达式结果
加法1 + 2 + 36
减法7 - 16
乘法2 * 36
除法(浮点)5 / 22.5
整除5 // 22
取模(余数)5 % 21
小于5 < 7True
大于5 > 7False
判断相等5 == 5True
小于等于5 <= 2False
大于等于5 >= 2True

布尔值

布尔值(boolean)用 True 和 False 表示。布尔值同样是自求值的(会返回自身)。下面这些运算返回布尔值;当它们与其他数据类型配合使用时,会把非 False 的值都当作真(任何不是 False 的东西都是真)。

运算表达式结果
真TrueTrue
假FalseFalse
notnot TrueFalse
and1 and TrueTrue
orFalse or not TrueFalse

字符串

字符串(string)是另一种自求值的数据类型。它由一对匹配的引号之间的一串字符构成(单引号、双引号都可以,但同一个字符串里不能混用)。开始和结束引号之间的字符不会被求值,所以字符串里可以放引号字符,只要不和开头结尾的引号匹配就行:

>>> "hello"
'hello'
>>> 'hello'
'hello'
>>> "hello my name is 'Sally'"
"hello my name is 'Sally'"
>>> 'hello my name is "Sally"'
'hello my name is "Sally"'

笔记

作业题 1:调皮字符串

在字符串中错误地使用引号时,会返回什么错误信息?

请给出一个例子,并解释该错误信息。

下面是一些作用于字符串或返回字符串的常用操作:

运算表达式结果说明
打印print(“hello”)输出到屏幕对数字同样有效
索引“hello”[0]‘h’从 0 开始编号
索引“hello”[-1]‘o’也可以是负数
切片“hello”[1
]
‘el’包含起始位置;
不包含结束位置
切片“hello”[1:]‘ello’结束位置默认为字符串长度;
只省略后一个数
切片“hello”[:-1]‘hell’起始位置默认为 0;
只省略前一个数
拼接“hello” + ” world”‘hello world’不能与数字拼接;
会创建一个新字符串!
转换str(1)‘1’用于拼接数字和字符串
重复“hello” * 3‘hellohellohello’
包含‘h’ in “hello”True
取长度len(“hello”)4

列表

列表(list)和字符串很像!字符串就是字符的列表,只是出于抽象的考虑,我们把两者区分开来。使用字符串和列表时,不要越过数据抽象的界限,但可以借助它们的相似之处,把理解一方的思路套用到另一方。(一大区别是:字符串的元素不能修改,列表的元素却可以。)

不出所料……列表也是自求值的!列表用方括号括住一串逗号分隔的元素来声明。和字符串一样,用索引来访问列表中的值(索引从 0 开始)。

>>> test_list = ["this", "is", "a", "list", 1 , 2 , 3]
>>> test_list
['this', 'is', 'a', 'list', 1 , 2 , 3]
>>> test_list[3]
'list'
  • 第 1 行:创建一个列表,赋值给变量 test_list
  • 第 2 行:查看变量 test_list 的内容
  • 第 3 行:返回 ['this', 'is', 'a', 'list', 1, 2, 3](我们创建的列表!)
  • 第 4 行:取出列表的第四个元素(索引 = 3)
  • 第 5 行:返回 'list'(第四个元素)

下面再奉上一份列表索引与操作速查表!

下面这张表中,假设 x = [“this”, “is”, “a”, “list”]

运算表达式结果说明
打印print([1,2,3])输出到屏幕对数字和字符串同样有效
索引x[0]‘this’从 0 开始编号
索引x[-1]‘list’也可以是负数
切片x[1
]
[‘is’, ‘a’]包含起始位置;
不包含结束位置
切片x[1:][‘is’, ‘a’, ‘list’]结束位置默认为列表长度;
只省略后一个数
切片x[:-1][‘this’, ‘is’, ‘a’]起始位置默认为 0;
只省略前一个数
拼接[1, 2, 3] + [4, 5, 6][1, 2, 3, 4, 5, 6]
拼接>>> x = [1, 2, 3]
>>> x += [4, 5, 6]
>>> x
[1, 2, 3, 4, 5, 6]
重复[‘Hi!’] * 4[‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’]
包含3 in [1, 2, 3]True
迭代
(控制流一节会细讲!)
for i in [1, 2, 3]: print(i)1
2
3
取长度len([1, 2, 3])3

笔记

作业题 2:水果和蔬菜

x = ["apple", "banana", "carrot"]

写一行代码,执行后返回 “apples bananas and carrots”。