python基礎回顧

Python的內置對象

wKioL1dPiUjTogYkAABDQw26qTk250.jpg

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位時會自動轉換爲長整型。複數在內部是通過一對浮點數來表示的。

wKioL1dPijSzxbRlAABLJwEO4G8773.jpg


Python表達式操作符

wKioL1dPimKx7iaRAABTXkqPs6Q338.jpg


賦值語句建立對象引用值,變量名在首次賦值時會被創建,變量名在引用前必須先賦值。Python中賦值語句的形式如下表:

wKiom1dPicugmsFbAABNspAHU-U367.jpg


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 [01]  


Python函數的返回值可以有多個變量,相當於返回的是一個元組,只是圓括號()被省略了。例如:


set(,):
    a = b = [,,]
    a,b

x = y = [,,]
x,y = set(x,y)
x
y

輸出結果爲:

[python] view plain copy

3.14  

[123]  


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  

(23)  

{'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]


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章