Variable(变量)
先看一些给变量赋值的例子:
>>> name = 'Pipi'
>>> age = 2
>>> weight = 12.5
发现规律了吗?
等号运算符 (=) 用来给变量赋值的,左边是变量名,右边是对应的值。
那么什么是变量?变量其实就是用来指代某个东西的一个名字,可以让自己的程序一目了然。比如上面例子中的 "age = 2",单看数字 2, 我们并不知道代表什么意思,而有了变量名之后,我们就知道这代表着“年龄是2岁”,而且变量是可变的,比如明年就是:
>>> age = age + 1
我们在取变量名时,要尽可能地取有意义的名字。
给变量赋值时,解释器会创建一个新对象,并根据该对象的数据类型,分配相应的内存空间,然后建立该对象和名称之间的连接,变量指代的就是内存中的这个对象。
在内存中存储的数据可以有很多种类型,比如Pipi,他的名字是用字符来存储,他的年龄、体重是用数字来存储等。
Python 3 有六个标准的数据类型:
- Number(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Set(集合)
- Dictionary(字典)
其中,数字、字符串、元组为不可变数据类型,列表、集合、字典为可变数据类型。
Number(数字)
Python 支持三种不同的数字类型:
-
int:整数,也可称为整型,可以用十进制、八进制、十六进制表示。py3 的整型 int 相当于 py2 的长整型 long,可以存放任意大小的整数,不存在溢出问题,所以 py3 不再有 long 类型。布尔(bool)是整型的子类型。
-
float:浮点数,或叫浮点型,由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 10^2 = 250)
-
complex: 复数,由实部和虚部构成,表示为 a + bj,或 complex(a,b), 实部a和虚部b都是浮点型。要从复数 z 中提取实部和虚部,可以使用 z.real 和 z.imag。
>>> num = 255 # Decimal
>>> num
255
>>> num = 0o255 # Oct
>>> num
173
>>> num = 0x255 # Hex
>>> num
597
>>> num = 2.55
>>> num
2.55
>>> num = -2.55e10
>>> num
-25500000000.0
内置函数 type() 可以查询变量所指的对象类型, isinstance() 可以用来判断是否为某种类型。
>>> type(num)
<class 'float'>
>>> isinstance(num, float)
True
String(字符串)
Python 中,两个双引号 (“”)或者两个单引号 ('')中间的内容为字符串,在双引号之间可以直接使用单引号,单引号之间也可以直接使用双引号,无需转义字符。使用 .format() 语法可以格式化字符串。
>>> 'Today, I really want to say: "Happy birthday to the CPC and me!"'
'Today, I really want to say: "Happy birthday to the CPC and me!"'
>>> name = 'Pipi'
>>> hobby = "parkour"
>>> age = 2
>>> cat = '{} is {} years old this year and loves {}'.format(name, age, hobby)
>>> cat
'Pipi is 2 years old this year and loves parkour'
>>> type(cat)
<class 'str'>
python中还有一种更强大的字符串表示方法:三引号(三个单引号或者三个双引号),它除了可以注释多行外,还可以表示字符串,它强大在于:所见即所得(WYSIWYG),可以不使用转义字符直接换行等。
>>> html = '''
... <body style="background-color:powderblue;">
...
... <h1>This is a heading</h1>
... <p>This is a paragraph.</p>
...
... </body>'''
>>> print(html)
<body style="background-color:powderblue;">
<h1>This is a heading</h1>
<p>This is a paragraph.</p>
</body>
List(列表)
列表元素使用方括号 [] 括起来,各个元素之间用逗号隔开。
>>> odd_num = [1, 3, 5, 7, 9]
>>> odd_num
[1, 3, 5, 7, 9]
>>> type(odd_num)
<class 'list'>
Tuple(元组)
元组和列表类似,不同之处在于元组的元素不能修改。元组的元素是使用小括号 () 括起来的,各个元素之间也是用逗号隔开。
>>> seasons = ('spring', 'summer', 'autumn', 'winter')
>>> seasons
('spring', 'summer', 'autumn', 'winter')
>>> type(seasons)
<class 'tuple'>
Set(集合)
集合是一个无序的不重复的元素序列,可以使用大括号 {} 或者 set() 函数来创建集合。注意:创建一个空集合,必须使用 set(),而不能用 {},因为 {} 是用来创建空的字典的。
>>> fruits = {'apple', 'orange', 'banana', 'apple'}
>>> fruits # Duplicate 'apple' is removed
{'apple', 'banana', 'orange'}
>>> type(fruits)
<class 'set'>
>>> favorite_fruit = set('apple')
>>> favorite_fruit
{'p', 'e', 'a', 'l'}
Dictionary(字典)
字典是一种映射类型,是一个无序的 键(key) : 值(value) 的集合,使用大括号 {} 标识,它的元素是键值对,各个键值对之间也是用逗号隔开。字典的 key 必须是不可变类型,且唯一的。
>>> cat = {'name' : 'Pipi', 'age' : 2, 'weight' : 12.5, 'hobby' : 'parkour'}
>>> cat
{'name': 'Pipi', 'age': 2, 'weight': 12.5, 'hobby': 'parkour'}
>>> type(cat)
<class 'dict'>