Python中的4种基本类型:元组(Tuple)、列表(list)、集合(set)和字典(dict)。

1、元组

Python中的元组(Tuple)类似于Java中的数组,一旦创建了一个 tuple,就不能以任何方式改变它。这点与Python中的字符串类似,所以我们说元组和字符串都是不可变的序列。元组也支持索引和分片操作。定义一个元组使用一对小(圆)括号” ( ) “.

>>> t1=(1,2,"我",4.3)
 >>> t1
 (1, 2, '我', 4.3)
 >>> type(t1)
 <class 'tuple'>
 >>> t1[0]
 1
 >>> t1[1:3]
 (2, '我')
 >>> t1[0:4]
 (1, 2, '我', 4.3)
 >>> t1[-1]
 4.3
 >>> t1[-2]
 '我'
 >>> t2=t1[0:3]
 >>> t2
 (1, 2, '我')

2、列表

列表是Python中最具灵活性的有序集合对象类型,与字符串不同的是,列表可以包含任何种类的对象:数字、字符串、甚至是其他列表,并且列表都是可变对象,它支持在原处修改的操作。也可以通过指定的索引和分片获取元素,列表就可元组的可变版本。
定义一个列表使用一对中(方)括号” [ ] “。与元组不同的是,列表有一些内置的函数对列表进行增加,修改和删除等操作。

>>> l1=[1,2,"我",3.4]
 >>> type(l1)
 <class 'list'>
 >>> l1.append (3)  # 1.使用append   向 list 的末尾追加单个元素。
 >>> l1
 [1, 2, '我', 3.4, 3]
 >>> l1.append(3)
 >>> l1
 [1, 2, '我', 3.4, 3, 3]
 >>> l1.insert(0,12345)   # 2.使用 insert  将单个元素插入到 list 中。数值参数是插入点的索引
 >>> l1
 [12345, 1, 2, '我', 3.4, 3, 3]
 >>> l1.extend([1,2,3,4,5])    #extend 接受一个参数,这个参数总是一个 list
 >>> l1
 [12345, 1, 2, '我', 3.4, 3, 3, 1, 2, 3, 4, 5]
 >>> len(l1)
 12
 >>> l1.index(1)  # index 在 list 中查找一个值的首次出现并返回索引值。
 1
 >>> l1.index(5)
 11
 >>> l1.index("我")
 3
 >>> l1.index("斯蒂芬")
 Traceback (most recent call last):
   File "<pyshell#96>", line 1, in <module>
     l1.index("斯蒂芬")
 ValueError: '斯蒂芬' is not in list>>> l1
[12345, 1, 2, '我', 3.4, 3, 3, 1, 2, 3, 4, 5]
 >>> l1.remove(3)
 >>> l1
 [12345, 1, 2, '我', 3.4, 3, 1, 2, 3, 4, 5]
 >>> l1.remove('我')   # remove 从 list 中 仅仅 删除一个值的首次出现。如果在 list 中没有找到值,Python 会引发一个异常 
 >>> l1
 [12345, 1, 2, 3.4, 3, 1, 2, 3, 4, 5]
 >>> l1.pop()  # pop 它会做两件事:删除 list 的最后一个元素,然后返回删除元素的值。
 5
 >>> l1
 [12345, 1, 2, 3.4, 3, 1, 2, 3, 4]
 >>> l1.pop()
 4
 >>> l1
 [12345, 1, 2, 3.4, 3, 1, 2, 3]

3、字典(dict)

字典(Dictionary) 是 Python 的内置数据类型之一,它定义了键和值之间一对一的关系,但它们是以无序的方式储存的。 Python 中的 dictionary 像 Java 中的 Hashtable 类的实例。定义 Dictionary 使用一对大(花)括号” { } ”

>>> d1={'name':'wzl', "age":36, "sex":"Male"}
 >>> d1
 {'sex': 'Male', 'age': 36, 'name': 'wzl'}
 >>> type(d1)
 <class 'dict'>
 >>> d1['name']="James"
 >>> d1
 {'sex': 'Male', 'age': 36, 'name': 'James'}
 >>> del d1['sex']
 >>> d1
 {'age': 36, 'name': 'James'}
 >>> d1.clear();
 >>> d1
 {}


4、集合(set)

Python的集合(set)和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素。集合对象还支持union(联合)、 intersection(交)、difference(差)和sysmmetric difference(对称差集)等数学运算。由于集合是无序的,所以,sets 不支持 索引、分片、或其它类序列(sequence-like)的操作。集合也存在不可变形式,frozenset为固定集合。

