zoukankan      html  css  js  c++  java
  • 洗礼灵魂,修炼python(18)--温故加知新

    类型转换:

    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__()方法的类
  • 相关阅读:
    php Windows系统 wamp集成环境下redis的使用
    IO流文件拷贝
    IO流框架
    Map集合
    泛型
    Deque(队列)
    List接口
    Iterator接口(迭代器)
    Java中的异常详解
    Java中的正则表达式
  • 原文地址:https://www.cnblogs.com/Eeyhan/p/7637645.html
Copyright © 2011-2022 走看看