1、python变量类型、赋值:
python中 变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。
基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。
因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符
变量赋值:
python中创建变量时不用指定类型
每个变量都是在内存中创建,包括变量的标识、名称、具体的值
每个变量必须赋值,用(=)进行赋值
等号(=)左边的是变量的名字,等号(=)右边是的具体的值,例如:
1 #!/usr/bin/env python
2 #-*- coding: utf-8 -*-
3 #@Time : 2016/12/1 16:51
4 #@Author : zjz10
5 #@Site :
6 #@File : hello_world.py
7 #@Software: PyCharm
8
9 name = "brian" #赋值字符串类型
10 number = 100 #赋值整数类型
11 decimal = 999.999 #赋值浮点数类型
12
13 print(name)14 print(number)15 print(decimal)
以上实例分别对name、number、decimal进行赋值
运行得到的结果是:
brian
100
999.999
多个变量赋值:
在python中可以进行多个变量同时赋值一个值,例如:
1 #!/usr/bin/env python
2 #-*- coding: utf-8 -*-
3 #@Time : 2016/12/1 16:51
4 #@Author : zjz10
5 #@Site :
6 #@File : hello_world.py
7 #@Software: PyCharm
8
9 n = u = p = 1 #同时将1赋值给n,u,p三个变量
10 print(n)11 print(u)12 print(p)13 #分别打印你,u,p的值
打印的结果:
也可以为多个对象指定多个变量,例如:
1 #!/usr/bin/env python
2 #-*- coding: utf-8 -*-
3 #@Time : 2016/12/1 16:51
4 #@Author : zjz10
5 #@Site :
6 #@File : hello_world.py
7 #@Software: PyCharm
8
9 n,u,p = 1,12.2,'brain' #同时将1,12.2,brain赋值给n,u,p三个变量
10 print(n)11 print(u)12 print(p)13 #分别打印你,u,p的值
打印的结果是:
1
12.2brain
最后,我们要理解以下变量在计算机内存中具体是怎么样做的,例如:
a = 1
当我们在写上面这条代码的时候,实际上python在内存中做了两件事情:
在内存中创建了一个'ABC'的字符串;
在内存中创建了一个名为a的变量,并把它指向'ABC'。
也可以把一个变量a赋值给另一个变量b,这个操作实际上是把变量b指向变量a所指向的数据,例如下面的代码:
1 #!/usr/bin/env python
2 #-*- coding: utf-8 -*-
3 #@Time : 2016/12/1 16:51
4 #@Author : zjz10
5 #@Site :
6 #@File : hello_world.py
7 #@Software: PyCharm
8
9 a = 1
10 b =a11 a = 2
12 print(b)
最后一行打印出变量b的内容到底是'1'呢还是'2'?如果从数学意义上理解,就会错误地得出b和a相同,也应该是'2',但实际上b的值是'1',让我们一行一行地执行代码,就可以看到到底发生了什么事:
执行a = '1',解释器创建了字符串'1'和变量a,并把a指向'1':
执行b = a,解释器创建了变量b,并把b指向a指向的'1':
执行a = '2',解释器创建了'2',并把a的指向改为'2',但b并没有更改:
所以,最后打印变量b的结果自然是'1'了
常量:
所谓常量就是不能变的变量,比如常用的数学常数π就是一个常量。在Python中,通常用全部大写的变量名表示常量:
PI = 3.14159265359
但事实上PI仍然是一个变量,Python根本没有任何机制保证PI不会被改变,所以,用全部大写的变量名表示常量只是一个习惯上的用法,如果你一定要改变变量PI的值,也没人能拦住你。
2、标准的数据类型:
在内存中存储变量的时候是不用指定类型的,Python有一些标准类型用于定义操作上,他们和为他们每个人的存储方法可能。
python有五种标准的数据类型:
Number
数字
string
字符串
List
列表
Tuple
元组
Dictionary
字典
①:数字(Number)
数字分为:整型、长整型、浮点型、复数
int(整型):例如:1、10、100
explain:(在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807)
long(长整型):例如:1234567890
explain:(在python中长整型的值是没有位宽限制的,也就是说在python中长整型的值没有长度的限制,具体是根据内存大小定义的,因为计算机的内存是有限的,
所以长整型不可能无限大)
float(浮点型):例如:12.2、70.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3 * 10-4
explain:(浮点数用来处理实数,即带有小数点的数字)
compelx(复数):例如:(-5+4j)、(2.3-4.6j)
explain:(复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数)
PS:python 中存在的小数池:-5~257
②:布尔值(bool)
True 或者 False
真 或者 假
1 或者 0
③:字符串(str)
"Hello World"、"brian"都是一个字符串
字符串拼接("+")号
python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,
万恶的+号每出现一次就会在内从中重新开辟一块空间
字符串格式化(%)号:
1 user = "brian"
2 print('my name is %s ' % user)
3
4 #输出 my name is brian
PS:%s表示格式化字符串,%d表示格式化整数,%f表示格式化浮点数
④:列表(list)
创建列表:
list_one = ['11','22','33.1','brian']
print(list_one)
#或者
list_two = list(['11','22','33.1','brian'])
print(list_two)
#输出的结果都是相同的
⑤:元组(tuple)
创建元组:
tuple_one = ('11','22.2','brain')
print(tuple_one)
#或者
tuple_two = tuple(('11','22.2','brian'))
print(tuple_two)
#输出的结果是相同的
⑥:字典(dict) (无序)
创建字典:
dict_one = {'k1':'brian','k2':'11','k3':'22.2'}
print(dict_one)
#或者
dict_two = dict({'k1':'brian','k2':'11','k3':'22.2'})
print(dict_two)
#输出结果顺序有可能改变(因为字典是无序的)
每个类型都会有相应的功能,接下来我会详细的介绍每个数据类型的功能,如下图: