类型转换:

1.str(),repr(),format():将非字符串数据转换为字符串

str():对象序列化的结果,相当于print输出

repr():程序中某个对象精确值

format():利用特定格式转换为字符串,format函数用法见后面

2.int():转为整数形

int函数也可以使用进制:(这个在前面已经提到过的)

Int转换类型并给定进制的方法,并不是都可行:

3.complex():转换为复数:

4.chr():将整数转换为字符串

5.ord():将字符串转为整数值

6.hex():将整数转为16进制字符

7.bin():将整数转为2进制字符

8.oct():将整数转为8进制字符

  • 注意:只有字符串能转换成整形的同时,里面的数字不能大于给定的进制数才行

9.float():转为浮点型

(math模块下的floor():取整,舍小数部分,类似取整,前面有介绍)

10.list(s):将字符串s转为列表

11.tuple(s):将字符串s转为元祖

12.set(s):将字符串s转为集合

13.forzenset(s):将字符串s转为不可变集合

以上的都很简单,不再演示,自己下去操作回味

divmod函数

返回一个元组:

进阶级算术操作

类似switch语法,但是python不含有此用法,不过字典方法可以代替(需要对函数,字典,有一定了解再看)

例:做一个简单的计算器:(操作环境在linux下)

使用字典简化代码:

总结:

#-*- coding:utf-8 -*-

#
from  __future__  import  division
x=1;y=2
operator='/'
result={
    '+':x+y,
    '-':x=y,
    '*':x*y,
    '/':x/y,
    }
print result.get(operator)

三元表达式

enumerate()

产生用于迭代的(索引,值)对,enumarate方便同时获取序列中每个元素的索引及对应元素本身

断言:assert

当这个关键字后边的条件为假的时候,程序自动崩溃并抛出AssertionError的异常

sort和sorted的区别:

由此可见,sort只对数字做排序,而sorted可以对数字,字符串排序

python2里使用cmp函数(compare,cmp(x,y)函数会在x<y时返回负数,会在x>y返回正数,x==y返回0)(python3里没有cmp,使用报错)

numbers.sort(cmp)自动比较并从小到大排列

使用sort和sorted方法一定要注意:不能用reversed,会报错:

  • 为什么会有reversed,因为python自带的IDLE会自动补齐成reversed

使用sort方法中的key参数:

字典方法:

下面字典的方法都是python2的,python3里并没有:

iteritems():不转换,在迭代中不断给出tuple,所以,iteritems不占用额外的内存,做迭代(遍历所有元素)使用,返回一个迭代器对象,遍历结束则结束,再次使用next()则报错。不会再从头开始:

iterkeys():返回一个迭代器对象,遍历所有字典的key值,同iteritems()

itervalues():不转换,会在迭代过程中依次从dict中取出value,所以itervalues比values节省生成list所需的内存,返回一个迭代器对象,,遍历所有字典的value值,同iteritems()

viewitems():显示字典所有的元素并以元组形式拆分显示键值,以dict_items()方式显示,因为内置函数dict()本就是创建一个字典的函数,同list(),tuple()……

viewkeys():显示字典所有的键,同viewitems()

viewvalues():显示字典所有的值,同viewitems()

几个概念

循环:(loop)指的是在满足条件的情况下,重复执行同一段代码,比如while语句

迭代:(iterate)指的是按照某种顺序逐个访问列表中的每一项(或者说重复做一件事),或者说重复反馈过程的活动,目的为了接近并达到所需的目标或结果,每一次对过程重复成为一次迭代,每一次迭代的结果都会被用来下一次迭代的初始值,比如for语句(while也可以)

递归:(recursion)指的是一个函数不断调用自身的行为,比如以编程方式输出著名的斐波纳契数列

遍历:(traversal)指的是按照一定的规则访问树形结构的每一个节点,而且每个节点都只访问一次

可迭代对象

1.什么是可迭代对象:

即此对象可以被一个接一个的调取,比如列表,字符串等,而整形数则不可迭代

2.怎么判断是否可迭代:

1).在开发过程中如果报错提示不可迭代就是不是可迭代对象

2).通过collections模块的iterable类型判断,也是最好的办法之一

3).通过iter()内置函数判断,如果不可迭代会报错,最好办法之二

4).对象继承了__iter__魔法方法(关于魔法方法后面类的章节会详解)

哪些对象实现了__iter__方法:

  • 序列类型:list,str,tuple
  • 非序列类型:dict,file
  • 用户自定义的一些包含了__iter__或者__getitem__()方法的类

