Python的內置對象
Python支持基本的數學運算,值得一提的是乘方運算 **,例如2**100表示2的100次方。還有一些內置的數學模塊可以使用,例如math和random。
[python] view plain copy
import math
print math.pi
print math.sqrt(96)
import random
print random.random()
print random.choice([1,2,3,4])
模塊re支持字符串的模式匹配。例如:
import re
match = re.match('/(.*)/(.*)/(.*)', '/usr/home/bin')
print match.group(1)
print match.groups()
輸出結果爲:
[python] view plain copy
usr
('usr', 'home', 'bin')
Python支持複數類型、無窮精度整數類型、固定精度十進制類型。
在Python中,整數一般以C語言中的長整型表示(注意:不是Python中的長整型),當一個整數超過32位時會自動轉換爲長整型。複數在內部是通過一對浮點數來表示的。
Python表達式操作符
賦值語句建立對象引用值,變量名在首次賦值時會被創建,變量名在引用前必須先賦值。Python中賦值語句的形式如下表:
def中還可以使用lambda表達式。例如:
func(): x = action = (n: x**n) action f = func() f()
輸出結果爲:
[python] view plain copy
64
Python函數中,不可變參數(例如數字和字符串)是“通過值”進行傳遞的,可變對象(例如列表和字典)是通過“指針”進行傳遞的。例如:
func(,b): = b.append() x = y = [] func(x,y) x,y
結果爲:
[python] view plain copy
0 [0, 1]
Python函數的返回值可以有多個變量,相當於返回的是一個元組,只是圓括號()被省略了。例如:
set(,): a = b = [,,] a,b x = y = [,,] x,y = set(x,y) x y
輸出結果爲:
[python] view plain copy
3.14
[1, 2, 3]
Python支持關鍵字參數,所有基於位置的參數將首先按照從左到右的順序匹配頭部的參數,之後再進行基於變量名的關鍵字匹配。
fun(a,b,c): a,b,c fun(,=,=) fun(=,=,=)
輸出結果爲:
[python] view plain copy
1 2 3
1 2 3
默認參數和關鍵字參數可以一起使用。
fun(a,b=,c=): a,b,c fun(,=)
輸出結果爲:
[python] view plain copy
1 2 4
Python還支持函數的任意參數。第一種方法是在元組中收集不匹配的任意參數。第二種方法是在字典中收集不匹配的關鍵字參數。
func(a, *, **kargs): a kargs func(,,,=,=)
輸出結果爲:
[python] view plain copy
1
(2, 3)
{'y': 2, 'x': 1}
在函數調用時也可以使用*語法,來分解參數的集合。
func(a,b,c,d): a,b,c,d func(*(,,,)) func(,*(,),**{:}) func(,=,*(,),**{:})
輸出結果爲:
[python] view plain copy
1 2 3 4
1 2 3 4
1 2 3 4
f = x,y,z : x+y+z f(,,) g = x,y=,z=: x+y+z g(,=,=)
結果:
6
10
L = [(x: x**), (x: x**), (x: x**)] L[](),L[](),L[]() D = {:(: +), :(: *), :(: **)} D[](),D[](),D[]()
結果:
4 8 16
5 6 8
lambda表達式可以嵌套使用,但是從可讀性的角度來說,應儘量避免使用嵌套的lambda表達式。
inc(x): x+L = [,,,] (inc,L) ((x: x+),L)
結果:
[11, 12, 13, 14]
[11, 12, 13, 14]
[x**x ()] ((x: x**), ())
結果:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
[x+y x () x%== y () y%==]
結果:[1, 3, 5, 7, 9, 3, 5, 7, 9, 11, 5, 7, 9, 11, 13]
gensquares(N): i (N): i**i gensquares(): i,
結果:
0 1 4 9 16
saver(x=[]): x.append() x saver([]) saver() saver() saver()
結果:
[2, 1]
[1]
[1, 1]
[1, 1, 1]