python随手杂记-1

  python用了两三年了,但是基本没系统的看过。当时由于工作中有一些python代码需要维护,就顺手维护了一阵子。虽然也三三两两的写了些许代码, 主要是生成pdf报表的,但是基本都是些皮毛,也从未仔细的看过python手册和python语法。基本都是比葫芦画瓢的在用。虽然也看到前辈一些比较 酷的用法,但是我却基本从来没写过,例如lambda都很少用。近日又维护一个python工程,所以心血来潮准备系统的看下python手册。随手记下 一些有趣的东西,以备将来查询。当然了,和其他语言很相似的用法,我就不copy了。

由于是看python手册,所以顺序基本上也是按照手册的顺序来,当然,也都是摘要为主,感想为辅。想系统学习,还是去看手册和官网吧。大牛请绕行。谢谢。
转载请保留本条连接,转载www.871b.com. 谢谢!  我在cnblogs的博客是http://www.cnblogs.com/flyingleaf。

  • python的命令行用法
    这个按照手册的说法,就是可以当做计算器使用。很牛叉的计算器哦,比MS的windows自带的计算器的科学模式还牛叉。例如可以计算复数。实数用j表示,虚数用J表示。如果忘了什么是实数什么是虚数,请移步:复数百度百科。直接输入表达式,然后回车就能打印结果。期间可以用变量表示数字。
    >>> width = 20
    >>> height = 5*9
    >>> width * height
    900
    复数:
    >>> a=1.5+0.5j
    >>> a.real
    1.5
    >>> a.imag
    0.5
    复数运算:
    >>> 1j * 1J
    (-1+0j)
    >>> 1j * complex(0,1)
    (-1+0j)
    >>> 3+1j*3
    (3+3j)
    >>> (3+1j)*3
    (9+3j)
    >>> (1+2j)/(1+1j)
    (1.5+0.5j)
    
  • 字符串的截断
    以前我百度‘python 字符串截断’,总是看到
    >>>word = "abcde"
    >>> word[1:2]
    word

    就回去写代码了,知道冒号前后分别是位置,并且最后一个位置是不在子字符串之内的。但是今天发现一些好玩的。例如:
    >>>word[1:]
    bcde
    >>>word[-1]
    e
    >>>word[-2]
    #猜猜输出什么?
    d #猜对了吗?以为是de吧? :)
    >>>word[:-2] #还敢猜吗?
    abc #猜对了吗?
    >>>word[-0] #这个呢?
    a #因为-0==0,so。。。
    >>>word[-2:] #这样子也是可以的
    cde #如果不知道为啥,请想一想word[:-2]
     
  • 链表处理
    数字可以加乘,好玩吗?!看看这个例子
    
    >>> a = ['spam', 'eggs', 100, 1234]
    >>> a[0]
    'spam'
    >>> a[3]
    1234
    >>> a[-2]
    100
    >>> a[1:-1]
    ['eggs', 100]
    >>> a[:2] + ['bacon', 2*2]
    ['spam', 'eggs', 'bacon', 4]
    >>> 3*a[:3] + ['Boo!']
    ['spam', 'eggs', 100, 'spam', 'eggs', 100, 'spam', 'eggs', 100, 'Boo!']
    remove的时候,不仅仅可以用pop,当然,插入也不仅仅可用append,看看下面的代码:>>> # Replace some items:
    ... a[0:2] = [1, 12]
    >>> a
    [1, 12, 123, 1234]
    >>> # Remove some:
    ... a[0:2] = []
    >>> a
    [123, 1234]
    >>> # Insert some:
    ... a[1:1] = ['bletch', 'xyzzy']
    >>> a
    [123, 'bletch', 'xyzzy', 1234]
    >>> # Insert (a copy of) itself at the beginning
    >>> a[:0] = a
    >>> a
    [123, 'bletch', 'xyzzy', 1234, 123, 'bletch', 'xyzzy', 1234]
    >>> # Clear the list: replace all items with an empty list
    >>> a[:] = []
    >>> a
    []
    
  • 多重复值也不是奇怪的事情,很多语言都有,就带一句好了,这里用几行代码写个斐波那契数列:
    >>> a, b = 0, 1
    >>> while b < 1000:
    ...     print b,
    ...     a, b = b, a+b
    ... 
    1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
    
    唯一值得提醒下的就是,   a,b = b, a+b相当于 a = b;  b = a + b;
    
posted on 2012-12-21 13:11  flyingleaf  阅读(161)  评论(0)    收藏  举报