>>> s1={1,2,"我",3.14}
 >>> type(s1)
 <class 'set'>
 >>> l1
 [12345, 1, 2, 3.4, 3, 1, 2, 3]
 >>> type(l1)
 <class 'list'>
 >>> s1=set(l1)    #列表强制转换成集合
 >>> s1
 {12345, 1, 2, 3, 3.4}
 >>> type(s1)
 <class 'set'>
 >>> s1.add(156,"你好")
 Traceback (most recent call last):
   File "<pyshell#136>", line 1, in <module>
     s1.add(156,"你好")
 TypeError: add() takes exactly one argument (2 given)
 >>> s1.add(156)      # 增加元素
 >>> s1
 {1, 2, 3, 3.4, 12345, 156}
 >>> s1.discard(4)
 >>> s1
 {1, 2, 3, 3.4, 12345, 156}
 >>> s1.remove(0)
 Traceback (most recent call last):
   File "<pyshell#141>", line 1, in <module>
     s1.remove(0)
 KeyError: 0
 >>> s1.remove(1)
 >>> s1
 {2, 3, 3.4, 12345, 156}
 >>> s1.remove(15)
 Traceback (most recent call last):
   File "<pyshell#144>", line 1, in <module>
     s1.remove(15)
 KeyError: 15
 >>> s1.remove(156)
 >>> s1
 {2, 3, 3.4, 12345}
 >>> s1.pop()   #随机删除一个元素
 2
 >>> s1
 {3, 3.4, 12345}
 >>> s2={2,3,4,"2"}
 >>> s1
 {3, 3.4, 12345}
 >>> s2
 {'2', 2, 3, 4}
 >>> s3=s1.intersection(s2)    #求交集
 >>> s3
 {3}
 >>> s4=s1.un
 Traceback (most recent call last):
   File "<pyshell#154>", line 1, in <module>
     s4=s1.un
 AttributeError: 'set' object has no attribute 'un'
 >>> s4=s1.union(s2)     #求联合
 >>> s4
 {'2', 2, 3, 4, 3.4, 12345}
 >>> s5=s1.difference(s2)   #求差集
 >>> s5
 {12345, 3.4}
 >>> s5=s1.symmetric_difference(s2)  #求对称差集
 >>> s5
 {'2', 2, 12345, 4, 3.4}

5、条件语句

(5.1)  if 语句

if和冒号(“:”)之间的内容是   判断条件 ,条件满足,执行:之后的缩进内容

>>> a=2
 >>> if a<2:
     print("a<2");
 elif a>=2:
     print("a>=2");
   
 >>> a=2
 >>> if a<2:
     a=a+2;
     print("a<2");
     print("%f" % a);
 elif a>=2:
     a=a-2;
     print("a>=2");
     print("%f" % a);
    
a>=2
 0.000000

(5.2)  while 语句

>>> i=10;
 >>> while i>0 :
     print("Lift off in:")
     print(i)
     i=i-1;

 Lift off in:
 10
 Lift off in:
 9
 Lift off in:
 8
 Lift off in:
 7
 Lift off in:
 6
 Lift off in:
 5
 Lift off in:
 4
 Lift off in:
 3
 Lift off in:
 2
 Lift off in:
 1

(5.3)  for 语句

>>> a=2;
 >>> for a in range(5):
     print(a);
     a=a+1;
     
 0
 1
 2
 3
 4>>> a=2
 >>> for a in range(500):  #i是index
     print(a);
     a=a+1;
     if a>10:
         print("ok");
         break;

 0
 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 ok

(5.4)  try exception 语句

当请求字典对象里面没有的key时,python会抛出异常KeyError。

>>> f={"egg":8, "mushroom":20,"pepper":3,"cheese":80}
 >>> try:
     if f["egg"]>5:
         print("It's OK");
 except(KeyError, TypeError) as error:
     print("Woah! There is no %s" % error);
     
 It's OK >>> try:
     if f["egg"]>10:
         print("It's OK");
 except(KeyError, TypeError) as error:
     print("Woah! There is no %s" % error); >>> a=range(1,10) #生成1:9的序列 

 >>> a 

 range(1, 10) 

 >>> tuple(a)   #序列转换成元组 

 (1, 2, 3, 4, 5, 6, 7, 8, 9) 

 >>> list(a)    #序列转换成列表 

 [1, 2, 3, 4, 5, 6, 7, 8, 9] 

 >>> set(a)      #序列转换成集合 

{1, 2, 3, 4, 5, 6, 7, 8, 9}
>>> import os   #导入 操作系统相关的  模块,常见模块命令(os/sys/platform)
 >>> os.getcwd()
 'D:\\Python34'
 >>> os.getlogin()
 'wangzhenglin'


 >>> import random
 >>> random.random()  #随机生成一个数字in[0,1] 
 0.637733083393377
 >>> random.choice(range(0,10))  #在列表0:10中随机选一个
 7
 >>> random.choice(range(0,10))
 5