为什么我要学习 Python 这门语言呢? 其实很简单, 我想拓展技术面的同时, 尝试更多的方向, 可能最后会不了了之, 谁知道呢? 有可能的话, 我会向爬虫和数据分析这个方向走. 所以也就开始了我的 Python 学习之旅. 当然, 前提是我的本职工作 Java 也要前进.
因为有 Java 的基础, 所以入门 Python 还是比较简单的, 但我我不想草草了事, 所以, 会刻意慢一点. 说到 Python 开发环境的安装和工具的使用, 我选择的就是 Python3.6, 而目前的工具, 因为在初期, 所以选择了 Python 自带的 IDLE, 那就来总结一下我这几天的学习情况吧! 对了, 我选择的教程就是 Python 基础教程 3. 白天需要工作, 所以也就是在下班的时候抽时间看一下书.
就像是 Java 中的 8 种基本数据类型一样, Python 中也有一些基本的数据类型, 那今天就来说说 Python 中的基本的数据结构有哪些.
列表
元组
字符串
字典
其中前面 3 种统称为序列, 为什么强行把前 3 类归在一起呢? 因为它们有共同的操作. 其中包括
索引, 切片, 相加, 相乘和成员检查(即 in 操作符)
.
一个个的分析, Python 中的索引从 0 开始递增, 而且可以使用
-1 定位到最后一个元素, 依次向左递减
. 切片就很高级了, 就是可以访问固定索引范围内的值, 比方说
s = 'hello' s[1:3] = 'el'
注意一点就行, 索引值是含前不含后的. 这在 Python 中很常见. 切片还有很多比较秀的操作, 类如
- s[-3:-1] = 'll' (注意刚刚说过的含前不含后)
- ,
- s[:] = 'hello' s[1:] = 'ello' s[:3] = 'hel'
, 这些比较常用的操作吧, 还有切片支持指定步长, 默认步长为 1 s[::2] = 'hlo'其余的我也不说, 根本记不住好吧! 学的时候有个印象就好. 序列相加就是直接加呀一个例子:
[1,2,3]+[6] = [1,2,3,6];
乘法类似,'h'*3 = 'hhh' 成员资格就是值在不在序列中使用 in 来进行判断. 举例
s = ['A','B','C']; 'A' in s = True
以上只是对 Python 序列的操作做一个简单的说明. 还有一些常用的方法, 求长度, 最大值, 最小值分别使用 len() max() min() 理解起来应该不存在问题. 序列共同的操作说完之后, 我们来看看每个都如何使用.
首先说什么是列表, 列表就是将数据使用[ ] 括起来, 这就是是列表了, 而元组就是将数据使用( ) 括起来, 字符串使用的是'' or" " 这样一总结, 就感觉清爽了很多嘛. 要问为什么会使用这些符号, 人家就是这样定义的, 你能咋滴! 具体的使用我不想说太多, 不然有种在抄书的感觉啊! 要知道, 列表有很多的内置方法可以是使用, 记不住没关系, 可以使用命令 dir(list) 这样就得到了列表中的所有方法, 知道方法不会用方法啊, 还有一个命令就是
help(list.methodName)
这样就可以得到解释了. 然而这是英文的, 还是不懂, 那就百度去吧. 即使现在说了有哪些方法, 我相信, 不使用的话, 还是会忘的一干二净. 所以我就不多说了. 总之要记住, 有很多很多的方法你想到没想到的可能都已经存在了!
元组和字符串是不可变的, 而元组和列表又很相似, 列表可变, 元组不可变, 这是区别, 而且元组使用的特别少, 但是还是有用武之地的, 目前没见到而已, 还需要修炼修炼. 这就是一个元组 (1,2,3) 注意元组使用的是括号, 中间逗号隔开, 但是有一个要注意, 若是元组只有一个元素, 那么一定要加一个逗号, 像这样 1, or (1,) 不然谁知道你是在表达数字 1 还是元组(1,) 呢 .
字符串我们应该很熟悉了, 说一点, 关于字符串的格式问题, 我们可以使用 %s 来设置格式, 形如这样
name = 'David'; print('Hello , %s' %name )
这样就可以把 name 这个字符串填充到需要填充的字符串中.%s 称为转换说明符, 我理解的就是占坑. 还有一种是使用 format 方法
'{0},{2} and {1}'.format('frist','second','third') 结果: first,third and second
注意, 这就是一种有预谋的占坑了, 可以指定位置, 当然也可以不指定, 那就是按照顺序来. 字符串的方法更是多到令人发指的地步, 没关系, 那就一点点的使用吧, 我写方法名你们来猜吧
center find join lower upper split title strip lstrip rstrip translate isspace isdigit isupper ...
简直了, 你们看着办吧!
上面介绍的都可以使用索引来操作的数据类型, 但是总是需要以一种数据类型来描述映射关系的吧, 于是字典就应运而生了! 也就是我们常说的 key-value 键值对. 那字典是怎么表示的呢? 这样
phonebook = {'David':'1234','Lucy':'9876'}
你看, 就是一个大括号 + 冒号 + 逗号的组合就创建了一个字典, 这符号真是多呀, 回忆一下列表用[ ] , 元组用( ), 字符串用'' or" " , 字典用{ } 所以说要善于总结啊, 这样记得才能牢呀. 字典有个类叫 dict , 干嘛用的, 就是创建字典用的, 类似的列表是 list 元组是 tuple . 翻来覆去的比较, 总会记得住, 理解的清楚. 字典也有些基本的操作, 又到了看方法名的时候
len(dict) || dict[key] || dict[key] = value || del dict[key] || key in dict || dict - 表示一个字典类型的变量, key - 字典的键, value - 为键赋的值
另外要注意的是, 字典的键值必须是不可变的. 这在 Java 整理的部分已经说过了 ~
还有要介绍一下字典的相关的方法, 真的好烦, 不想写了. 就简单一点 dir(dict) 搞定, 方法名都可以看到了. 方法的使用
help(dict.methodName)
也搞定. 感觉用字典来格式化字符串这个功能很有用, 单独说一下, 使用方法 format_map(dict) 就可以将字典中的值填充到字符串中, 感觉很给力, 举例:
- data = {'a':'I','b':'You'}
- '{a} love {b}'.format_map(data) = 'I love You'
就是这样, 变相的表白啊.
总结一下, 目前只是了解到 Python 的基本数据类型和基本用法, 后面再学习语句之后就可以进行简单的逻辑编程了 .
来源: https://www.cnblogs.com/YJK923/p/9491838.html