python学习2
1.input()返回的是字符串, 如果想读入一个数字,应该用int()转化
2.循环的写法与C不同的地方就是,for while等写完之后在那一行后面要加上一个冒号,这是比较特殊的地方。
还有就是range(5)可以得到0,1,2,3,4 比如执行liat(range(5))得到 [0,1,2,3,4]
3.names = ['hello','woeld','haha']
for name in names:
print(name)
最后得到:
hehe
haha
yeye
4.dict
4.1python中的这个dict也是个神奇的东西,作用和C里面讲的哈希算法一样一样的,其实算法并没有语言之分,只不过是算法有不同的语言的表示罢了。而这个dict数据结构,就是恰恰反映哈希算法的东西。
前面我们知道,python中定义list用了[],而定义不可变对象tuple用了(),剩下一个没用那就是{}了,这么说好像有点牵强,但是比较好记嘛,暂时就这么解释了。
eg:1.d = {'haha':20,'heihei':30,'hehe':40} 定义完之后,我输入了d['haha']得到了20。注意这里面我用的是[],d['haha'],这样就实现了dict结构的d的访问。
2.当然如果是d['hihi']这种kay不存在的语句,python会报错。
3.也可以用 'hehe' in d 来验证'hehe'是否在d中;
4.另一种验证的方法是d.get('hehe')来试,如果d中有'hehe'对应的值,就会输出,否则什么也不会出现。
5.也可以写成d.get('hehe',-5)执行结果是如果d中有'hehe'元素,那么就输出响应的值,如果没有那就输出-5,这样就直接可以得知d中没有这个元素了。
6.关于dict还有其他的一些操作,比如: d.pop('haha') 这样就把'haha'对应的20连通'haha'一块都删掉了。
4.2关于的dict的哈希特性需要特别的说明一下:其实要用list或者tuple存储一个数组的时候,查找某个元素的时候就像从一本字典的第一页翻起去找中间某个字,很有可能就是事件上超级费时;而dict用的是哈希的方法,就是首先通过'haha','heihei'这些字符串计算一个key值,然后将20,30 分别对应存放在相应的key值的地方。等到再次输入'haha'的时候重复计算key的过程,就得到了'haha'的key值,直接到相应地点取出即可。这样直接的方法相当的给力。 相比于list和tuple在查询时间上就是一个质的飞越,但是通过刚才的描述的计算存储过程想必也可以知道dict占用的空间将会很大,这就是所谓的用“空间换时间”吧。
eg:由于dict的这个特性,所以计算的时候就有了不能出现 d = {'haha':20,'haha':30,'hehe':40}的情况,这样的话20会被自动抹去。另外dict中元素的排序是按其key值来排序的,跟输入顺序并没有什么关系。
5.set实现方法
set与dict最大的不同就是set不存储值,他放入内存的方式和dict一样,都是通过哈希算法来计算一个key值。最后实现的结果就是一个数学意义上的无序的、不重复的集合。我们可以按照数学的方式那样子进行&操作、|操作,最终得到的就是数学意义的计算结果。

6.不可变对象
6.1str是不可变对象、list是可变对象
6.2对于可变对象list内部的东西是可以变化的,比如:

可以看到a在排序前后内容发生了改变,换一个层面来看这段代码,告诉我们list中的元素有时候是可以用a.sort()排序的哎!
6.3对于不可变对象:

对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。
相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的
python学习2的更多相关文章
- Python学习--04条件控制与循环结构
Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...
- Python学习--01入门
Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...
- Python 学习小结
python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...
- Python学习路径及练手项目合集
Python学习路径及练手项目合集 https://zhuanlan.zhihu.com/p/23561159
- python学习笔记-python程序运行
小白初学python,写下自己的一些想法.大神请忽略. 安装python编辑器,并配置环境(见http://www.cnblogs.com/lynn-li/p/5885001.html中 python ...
- Python学习记录day6
title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...
- Python学习记录day5
title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...
- [Python] 学习资料汇总
Python是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大且完善的通用型语言,已经有十多年的发展历史,成熟且稳定.Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用 ...
- Python学习之路【目录】
本系列博文包含 Python基础.前端开发.Web框架.缓存以及队列等,希望可以给正在学习编程的童鞋提供一点帮助!!! 目录: Python学习[第一篇]python简介 Python学习[第二篇]p ...
- python学习笔记系列----(八)python常用的标准库
终于学到了python手册的最后一部分:常用标准库.这部分内容主要就是介绍了一些基础的常用的基础库,可以大概了解下,在以后真正使用的时候也能想起来再拿出来用. 8.1 操作系统接口模块:OS OS模块 ...
随机推荐
- 【CSS进阶】伪元素的妙用2 - 多列均匀布局及title属性效果
最近无论是工作还是自我学习提升都很忙,面对长篇大论的博文总是心有余而力不足,但又不断的接触学习到零碎的但是很有意义的知识点,很想分享给大家,所以本篇可能会很短. 本篇接我另一篇讲述 CSS 伪元素的文 ...
- Java 素数 prime numbers-LeetCode 204
Description: Count the number of prime numbers less than a non-negative number, n click to show more ...
- 安卓v7支持包下的ListView替代品————RecyclerView
RecyclerView这个控件也出来很久了,相信大家也学习的差不多了,如果还没学习的,或许我可以带领大家体验一把这个艺术般的控件. 项目已经同步至github:https://github.com/ ...
- C#开发微信门户及应用(8)-微信门户应用管理系统功能介绍
最近对微信接口进行深入的研究,通过把底层接口一步步进行封装后,逐步升级到自动化配置.自动化应答,以及后台处理界面的优化和完善上,力求搭建一个较为完善.适用的微信门户应用管理系统. 微信门户应用管理系统 ...
- VS2010中dumpbin工具的使用
用VS2010生成的.obj文件..lib库..dll库..exe执行文件,如果想查看其中这些文件或库包含了哪些函数以及相关的信息(符号清单),可以通过VS2010自带的dumpbin工具来完成. d ...
- javaScript之BOM操作2
<!doctype html> <html lang="en"> <head> <title>Document</title& ...
- datatables中的Options总结(1)
datatables中的Options总结(1) 最近一直研究dataTables插件,下面是总结的所有的选项内容,用了帮助学习datatables插件. 这些选项的配置在$().Datatable( ...
- 利用CSS背景颜色属性使父级div背景透明同时避免子级标签透明。
实现背景色透明效果的代码 实现各个浏览器中具备良好的透明特性的效果,IE中使用私有滤镜filter,高端浏览器使用CSS3中的rgba属性. 输入十六进制的颜色值以及透明度,自动在IE的过渡滤镜以及C ...
- Android简单介绍SharedPreference,内部文件,sdcard数据存储
SharedPreference 以xml的结构储存简单的数据,储存在data/data/程序包名/shared_prefs文件夹中 使用方式 创建对象的方式有三种 Context 的 getShar ...
- ExtPB.Net:窗体应用技巧(2)在树形导航下打开弹出的win窗口
ExtPB.Net的demo程序有个树形导航菜单,里面的菜单打开的窗口放在右边的TabStrip控件中.我们可以设计win通过导航打开,但有时我们希望以弹出窗口的形式打开它,但怎么办呢?现在可以这样修 ...