• python学习足迹(1)


    这周有一个项目要用python来写,没有办法,只好学习这个东西了。比起C#+VS.Net这种黄金组合来,python+vi用起来还是非常不舒服,但是工作还是比兴趣更重要,不喜欢也要硬学。

    首先感觉python在总体概念上和C#有很多相似的地方,比如也要生产中间byte code.

    1,奇怪的运算符号: divmod
    >>> (a, b) = divmod(10,3)
    >>>print a, b 就是 3 1

    2,逻辑表达式:
    和C一样,没有boolean类型,false可以用下面的东西来表示: None, 0, 0.0, '',"",[],(),{}来表示。

    3,语法以缩进来区分,要特别小心。

    4, list, 和C#中的arraylist差不多。用[]表示
    a=[ 'a', 'b' ],那么a[0]='a', a[1]='b',用len(a)可以得到list的长度,2。

    5,子list的提取,可谓花样繁多。
    a=[1,2,3,4,5]
    a[1,4] = [2,3,4] 实际上就是a[1],a[2],a[3],注意,不包括后面的a[4].
    a[-1]=5, -表示从后面取。
    a[:]是全部
    a[:3]是a[0],a[1],a[2]
    a[3:]是从a[3]后面的所有的,就是a[3],a[4]
    a[1:-1] 就是a[1],a[2],a[3], 不包括a[-1](即a[4])

    6,处理list的方法
    a=[0,1,2,3,4,5]
    a.append(6),那么a=[0,1,2,3,4,5,6]
    a.acount(1) = 1,用来计算1在这个list中出现的次数。
    len(a)是长度,这时候=7
    a.extend 还可以把list当参数,比如a.extend([7,8])
    a.index(6)返回6在这个list中的位置,=6,如果你a.index(10),就会抛出一个异常,我也不知道为什么象其他语言一样,返回-1,这个就是我以前说的程序语言中的方言。
    a.insert(0, -1)在0的位置插入-1,这时候a=[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8]
    a.pop(),删除并返回最后一个元素。 a.pop()=8,这时候a=[-1, 0, 1, 2, 3, 4, 5, 6, 7]
    a.pop(1),可以pop出a[1]。a.pop(0)是pop出a[0]
    a.remove(7),找到第一个7,然后删除这个找到的7,这时候a=[-1, 0, 1, 2, 3, 4, 5, 6]
    a.reverse(),顺序颠倒,这时候a=[6, 5, 4, 3, 2, 1, 0, -1]
    a.sort()排序,这时候 a 会以大小排序,a=[-1, 0, 1, 2, 3, 4, 5, 6]
    a.sort(fun)象C#一样,也可以排序函数。
    就这些操作函数了,如果你象知道所有的对a的操作函数,dir(a)会给你列出来。比如这里等于:
    ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__repr__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__str__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

    7,针对list的一个新奇的循环
    [ express1 for k in list if express2]
    比如: a=[1,2,'a']
    [k+1 for k in a if type(k)==types.IntType ] 会得到[2,3],当然首先要import  types

    8,字符串
    """就是HERE Document.比如
    """
    line1
    line 2
    """

    特殊符号。\u{xxxx} unicode, \xhh,十六进制, \0 8进制。

    针对字符串的转换:
    float(str),转换为float, a='2.3', float(a) = 2.3
    int(str), 转换为int,注意必须要能转换为int, a='2.3', int(a)会出错。a='2.0', int(a)也出错。a='2'就不出错了
    int(str, base)根据进制转。 a=‘15’, int(a,8) = 13,意思是把8进制的15转换为10进制的13,最后结果一定是10进制。
    long(str), long(str,base)转换为long型。

    字符串操作:
    连接: +, 'hello' + ' ' + 'world'
    capitalize()首字母变成大写. 'hello world'.capitalize() = 'Hello world'
    lower()变成小写,upper()变成大写, swapcase()大小写互换。
    len()得到字符串长度,a='abc', a[0]='a', a[-1]='c'

    判断字符串的类别:
    str.isalnum(), 匹配0-9,a-zA-Z
    str.isalpha(), a-zA-Z
    str.isdigit(), 0-9
    str.islower(), a-z
    str.isupper(), A-Z
    str.istitle(),首字母大写
    str.isspace(),空白字符

    字符串查找:
    a.find('a')找'a'的位置,找不到返回-1
    a.find('a', 1)从a[1]开始找
    a.find('a', 1, 3),从a[1]到a[3]的这段找。
    a.rfind()从后面找
    s.index()和find()一样,找不到会返回异常
    s.rindex()从后面找
    s.count('a'),出现的次数。

    字符串合并和分解:
    str.join(words), s.split(' ')
    '\n'.join(['a','b','c']) = 'a\nb\nc'
    'have a good day'.split(' ') = ['have', 'a', 'good', 'day']

  • 相关阅读:
    PHP IIS SPY
    Java 教程整理:基础、项目全都有
    14门Linux课程,打通你Linux的任督二脉!
    给缺少Python项目实战经验的人
    Spark 简介与安装部署
    仿OpenStack开发云计算管理软件”--熟悉开发环境
    如何利用《C++ Primer》学习C++?
    J2SE核心开发实战(二)——字符串与包装类
    J2SE核心开发实战(一)——认识J2SE
    pygame开发PC端微信打飞机游戏
  • 原文地址:https://www.cnblogs.com/Hacker/p/31333.html
Copyright © 2020-2023  润新知