python学习之(1)数据结构篇

来源:互联网 发布:2012修改telnet端口 编辑:程序博客网 时间:2024/06/17 05:52

以前简单接触过python,现在回顾一下python的一些基础知识,开始新的python使用之旅。

一.首先是体验一下交互模式

我使用的是python3.6.0自带的IDLE,新建文件welcome_python.py,输入:

>>> print('welcome to python')

按F5输出结果:

welcome to python

二.数据类型篇

Python3中有六个标准的数据类型:

  1. Numbers(数字)
  2. String(字符串)
  3. List(列表)
  4. Tuple(元组)
  5. Dictionaries(字典)
  6. Sets(集合)

2.1数字类型

Python 3支持int、float、bool、complex。内置的type()函数可以用来查询变量所指的对象类型。

>>> a=1>>> b=2.2>>> c=1+2j>>> print(a,b,c)1 2.2 (1+2j)>>> type(a)<class 'int'>>>> type(b)<class 'float'>>>> type(c)<class 'complex'>

2.2字符串类型

    Python 具有单一的字符串类型str,字符串用单引号(‘ ’)或双引号(“ ”)括起来,同时使用反斜杠(\)转义特殊字符。如果不想让反斜杠发生转义,可以在字符串前面添加一个r,表示原始字符串;另外,反斜杠可以作为续行符,表示下一行是上一行的延续。还可以使用"""..."""或者'''...'''跨越多行。字符串可以使用 + 运算符串连接在一起,或者用 * 运算符重复。

>>> str1='python'>>> str2="python3.6">>> str3=str1+str2>>>print(str1)python>>> print(str2)python3.6>>> print(str1+" "+str2)python python3.6
    Python中的字符串有两种索引方式,第一种是从左往右,从0开始依次增加;第二种是从右往左,从-1开始依次减少。
>>> print(str1[-1])n>>> print(str1[0])p
    与C字符串不同的是,Python字符串不能被改变。向一个索引位置赋值,比如str1[0] = 'm'会导致错误。
>>> str1[0]='m'Traceback (most recent call last):  File "<pyshell#56>", line 1, in <module>    str1[0]='m'TypeError: 'str' object does not support item assignment

2.3列表类型

    List(列表) 是 Python 中使用最频繁的数据类型。列表是写在方括号之间、用逗号分隔开的元素列表。列表中元素的类型可以不相同,和字符串一样,列表同样可以被索引和切片,列表被切片后返回一个包含所需元素的新列表。
>>> list1=[1,2,3.0,str1]>>> print(list1)[1, 2, 3.0, 'python']>>> list2=[str2,'Jason_fu']>>> print(list2)['python3.6', 'Jason_fu']>>> print(list1+list2)[1, 2, 3.0, 'python', 'python3.6', 'Jason_fu']
    与字符串不同的是,列表中的元素是可以改变的:
>>> list1[2]='python3.6.0'>>> print(list1)[1, 2, 'python3.6.0', 'python']

    List内置了有很多方法:append()、pop()等等,

>>> list1.append('new')>>> print(list1)[1, 2, 'python3.6.0', 'python', 'new']>>> list1.pop(0)1>>> print(list1)[2, 'python3.6.0', 'python', 'new']

2.4元组类型

    元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组是写在小括号之间、用逗号隔开的元素列表。元组中的元素类型也可以不相同。元组与字符串类似,可以被索引且下标索引从0开始,也可以进行截取/切片。可以把字符串看作一种特殊的元组。虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。

>>> tuple1=(1,2,3.0,'python')>>> print(tuple1)(1, 2, 3.0, 'python')>>> type(tuple1)<class 'tuple'>>>> tuple2=(list1,tuple1)>>> print(tuple2)([2, 'python3.6.0', 'python', 'new'], (1, 2, 3.0, 'python'))

2.5字典类型

    字典(dictionary)是Python中非常有用的内置数据类型。字典是一种映射类型(mapping type),它是一个无序的键 : 值对集合。关键字必须使用不可变类型,也就是说list和包含可变类型的tuple不能做关键字。在同一个字典中,关键字还必须互不相同。
>>> dic2={'FCQING':'no1','JJ':'no2'}>>> print(dic2){'FCQING': 'no1', 'JJ': 'no2'}>>> dic2['FCQING']'no1'>>> dic2['kobe']='no3'>>> print(dic2){'FCQING': 'no1', 'JJ': 'no2', 'kobe': 'no3'}
    构造函数 dict() 可以直接从键值对中构建字典,如下:
>>> dic3=dict([('fcqing','NO1'),('jj','NO2'),('KOBE','NO3')])>>> print(dic3){'fcqing': 'NO1', 'jj': 'NO2', 'KOBE': 'NO3'}
    字典类型也有一些内置的函数,例如clear()、keys()、values()等。
>>> print(dic3.keys())dict_keys(['fcqing', 'jj', 'KOBE'])>>> print(dic3.values())dict_values(['NO1', 'NO2', 'NO3'])>>> dic3.clear()>>> print(dic3){}

2.6集合类型

    集合(set)是一个无序不重复元素的集,与数学中的集合概念是对应的,也可进行相应的集合运算。基本功能是进行成员关系测试和消除重复元素。可以使用大括号或者set()函数创建set集合,注意:创建一个空集合必须用 set() 而不是 { },因为{ }是用来创建一个空字典。

>>> set1={'fcqing','jj','kobe','Jason'}>>> print(set1){'jj', 'kobe', 'Jason', 'fcqing'}>>> 'jj'in set1True>>> 'JJ'in set1False>>> set2=set('welcome to python')>>> set2{'n', 'p', 'm', 'y', 't', 'l', 'h', 'o', 'c', 'e', 'w', ' '}>>> set3=set('welcome to python3.6.0')>>> set3{'n', 'p', '6', '.', 'm', 'y', 't', '3', 'l', 'h', '0', 'o', 'c', 'e', 'w', ' '}>>> set3-set2{'6', '.', '3', '0'}>>> set2&set3 #取交集{'n', 'p', 'm', 'y', 't', 'w', 'l', 'h', 'o', 'e', 'c', ' '}>>> set2|set3 #取并集{'n', 'p', 'm', 'y', 't', '3', '0', 'e', 'w', '6', '.', 'l', 'h', 'o', ' ', 'c'}>>> set3^set2#去不同时存在的元素{'3', '0', '6', '.'}
                                             
0 0