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;
浙公网安备 33010602011771号