Django 是由 Python 開發(fā)的一個(gè)免費(fèi)的開源網(wǎng)站框架,可以用于快速搭建高性能,優(yōu)雅的網(wǎng)站!以下是小編為你整理的如何學(xué)會(huì)python編程 ?
1. Django是 python 語言寫的一個(gè)網(wǎng)絡(luò)框架包,所以你得知道一些 Python 基礎(chǔ)知識(shí)。 ?
2. 其次你*有一些做網(wǎng)站的經(jīng)驗(yàn),懂一些網(wǎng)頁 HTML, CSS, JavaScript 的知識(shí)。 ?
沒有經(jīng)驗(yàn)也沒有關(guān)系,慢慢來就好了,你一定可以學(xué)會(huì),Django 很簡(jiǎn)單! ?
Django 特點(diǎn) ?
強(qiáng)大的數(shù)據(jù)庫功能
?
用python的類繼承,幾行代碼就可以擁有一個(gè)豐富,動(dòng)態(tài)的數(shù)據(jù)庫操作接口(API),如果需要你也能執(zhí)行SQL語句 ?
自帶的強(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)易,代碼,樣式分開設(shè)計(jì),更容易管理。 ?
緩存系統(tǒng) ?
與memcached或其它的緩存系統(tǒng)聯(lián)用,更出色的表現(xiàn),更快的加載速度。 ?
國際化 ?
完全支持多語言應(yīng)用,允許你定義翻譯的字符,輕松翻譯成不同*的語言。 ?
函數(shù)式編程允許變量指向函數(shù),直接對(duì)變量的調(diào)用和調(diào)用這個(gè)函數(shù)是一樣的效果; ?
接收參數(shù)是函數(shù)的函數(shù),同時(shí)也稱高階函數(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,并且通過f函數(shù)依次作用在list的每一個(gè)元素上返回一個(gè)新的list。 ?
b)、使用:map(function,list) ?
c)、例子: ?
假設(shè)用戶輸入的英文名字不規(guī)范,沒有按照首字母大寫,后續(xù)字母小寫的規(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(),但沒有求積的函數(shù),請(qǐng)利用recude()來求積: ?
輸入:[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)行過濾,返回true or false,filter()函數(shù)根據(jù)判斷結(jié)果自動(dòng)過濾不符合條件的元素,返回符合條件的元素組成新的list。 ?
b)、調(diào)用:filter(function,list) ?
c)、例子:請(qǐng)利用filter()過濾出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)地打印出來啦。 ?
>>> 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)容包起來,引號(hào)里的換行符就可以打印出來啦,方便直觀。 ?
當(dāng)然前面加上r也是有同樣效果的,下次看到不要驚奇。 ?
python里的變量是區(qū)分大小寫的,前面我們已經(jīng)介紹過來,再來通過布爾值來驗(yàn)證一下。
?
>>> true ?
Traceback (most recent call last): ?
File "", line 1, in ?
true ?
NameError: name 'true' is not defined ?
>>> True ?
True ?
定義一個(gè)公司的類
# -*- coding: utf-8 -*-
class Group:
weizhi = '大陸'
def __init__(self):
print('啟動(dòng)資金是100萬')
self.money = 1000000
def goumaishebei(self):
print('需要29萬')
self.money = 710000
print('還剩余資金%s'%self.money)
a = Group()
print('公司位于',a.weizhi)
a.goumaishebei()
類的名稱是Group;
屬性是位于大陸;
a是一個(gè)具體的公司。 ?
2
然后再來一個(gè)子公司的類:
class s_Group(Group):
def goumaixinshebei(self):
print('需要1萬')
self.money = 990000
print('剩余資金是%s'%self.money)
aa = s_Group()
其中,類的名稱是s_Group;
s_Group繼承了Group,所以Group成為了s_Group的變量;
aa是一個(gè)子公司,繼承了Group的100萬啟動(dòng)資金。