學習python語言前的指引與總結

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安全、遊戲製做等等

相關文章
相關標籤/搜索