一.变量

变量是计算机内存中的一块区域,存储规定范围内的值,值可以改变,通俗的说变量就是给数据起个名字


1.变量的命名

变量名有字母、数字、下划线组成 

数字不能开头

不可以使用关键字

举例:a,a1,a_1


2.变量的赋值

变量的赋值就是变量声明和定义的过程

举例:a=1


3.变量分类

不可变变量:数字、元组()、字符串(值变的时候会指向一个新的地址)

可变变量:列表[]、字典{}(值变,id不变)

举例:

zhzhgo=25定义变量zhzhgo的值为25

id(zhzhgo)查看变量zhzhgo的地址空间


a=1,a=2,此时两个id(a)的地址空间是不一样的

a=3,b=3,此时id(a)和id(b)的地址空间一样

>>> zhzhgo=25
>>> id(zhzhgo)
5362080
>>> a=1
>>> id(a)
5362368
>>> a=2
>>> id(a)
5362356
>>> a=3
>>> id(a)
5362344
>>> b=3
>>> id(b)
5362344
>>>


二.运算符

1.赋值运算符

2.算数运算符

3.关系运算符

4.逻辑运算符

5.位运算符

& 按位与

| 按位或

^ 按位异或

~ 按位取反:x翻转之后是-(x+1),相加得-1

<< 左移运算:往左移几位相当于乘以2的几次方

>> 右移运算:往右移几位相当于除以2的几次方

举例:

a=2,a<<2,a=8,左移相当于乘以2的2次方

a=2,a>>2,a=0,右移相当于除以2的2次方

6.成员运算符 in、not in

7.身份运算符 is、is not(id相等返回结果为1)


三.表达式

表达式是将不同的数据(变量、函数等)用运算符号按一定的规则连接起来的一种式子

下面的例子都是合法的Python表达式:

1+15

zhzhgo-1

i*3-j

zhzhgo/9

3**2

(1+2)*(10-5)


四.数据类型

1.数据类型如下

Numbers(数字):×××、长×××(123L,超出int自动转成long)、浮点型、复数型(a=1j)

数字数据类型用于存储数值。是不可改变的数据类型(不可变变量),这意味着改变数字数据类型会分配一个新的对象。

当指定一个值时,Number对象就会被创建:var1 = 1

Python支持四种不同的数值类型:

①. int(有符号整型)

②. long(长整型[也可以代表八进制和十六进制])

③. float(浮点型)

④. complex(复数)

wKioL1XA2yDBpYklAAHaAhh9ZS4834.jpg

String(字符串):" " ' ' """ """

字符串或串(String)是由数字、字母、下划线组成的一串字符。加号(+)是字符串连接运算符,星号(*)是重复操作。如下实例:

>>> str='hello_python'
>>> print str
hello_python
>>> print str + ',hello world!'
hello_python,hello world!
>>> print str * 2
hello_pythonhello_python
>>>


Python 支持格式化字符串的输出 。最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。如下实例:

>>> print "My name is %s and height is %d kg!" % ('zhzhgo', 168)
My name is zhzhgo and height is 168 kg!
>>>

 

List(列表):[],值可变

列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(所谓嵌套)。加号(+)是列表连接运算符,星号(*)是重复操作。如下实例:

>>> list=['zhzhgo',25,3.14,[1,2,3]]
>>> list1=['hello',18]
>>> print list
['zhzhgo', 25, 3.14, [1, 2, 3]]
>>> print list + list1
['zhzhgo', 25, 3.14, [1, 2, 3], 'hello', 18]
>>> print list1 * 2
['hello', 18, 'hello', 18]
>>>

常见列表操作

list.append(obj) 在列表末尾添加新的对象

list.insert(index, obj) 将对象插入列表

list.index(obj) 从列表中找出某个值第一个匹配项的索引位置

list.count(obj) 统计某个元素在列表中出现的次数

list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

del(list[index]) 删除某个元素

list.remove(obj) 删除第一个匹配的元素

list.pop(obj) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

list.sort() 对原列表进行排序

list.reverse() 反向列表中元素

>>> list=[1,2,3,2,3,2]

>>> list.append(4)
>>> list
[1, 2, 3, 2, 3, 2, 4]
>>> list.insert(3,4)

>>> list
[1, 2, 3, 4, 2, 3, 2, 4]
>>> list.index(4)
3
>>> list.count(2)

3
>>> list1=[5,6,7]

>>> list.extend(list1)
>>> list
[1, 2, 3, 4, 2, 3, 2, 4, 5, 6, 7]
>>> del(list[3])
>>> list
[1, 2, 3, 2, 3, 2, 4, 5, 6, 7]
>>> list.remove(2)
>>> list
[1, 3, 2, 3, 2, 4, 5, 6, 7]
>>> list.pop()
7
>>> list
[1, 3, 2, 3, 2, 4, 5, 6]
>>> list.pop(2)
2
>>> list
[1, 3, 3, 2, 4, 5, 6]
>>> list.sort()
>>> list
[1, 2, 3, 3, 4, 5, 6]
>>> list.reverse()
>>> list
[6, 5, 4, 3, 3, 2, 1]
>>>


Tuple(元组):(),值不可变

元组用"()"标识,类似于List(列表),但是元组是不可变变量,元素不能二次赋值,相当于只读列表。如下实例:

>>> list=[1,2,3]
>>> tuple=(4,5,6)
>>> list[0]=10
>>> list
[10, 2, 3]
>>> tuple[0]=40
Traceback (most recent call last):
  File "<pyshell#26>", line 1, in <module>
    tuple[0]=40
TypeError: 'tuple' object does not support item assignment

元组中只包含一个元素时,需要在元素后面添加逗号:tup1 = (18,)

>>> tup=(18)
>>> type(tup)
<type 'int'>
>>> tup=(18,)
>>> type(tup)
<type 'tuple'>
>>>


Dictionary(字典):{}

详见:http://zhzhgo.blog.51cto.com/10497096/1673084


2.序列包括:字符串、列表、元组

序列的两个特征是“索引”和“切片”

索引,根据index获取特定元素

切片,获取序列片段

a='123456789'
a[0:2]='12'
a[-1]='9'
a[0:]='123456789'
a[2:]='3456789'
a[::-1]='987654321' #用步长实现字符串反转

3.常见序列操作

len() 求长度

+ 连接两个序列

* 重复序列元素

in 判断元素是否在序列中

max() 返回最大值

min() 返回最小值

cmp() 比较两个序列