与C/C++/Java这些需要编译型的语言不一样,Python写好命令直接就可以运行,命令行运行也称交互式变成,通常用于调试,也可以写脚本实现复杂功能。前面已经,介绍过了Python以及开发工具,各有所好,我这里使用Sublime Text。本节主要介绍Python的基本数据结构。
通常情况下,由于学习或者工作需要,可能需要快速能上手一门编程语言,用它实现相应功能,这时候需要掌握什么呢?
经验之谈
,1)、选择一个适合自己的开发工具,通常可以网上找找文章,这些文章一般会比较各种工具优劣,然后选择一个适合自己的即可。2)、熟悉这门语言的基本数据结构,就好像要学习英语,第一步是要有足够单词量,不过学习一门语言的数据结构要比学习英语简单多了。3)、掌握这么语言基本的语法,不能有语法错误,英语也一样,通常是要学会基本的循环和判断语法。
会了基本数据结构,和循环判断语法,小到做个简单猜数字游戏,大到写一个梯度下降回归、蚁群聚类这种迭代算法,都是非常容易的。
本节知识点,是Python入门第二步,一共3步,我只能说非常重要。
PS:如果有C语言、Java、matlab、R语言等基础,学习会很轻松,如果没有,学习起来也很轻松。只要肯多练习,Python7天入门完全没有问题。
数字运算
数字运算很简单,不过,这里还是值得一提。
这里有3个命令,加减法、除法、小数相除。需要注意的是:整数相除,得到整数,整数与小数相除,得到高精度(小数)。
字符串操作
字符串是编程中经常使用到的数据类型,必须熟练掌握其用法。
>>> s = 'hello world'
>>> s[0]
'h'
>>> s[:3]
'hel'
>>> s + 'i am a cool boy'
'hello worldi am a cool boy'
字符串可以当作数组使用,可以切片;
s[:3]表示,从第一个字母'h'开始到,第3个字母l结束,对应下标从0到2,得到:hel;
字符串的加法与整数加法一样,只是字符串是将两个字符串连接在一起。
>>> s.replace('world','boy')
'hello boy'
>>> print "%s i'm coming"%(s)
'm coming
replace 表示替换,把s中的'word',替换为'bool';
'%s' 表示一个字符串占位符,后面括号写对应字符串;
这里i'm有一个单引号,会与字符串定义的单引号重复,所以用了双引号;
>>> s3 = 'hello world'
>>> s4 = "hello world"
>>> s5 = """hello world"""
>>> s3
'hello world'
>>> s4
'hello world'
>>> s5
'hello world'
>>> s6 = '''hello world'''
>>> s6
'hello world'
定义字符串,可以用单引号,双引号,3引号,都行;
三个引号,通常会用来在脚本中作为注释;
列表
列表是Python中使用最多的数据类型,列表可以有多个元素,元素可以是任何数据类型,包括它自己。
>>> list = []
>>> type(list)
'list'>
>>> list.append(1)
>>> list
1]
>>> list.append(3)
>>> list
1, 3]
>>> list[:2]
1, 3]
>>> list.append(5)
>>> list[:2]
1, 3]
>>> list[:]
1, 3, 5]
>>> list + [7,9]
1, 3, 5, 7, 9]
>>> list[-1]
5
list = [] 用来定义一个空列表;
append 向列表里面添加元素;
list[:] 取列表所有元素;
list + [7,9] 两个列表相加;
list[-1] 取倒数第一个元素,倒数第二个以此类推;
2,6)
2, 3, 4, 5]
for i in list:
... print i
...
1
3
5
for i in range(len(list)):
... print list[i]
...
1
3
5
range(m, n)从m开始到n的1为步长的序列;
for i in list: 遍历列表元素;
for i in range(lne(list)): 通过下表遍历;
元组
Python中,元组这种数据结构,使用
很少;
>>> s = (1,2)
>>> s[0]
1
>>> len(s)
2
>>> s2 = (1,)
>>> s3 = (1)
>>> type(s2)
'tuple'>
>>> type(s3)
'int'>
元组用小括号,定义,下标0开始;
len(s):同列表一样,用len求长度;
s2 = (1,) 定义一个只有一个元素的元组,要加逗号;否则就不是元组;
字典
字典是键值对,可以装任何数据类型。
>>> dic = dict()
>>> type(dic)
'dict'>
>>> dic['name'] = 'hello'
>>> dic.get('name')
'hello'
>>> dic['name']
'hello'
>>> dic.clear()
>>> dic
>>> dic = {'name':'hello','age':24}
>>> dic
'age': 24, 'name': 'hello'}
dic = dict() dict是关键字,用来创建空的字典,不要做变量名;
dic['name'] = 'hello' 添加元素;
dic.get('name') 取出元素;
dic['name'] 与dic.get()方法一样,二者使用一种即可;
dic = {'name':'hello','age':24} 定义一个有初始元素的字典;
>>> dic.keys()
'age', 'name']
>>> dic.items()
'age', 24), ('name', 'hello')]
dic.keys() 获得字典的所有key;
dic.items() 获得字典所有元素(k,v),返回一个list
注意:比如dic.keys(),与dic.keys 有无括号是不一样的,一个是调用方法会有返回值,一个是没有;
字典主要用法
方法和函数
描述
cmp(dict1, dict2)
比较两个字典元素
len(dict)
计算字典元素个数
str(dict)
输出字典可打印的字符串表示
type(variable)
返回输入的变量类型,如果变量是字典就返回字典类型
dict.clear()
删除字典内所有元素
dict.copy()
返回一个字典的浅复制
dict.values()
以列表返回字典中的所有值
popitem()
随机返回并删除字典中的一对键和值
dict.items()
以列表返回可遍历的(键, 值) 元组数组
集合
大家数学都不是体育老师交的,集合(set)与数学中集合一样,不能有重复元素,可以做交、并、差运算;
>>> s = set([1,2,3,4,4,4])
>>> s
1, 2, 3, 4])
>>> s.add(5)
>>> s
1, 2, 3, 4, 5])
>>> s.remove(2)
>>> s
1, 3, 4, 5])
s = set([1,2,3,4,4,4]) 集合定义需要传入一个list;
集合通过add添加元素;
通过remove移除元素;
Python的基本数据类型还是很简单的,稍加练习就能掌握。