1、python語言的學習流程:python
一、基礎知識:web
學習每一種新的編程語言都是從最基本的開始,對於python而言也是須要先學習其基礎知識。正則表達式
python的基礎知識包括:變量和數據類型,List和Tuple,條件判斷和循環,Dict和Set, 函數,切片,迭代和列表生成式。算法
注意:學習基礎知識切莫着急,必定要打好基礎,這樣纔會更好的應用python數據庫
二、進階知識:編程
學完掌握基礎知識以後,就要學習進階知識了。安全
python的進階知識包括:函數式編程,模塊,面向對象編程基礎,類的繼承和定製類數據結構
三、python裝飾器:閉包
裝飾器是很重要的一個知識點。app
關於裝飾器須要涉及到函數做用域.閉包的使用和裝飾器的概念及使用
四、高階知識:
文件處理,錯誤和異常和正則表達式
五、提高階段:
數據庫操做,Django框架和爬蟲技術
2、Python初學的17個學習小技巧
一、交換變量
有時候,當咱們要交換兩個變量的值時,一種常規的方法是建立一個臨時變量,而後用它來進行交換。例:
# 輸入
a = 5
b = 10
#建立臨時變量
temp = a
a = b
b = temp
print(a)
print(b)
但在Python中,其實咱們有一種更簡潔的寫法:
二、if 語句在行內
print "Hello" if True else "World"
>>> Hello
三、鏈接
下面的最後一種方式在綁定兩個不一樣類型的對象時顯得很酷。
nfc = ["Packers", "49ers"]
afc = ["Ravens", "Patriots"]
print nfc + afc
>>> [''Packers'', ''49ers'', ''Ravens'', ''Patriots'']
print str(1) + " world"
>>> 1 world
print `1` + " world"
>>> 1 world
print 1, "world"
>>> 1 world
print nfc, 1
>>> [''Packers'', ''49ers''] 1
四、計算技巧
#向下取整
print 5.0//2
>>> 2
# 2的5次方
print 2**5
>> 32
注意浮點數的除法
print .3/.1
>>> 2.9999999999999996
print .3//.1
>>> 2.0
五、數值比較
x = 2
if 3 > x > 1:
print x
>>> 2
if 1 < x > 0:
print x
>>> 2
六、兩個列表同時迭代
nfc = ["Packers", "49ers"]
afc = ["Ravens", "Patriots"]
for teama, teamb in zip(nfc, afc):
print teama + " vs. " + teamb
>>> Packers vs. Ravens
>>> 49ers vs. Patriots
七、帶索引的列表迭代
teams = ["Packers", "49ers", "Ravens", "Patriots"]
for index, team in enumerate(teams):
print index, team
>>> 0 Packers
>>> 1 49ers
>>> 2 Ravens
>>> 3 Patriots
八、列表推導
已知一個列表,刷選出偶數列表方法:
numbers = [1,2,3,4,5,6]
even = []
for number in numbers:
if number%2 == 0:
even.append(number)
九、用下面的代替
numbers = [1,2,3,4,5,6]
even = [number for number in numbers if number%2 == 0]
十、字典推導
teams = ["Packers", "49ers", "Ravens", "Patriots"]
print {key: value for value, key in enumerate(teams)}
>>> {''49ers'': 1, ''Ravens'': 2, ''Patriots'': 3, ''Packers'': 0}
十一、初始化列表的值
items = [0]*3
print items
>>> [0,0,0]
十二、將列表轉換成字符串
teams = ["Packers", "49ers", "Ravens", "Patriots"]
print ", ".join(teams)
>>> ''Packers, 49ers, Ravens, Patriots''
1三、從字典中獲取元素
不要用下列的方式
data = {''user'': 1, ''name'': ''Max'', ''three'': 4}
try:
is_admin = data[''admin'']
except KeyError:
is_admin = False
替換爲
data = {''user'': 1, ''name'': ''Max'', ''three'': 4}
is_admin = data.get(''admin'', False)
1四、獲取子列表
x = [1,2,3,4,5,6]
#前3個
print x[:3]
>>> [1,2,3]
#中間4個
print x[1:5]
>>> [2,3,4,5]
#最後3個
print x[-3:]
>>> [4,5,6]
#奇數項
print x[::2]
>>> [1,3,5]
#偶數項
print x[1::2]
>>> [2,4,6]
1五、60個字符解決FizzBuzz
前段時間Jeff Atwood 推廣了一個簡單的編程練習叫FizzBuzz,問題引用以下:
寫一個程序,打印數字1到100,3的倍數打印「Fizz」來替換這個數,5的倍數打印「Buzz」,對於既是3的倍數又是5的倍數的數字打印「FizzBuzz」。
這裏有一個簡短的方法解決這個問題:
for x in range(101):print"fizz"[x%34::]+"buzz"[x%54::]or x
1六、集合
用到Counter庫
from collections import Counter
print Counter("hello")
>>> Counter({''l'': 2, ''h'': 1, ''e'': 1, ''o'': 1})
1七、迭代工具
和collections庫同樣,還有一個庫叫itertools
from itertools import combinations
teams = ["Packers", "49ers", "Ravens", "Patriots"]
for game in combinations(teams, 2):
print game
>>> (''Packers'', ''49ers'')
>>> (''Packers'', ''Ravens'')
>>> (''Packers'', ''Patriots'')
>>> (''49ers'', ''Ravens'')
>>> (''49ers'', ''Patriots'')
>>> (''Ravens'', ''Patriots'')
在python中,True和False是全局變量,所以:
False = True
if False:
print "Hello"
else:
print "World"
>>> Hello
3、實用的基礎學習:
若是要在python中寫中文,則要在xx.py的最前面聲明
1
|
#coding:utf-8
|
一、基礎語法:變量,字符串,函數,邏輯判斷,循環
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
varline
=
2
;
print
(varline);
#打印字符串
print
(
"hello Python"
);
print
(
"你好,Python"
);
#整型和字符串的轉化
num1
=
100
;
num2
=
"100"
;
num3
=
num1
+
int
(num2);
print
(num3);
#字符串操做
str1
=
"hello world"
;
str2
=
str1
*
3
;
string_count
=
len
(str1);
print
(string_count);
print
(str2);
#字符串索引等價
print
(str1[
0
]);
print
(str1[
-
11
])
#===>h
print
(str1[
1
]);
print
(str1[
-
10
])
#===>e
print
(str1[
2
]);
print
(str1[
-
9
])
#===>l
#能夠將字符串進行分割
print
(str1[
0
:
5
]);
print
(str1[
6
:
11
]);
#===> hello world
print
(str1[
-
4
:]);
#函數的定義和使用
def
Print
():
print
(
"hello world"
);
return
"sss"
;
sss
=
Print
();
print
(sss);
def
add(arg1 , arg2):
return
arg1
+
arg2 ;
print
(add(
1
,
2
));
def
getTempatuare(temp):
return
temp
*
9
/
5
+
32
;
print
(
str
(getTempatuare(
35
))
+
"'F"
);
#克轉千克算法
def
print_kg(g):
return
float
(g
/
1000
) ;
print
(
str
(print_kg(
1
))
+
"kg"
);
#求直角三角形斜邊的長度
def
Line_print(arg1,arg2):
return
((arg1
*
arg1
+
arg2
*
arg2))
*
*
0.5
print
(
"The right triangle third side's length is "
+
str
(Line_print(
3
,
4
)));
#str_rp = str1.replace(str1[:3],'*'*9);
#print(str_rp)
str11
=
"{} a word she can get what she {} for."
str12
=
"{preposition} a word she can get what she {verb} for"
str13
=
"{0} a word she can get what she {1} for."
str111
=
str11.
format
(
'With'
,
'came'
);
str121
=
str12.
format
(preposition
=
'With'
,verb
=
'came'
)
str131
=
str13.
format
(
'With'
,
'came'
)
print
(str111)
print
(str121)
print
(str131)
#單首創建
file1
=
open
(
'F:\\'+'
hello.txt
','
w')
file1.write(
"Hello world"
);
file1.close()
#使用函數建立
def
text_create(name, msg):
desktop_path
=
'F:\\'
full_path
=
desktop_path
+
name
+
'.txt'
file
=
open
(full_path,
'w'
)
file
.write(msg)
file
.close()
print
(
'Done'
)
text_create(
'Yang'
,
'hello world'
)
# ????
#變量的比較
teststr1
=
"Hello"
teststr2
=
"World"
teststr3
=
"Hello"
print
(teststr1
in
teststr2)
print
(teststr1
is
teststr3)
print
(
bool
(teststr1))
print
(
bool
(''))
print
(
not
teststr1)
print
(teststr1 < teststr3
and
teststr2 > teststr1)
print
(teststr1 > teststr2
or
teststr3 < teststr1)
#python邏輯判斷學習
a
=
1
b
=
3
if
a < b :
a
=
3
b
=
2
else
:
a
=
2
b
=
3
print
(a,b);
if
a < b:
a
=
3
b
=
2
elif
a > b:
a
=
2
b
=
3
else
:
a
=
100
b
=
200
print
(a,b)
for
i
in
1
,
2
,
3
,
4
,
5
,
6
:
print
(i)
for
string_str
in
"hello"
,
"world"
,
"world"
:
print
(string_str)
for
str1111
in
"Hello"
:
print
(str1111)
|
二、Python數據結構:列表,元組,字典,集合
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
#python列表===>
#特色:能夠裝python的全部類型,包括元組,列表,字典等
city
=
[
'廣東'
,
'雲南'
,
'廣西'
,
'江西'
,
'HongKong'
,
'Shenzhen'
,
123456
]
for
i
in
0
,
1
,
2
,
3
,
4
,
5
,
6
:
print
(city[i])
city.insert(
1
,
'北京'
)
#列表的插入
for
i
in
0
,
1
,
2
,
3
,
4
,
5
,
6
:
print
(city[i])
city.remove(
'HongKong'
)
#列表的刪除
for
i
in
0
,
1
,
2
,
3
,
4
,
5
,
6
:
print
(city[i])
del
city[
0
]
#使用del方法刪除列表中的元素
for
i
in
0
,
1
,
2
,
3
,
4
,
5
:
print
(city[i])
#python元組 ===>
#特色:不可修改,可被查看以及索引
num
=
(
'1'
,
'2'
,
'3'
,
'4'
,
'5'
)
for
i
in
0
,
1
,
2
,
3
,
4
:
print
(num[i])
#python字典 ===>
#特色:鍵值成對存在,鍵不可重複,值可重複,鍵不可改,值能夠變,能夠爲任何對象
Dog
=
{
'name'
:
'sundy'
,
'age'
:
18
}
Dog.update({
'tel'
:
119
})
#往字典中添加鍵值對
print
(Dog)
del
Dog[
'name'
]
#往字典中刪除鍵值對
print
(Dog)
#集合
num_set
=
{
1
,
2
,
3
,
4
,
1
,
5
}
num_set.add(
6
)
#往集合裏添加元素
print
(num_set)
num_set.discard(
3
)
#從集合裏刪除元素
print
(num_set)
|
三、Python語言面對對象:類的定義、使用以及類的繼承
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#coding:utf-8
#定義一個類
class
Anmial:
var
=
100
Dog
=
[
'runing'
,
'eat'
,
'sleep'
]
#Dog是這個類的屬性
def
function(
self
):
#類裏的方法
if
Anmial.var
=
=
10
:
print
(Anmial.var)
else
:
print
(
self
+
str
(Anmial.Dog))
return
Anmial.var
#實例化類
Dog1
=
Anmial()
print
(Anmial.Dog)
#遍歷類中的成員
for
i
in
Anmial.Dog:
print
(i)
#建立實例屬性===>相似建立一個與Dog同樣的屬性
Anmial.log
=
'會飛'
,
'Hello'
,
'Monkey'
print
(Anmial.log)
Anmial.function(
"屬性:"
)
class
CocaCola():
formula
=
[
'caffeine'
,
'suger'
,
'water'
,
'soda'
]
def
__init__(
self
,local_name):
#===>self至關於能夠用來訪問類中的成員或者建立屬性
self
.logo_local
=
'橙汁'
if
local_name
=
=
'可樂'
:
print
(local_name)
elif
local_name
=
=
'橙汁'
:
print
(local_name)
else
:
print
(
'西瓜汁'
)
def
drink(
self
):
#===>調用該方法的時候等效於 coke = CocaCola.drink(coke)
print
(
'Energy!'
)
coke
=
CocaCola(
'可樂'
)
coke1
=
CocaCola(
'橙汁'
)
coke2
=
CocaCola(
'梨汁'
)
#類的繼承===>xuebi至關於CocaCoal的子類,CocaCoal至關於父類
class
xuebi(CocaCola):
formula
=
[
'白色'
,
'黃色'
,
'綠色'
]
xuebi
=
xuebi(CocaCola)
#將CocaCola放在括號中,表面xuebi集成於CocalCola
print
(xuebi.formula)
xuebi.drink()
#這樣子類就能夠調用父類的方法,繼續延用了
|
4、總結:
Python是一種面向對象的解釋型計算機程序的設計語言, Python具備豐富和強大的庫。它常被稱爲膠水語言,可以把其餘語言製做的各類模塊很輕鬆地結合在一塊兒。
相對於Java、C語言等,Python簡單易學,更適合沒有編程基礎的小白入門。Python 的語言沒有多少儀式化的東西,因此就算不是一個 Python 專家,你也能讀懂它的代碼。
Python的發展方向:數據分析、人工智能、web開發、測試、運維、web安全、遊戲製做等等