洗礼灵魂,修炼python(18)--温故加知新的更多相关文章

  1. 温故而后知新——对ado.net中常用对象的一些解释

    在使用ado.net连接数据库获取数据,一般的步骤是: 1.设置好web.config    //用来设置服务器数据库的地址以及登录名密码 2.创建Connection对象    //用来创建访问数据 ...

  2. 洗礼灵魂,修炼python(85)-- 知识拾遗篇 —— 深度剖析让人幽怨的编码

    编码 这篇博文的主题是,编码问题,老生常谈的问题了对吧?从我这一套的文章来看,前面已经提到好多次编码问题了,的确这个确实很重要,这可是难道了很多能人异士的,当你以为你学懂了,在研究爬虫时你发现你错了, ...

  3. 洗礼灵魂,修炼python(69)--爬虫篇—番外篇之feedparser模块

    feedparser模块 1.简介 feedparser是一个Python的Feed解析库,可以处理RSS ,CDF,Atom .使用它我们可从任何 RSS 或 Atom 订阅源得到标题.链接和文章的 ...

  4. Python模块的动态加载机制

    Python在运行环境初始化中,就将sys module加载到了内存中, 实际上,Python是将一大批的module加载到了内存中.但是为了使local名字空间能够达到最干净的效果,Python并没 ...

  5. python数据分析笔记——数据加载与整理]

    [ python数据分析笔记——数据加载与整理] https://mp.weixin.qq.com/s?__biz=MjM5MDM3Nzg0NA==&mid=2651588899&id ...

  6. Python之pandas数据加载、存储

    Python之pandas数据加载.存储 0. 输入与输出大致可分为三类: 0.1 读取文本文件和其他更好效的磁盘存储格式 2.2 使用数据库中的数据 0.3 利用Web API操作网络资源 1. 读 ...

  7. Python字典列表字段重组形成新的字典

    最近遇到这样一个需求,需要将字典列表中的字段进行重组,形成一个新的字典.举个例子吧: l1 = [{"x": 22, "y": 22, "demand ...

  8. WP8_GestureListener实现列表向下滑动加载新数据

    利用GestureListener的OnDragCompleted事件,实现列表向下滑动时,加载新的数据: (不建议使用 Touch.FrameReported+=Touch_FrameReporte ...

  9. 在浏览器窗口中加载新的url

    通常,在前端页面中如果需要跳转到指定页面,可以通过<a>标签进行跳转.而在某些情况下,比如ajax调用之后想直接跳转到指定页面,想跳转页面不能再用<a>标签实现.此时,可以通过 ...

随机推荐

  1. Python--DBUtil

    Python--DBUtil包 1 简介 DBUtils是一套Python数据库连接池包,并允许对非线程安全的数据库接口进行线程安全包装.DBUtils来自Webware for Python. DB ...

  2. docker学习篇(一) ----入门篇

    什么是docker docker自2013年诞生以来已有5年了,最初基于Google公司的go语言实现的,项目代码在GitHub上进行维护. 项目地址:https://github.com/moby/ ...

  3. FF笔试题整理

    一.选择题 1.怎样能唯一确定一颗二叉树? [解析] 只要知道中序遍历顺序,再加上其余两个遍历中任意一个都可以唯一确定一个二叉树.如果不知道中序遍历顺序,则无法确定. [反例] A-B-C,A是跟,B ...

  4. vue父子组件传递参数之props

    vue中父组件通过props传递数据给子组件, props有两种传递方式 1.props:['msg']2.props: { msg:{ type:String, default:"&quo ...

  5. Kafka实战-简单示例

    1.概述 上一篇博客<Kafka实战-Kafka Cluster>中,为大家介绍了Kafka集群的安装部署,以及对Kafka集群Producer/Consumer.HA等做了相关测试,今天 ...

  6. ProxySQL Cluster 高可用集群环境部署记录

    ProxySQL在早期版本若需要做高可用,需要搭建两个实例,进行冗余.但两个ProxySQL实例之间的数据并不能共通,在主实例上配置后,仍需要在备用节点上进行配置,对管理来说非常不方便.但是Proxy ...

  7. 深度学习论文翻译解析(三):Detecting Text in Natural Image with Connectionist Text Proposal Network

    论文标题:Detecting Text in Natural Image with Connectionist Text Proposal Network 论文作者:Zhi Tian , Weilin ...

  8. Mybatis之分页插件pagehelper的简单使用

    最近从家里回来之后一直在想着减肥的事情,一个月都没更新博客了,今天下午没睡午觉就想着把mybatis的分页插件了解一下,由于上个月重新恢复了系统,之前创建的项目都没了,又重新创建了一个项目. 一.创建 ...

  9. 内置函数二(lambda函数,sorted(),filter(),map(),递归函数,二分法查找)

    一,匿名函数 lambda表⽰示的是匿名函数. 不需要⽤用def来声明, ⼀一句句话就可以声明出⼀一个函数 语法:    函数名 = lambda 参数: 返回值 注意: 1. 函数的参数可以有多个. ...

  10. .net core Identity集成IdentityServer4 (1)基本操作

    一. 新建asp.net core identity项目 新建项目->asp.net core web应用程序-> web应用程序(模型视图控制器)&更改身份验证为个人. 新建一个 ...