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的更多相关文章

  1. Python学习--04条件控制与循环结构

    Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...

  2. Python学习--01入门

    Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...

  3. Python 学习小结

    python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...

  4. Python学习路径及练手项目合集

    Python学习路径及练手项目合集 https://zhuanlan.zhihu.com/p/23561159

  5. python学习笔记-python程序运行

    小白初学python,写下自己的一些想法.大神请忽略. 安装python编辑器,并配置环境(见http://www.cnblogs.com/lynn-li/p/5885001.html中 python ...

  6. Python学习记录day6

    title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...

  7. Python学习记录day5

    title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...

  8. [Python] 学习资料汇总

    Python是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大且完善的通用型语言,已经有十多年的发展历史,成熟且稳定.Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用 ...

  9. Python学习之路【目录】

    本系列博文包含 Python基础.前端开发.Web框架.缓存以及队列等,希望可以给正在学习编程的童鞋提供一点帮助!!! 目录: Python学习[第一篇]python简介 Python学习[第二篇]p ...

  10. python学习笔记系列----(八)python常用的标准库

    终于学到了python手册的最后一部分:常用标准库.这部分内容主要就是介绍了一些基础的常用的基础库,可以大概了解下,在以后真正使用的时候也能想起来再拿出来用. 8.1 操作系统接口模块:OS OS模块 ...

随机推荐

  1. Chrome浏览器Cookie解密

    做过 web 开发的都知道:浏览器会把重要的认证登录认证信息存放到 cookie 中,在 cookie 有效期内,再次访问这个网站的时候就可以直接从 cookie 中获取到登录信息,这样就可以实现自动 ...

  2. Hibernate(1)——数据访问层的架构模式

    俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及到的知识点总结如下: 数据库的概念.逻辑.数据模型概念 应用程序的分层体系结构发展 MVC设计模式与四层结构的对应关系 持久层的设 ...

  3. 4.JAVA之GUI编程事件监听机制

    事件监听机制的特点: 1.事件源 2.事件 3.监听器 4.事件处理 事件源:就是awt包或者swing包中的那些图形用户界面组件.(如:按钮) 事件:每一个事件源都有自己特点有的对应事件和共性事件. ...

  4. vertical-align浅析

    一直以来都搞不懂vertical-align,它适用于什么元素,它的对齐规则是什么样的.索性查了下w3c相关规范,发现行高和基线对齐的规范说明里有如下内容: This section is being ...

  5. PowerShell 操作 Azure SQL Active Geo-Replication 实战

    <Azure SQL Database Active Geo-Replication简介>一文中,我们比较全面的介绍了 Azure SQL Database Active Geo-Repl ...

  6. LCM性质 + 组合数 - HDU 5407 CRB and Candies

    CRB and Candies Problem's Link Mean: 给定一个数n,求LCM(C(n,0),C(n,1),C(n,2)...C(n,n))的值,(n<=1e6). analy ...

  7. Hive技术架构

    一.Hive概念 Facebook为了解决海量日志数据的分析而开发了Hive,Hive是一种用SQL语句来读写.管理存储在分布式存储设备上的大数据集的数据仓库框架. 1. 数据是存储在HDFS上的,H ...

  8. JSON扩展类——JsonHelper

    1.引用Newtonsoft.Json库(JSON.NET). 2.复制粘贴JsonHelper吧. 源代码: using System; using System.Collections.Gener ...

  9. C# - 多线程 之 Process与Thread与ThreadPool

    Process 进程类, // 提供对本地和远程进程的访问,启动/停止本地系统进程 public class Process : Component { public int Id { get; } ...

  10. C#多线程--线程池(ThreadPool)

    先引入一下线程池的概念: 百度百科:线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务.线程池线程都是后台线程.每个线程都使用默认的堆栈大小,以默认的优先级运行, ...