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模块 ...
随机推荐
- linux2.6 内存管理——逻辑地址转换为线性地址(逻辑地址、线性地址、物理地址、虚拟地址)
Linux系统中的物理存储空间和虚拟存储空间的地址范围分别都是从0x00000000到0xFFFFFFFF,共4GB,但物理存储空间与虚拟存储空间布局完全不同.Linux运行在虚拟存储空间,并负责把系 ...
- js模块定义——支持CMD&AMD&直接加载
/* animate */ //直接加载 (function() { var animate = {} //balabala window.animate = animate; })(); //AMD ...
- Python(六)面向对象、异常处理、反射、单例模式
本章内容: 创建类和对象 面向对象三大特性(封装.继承.多态) 类的成员(字段.方法.属性) 类成员的修饰符(公有.私有) 类的特殊成员 isinstance(obj, cls) & issu ...
- 代码的坏味道(5)——数据泥团(Data Clumps)
坏味道--数据泥团(Data Clumps) 特征 有时,代码的不同部分包含相同的变量组(例如用于连接到数据库的参数).这些绑在一起出现的数据应该拥有自己的对象. 问题原因 通常,数据泥团的出现时因为 ...
- 透过HT for Web 3D看动画Easing函数本质
http://www.hightopo.com/guide/guide/plugin/form/examples/example_easing.html 50年前的这个月诞生了BASIC这门计算机语言 ...
- Basic Tutorials of Redis(2) - String
This post is mainly about how to use the commands to handle the Strings of Redis.And I will show you ...
- [SQL Server] 特殊字符、上标、下标处理
今天遇到一个问题是往 SQL Server 中导入像m².m³这样的单位数据,可是在 SQL Server 中查看到的都是 m2.m3,于是在网上查了一下资料,顺便摘录下来供日后查阅. 一 Wind ...
- 面向云的.net core开发框架
目录结构 1 为什么搭建面向云的.Net core云开发框架 2 主要设计思路 3 项目解决方案 4 基础设施层 4.1反射工具 4.2多级可换源的配置(上) 42多级可换源的配置(下) 4.3可配置 ...
- 新手入门Underscore.js 中文(template)
Underscore.js是一个很精干的库,压缩后只有4KB.它提供了几十种函数式编程的方法,弥补了标准库的不足,大大方便了javaScript的编程.MVC框架Backbone.js就将这个库作为自 ...
- C++02.访问控制
1.class是struct的扩展,它包括数据成员和成员函数. 2.在C++中,有三种访问权限: (1)private:默认,只供类内部的函数使用. (2)public:类外的程序可以使用. (3)p ...