Django 是由 Python 開(kāi)發(fā)的一個(gè)免費(fèi)的開(kāi)源網(wǎng)站框架,可以用于快速搭建高性能,優(yōu)雅的網(wǎng)站!以下是小編為你整理的python學(xué)習(xí)怎么樣學(xué) ?
1. Django是 python 語(yǔ)言寫(xiě)的一個(gè)網(wǎng)絡(luò)框架包,所以你得知道一些 Python 基礎(chǔ)知識(shí)。 ?
2. 其次你*有一些做網(wǎng)站的經(jīng)驗(yàn),懂一些網(wǎng)頁(yè) HTML, CSS, JavaScript 的知識(shí)。 ?
沒(méi)有經(jīng)驗(yàn)也沒(méi)有關(guān)系,慢慢來(lái)就好了,你一定可以學(xué)會(huì),Django 很簡(jiǎn)單! ?
Django 特點(diǎn) ?
強(qiáng)大的數(shù)據(jù)庫(kù)功能
?
用python的類(lèi)繼承,幾行代碼就可以擁有一個(gè)豐富,動(dòng)態(tài)的數(shù)據(jù)庫(kù)操作接口(API),如果需要你也能執(zhí)行SQL語(yǔ)句 ?
自帶的強(qiáng)大的后臺(tái)功能 ?
幾行簡(jiǎn)單的代碼就讓你的網(wǎng)站擁有一個(gè)強(qiáng)大的后臺(tái),輕松管理你的內(nèi)容! ?
優(yōu)雅的網(wǎng)址 ?
用正則匹配網(wǎng)址,傳遞到對(duì)應(yīng)函數(shù),隨意定義,如你所想! ?
模板系統(tǒng) ?
強(qiáng)大,易擴(kuò)展的模板系統(tǒng),設(shè)計(jì)簡(jiǎn)易,代碼,樣式分開(kāi)設(shè)計(jì),更容易管理。 ?
緩存系統(tǒng) ?
與memcached或其它的緩存系統(tǒng)聯(lián)用,更出色的表現(xiàn),更快的加載速度。 ?
國(guó)際化 ?
完全支持多語(yǔ)言應(yīng)用,允許你定義翻譯的字符,輕松翻譯成不同*的語(yǔ)言。 ?
函數(shù)式編程允許變量指向函數(shù),直接對(duì)變量的調(diào)用和調(diào)用這個(gè)函數(shù)是一樣的效果; ?
接收參數(shù)是函數(shù)的函數(shù),同時(shí)也稱(chēng)高階函數(shù)。 ?
例子:利用add(x,y,f)函數(shù),計(jì)算:x,y的平方根之和: ?
import math ?
def add(x,y,f): ?
return f(x)+f(y) ?
add(9,25,math.sqrt) ?
END ?
map()高階函數(shù) ?
1 ?
a)、map()函數(shù):接收一個(gè)f函數(shù)以及一個(gè)list,并且通過(guò)f函數(shù)依次作用在list的每一個(gè)元素上返回一個(gè)新的list。 ?
b)、使用:map(function,list) ?
c)、例子: ?
假設(shè)用戶(hù)輸入的英文名字不規(guī)范,沒(méi)有按照首字母大寫(xiě),后續(xù)字母小寫(xiě)的規(guī)則,請(qǐng)利用map()函數(shù),把一個(gè)list(包含若干不規(guī)范的英文名字)變成一個(gè)包含規(guī)范英文名字的list: ?
輸入:['adam', 'LISA', 'barT'] ?
輸出:['Adam', 'Lisa', 'Bart'] ?
def format_name(l): ?
return l[0:1].upper()+l[1:].lower() ?
print map(format_name,['adam', 'LISA', 'barT']) ?
reduce()高階函數(shù) ?
a)、reduce()函數(shù):允許接收一個(gè)函數(shù)f和一個(gè)list;而reduce()傳入的函數(shù)f必須接收兩個(gè)參數(shù)。reduce對(duì)list中的每一個(gè)元素反復(fù)調(diào)用函數(shù)f并返回結(jié)果,然后將結(jié)果作為新的參數(shù)傳入函數(shù)f . ?
b)、調(diào)用:reduce(function,list) ?
c)、例子:Python內(nèi)置了求和函數(shù)sum(),但沒(méi)有求積的函數(shù),請(qǐng)利用recude()來(lái)求積: ?
輸入:[2, 4, 5, 7, 12] ?
輸出:2*4*5*7*12的結(jié)果 ?
def prod(x,y): ?
return x*y ?
print reduce(prod,[2,4,5,7,12]) ?
END ?
filter()高階函數(shù) ?
1 ?
a)、filter():接收一個(gè)函數(shù)f和list。函數(shù)f對(duì)list中的每一個(gè)元素進(jìn)行過(guò)濾,返回true or false,filter()函數(shù)根據(jù)判斷結(jié)果自動(dòng)過(guò)濾不符合條件的元素,返回符合條件的元素組成新的list。 ?
b)、調(diào)用:filter(function,list) ?
c)、例子:請(qǐng)利用filter()過(guò)濾出1~100中平方根是整數(shù)的數(shù),即結(jié)果應(yīng)該是: ?
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100] ?
import math ?
def is_sqr(l): ?
s=math.sqrt(l) ?
return int(s)==s ?
print filter(is_sqr,range(1,101)) ?
print函數(shù)
我們?cè)谑褂胮rint()函數(shù)的時(shí)候如果在參數(shù)前面加上r,那么后面字符串里的內(nèi)容就原封不動(dòng)地打印出來(lái)啦。 ?
>>> print(r'\nt') ?
\nt ?
>>> print('\nt\') ?
SyntaxError: EOL while scanning string literal ?
>>> print('\nt\') ?
n ?
>>> print('\nt\\') ?
n \ ?
你知道為什么輸入print('\nt\')報(bào)錯(cuò);而輸入print('\nt\\')可以正常運(yùn)行嗎?因?yàn)楹竺娴媒有┺D(zhuǎn)義字符。 ?
如果我們想讓每個(gè)單詞單獨(dú)輸出一行怎么辦呢?n雖然是一種方法,但是讓代碼很難看。 ?
在print()里,用''' '''將要輸出顯示的內(nèi)容包起來(lái),引號(hào)里的換行符就可以打印出來(lái)啦,方便直觀。 ?
當(dāng)然前面加上r也是有同樣效果的,下次看到不要驚奇。 ?
python里的變量是區(qū)分大小寫(xiě)的,前面我們已經(jīng)介紹過(guò)來(lái),再來(lái)通過(guò)布爾值來(lái)驗(yàn)證一下。
?
>>> true ?
Traceback (most recent call last): ?
File "", line 1, in ?
true ?
NameError: name 'true' is not defined ?
>>> True ?
True ?
python基礎(chǔ)知識(shí) 學(xué)習(xí)每一種新的編程語(yǔ)言都是從最基本的開(kāi)始,對(duì)于python而言也是需要先學(xué)習(xí)其基礎(chǔ)知識(shí)。 ?
python的基礎(chǔ)知識(shí)包括:變量和數(shù)據(jù)類(lèi)型,List和Tuple,條件判斷和循環(huán),Dict和Set, 函數(shù),切片,迭代和列表生成式。 ?
注意:學(xué)習(xí)基礎(chǔ)知識(shí)切莫著急,一定要打好基礎(chǔ),這樣才會(huì)更好的應(yīng)用python。 ?
進(jìn)階知識(shí):學(xué)完掌握基礎(chǔ)知識(shí)之后,就要學(xué)習(xí)進(jìn)階知識(shí)了。 ?
python的進(jìn)階知識(shí)包括:函數(shù)式編程,模塊,面向?qū)ο缶幊袒A(chǔ),類(lèi)的繼承和定制類(lèi)。 ?
python裝飾器:裝飾器是很重要的一個(gè)知識(shí)點(diǎn)。 ?
關(guān)于裝飾器需要涉及到函數(shù)作用域.閉包的使用和裝飾器的概念及使用。