學習Python的過程:php
計算機科學與技術專業,學過C,C++,Java,HTML,CSS,JavaScript等編程語言,喜歡用C或C++來寫算法程序,用Java寫過一些小項目,因畢業設計的須要陷入了Python,越陷越深。學習Python目前主要用到資料:html
一、《Python程序設計教程》 林信良 著java
二、《Python核心編程》(第3版) [美] Wesley Chun 著python
孫波祥、李斌、李晗 譯ios
三、小甲魚老師的「零基礎入門學習Python」視頻教程c++
四、Alex老師的的「Python之路」視頻教程程序員
Python學習心路歷程-day1算法
學習內容:編程
1.Python簡介windows
2.安裝
3.第一個Python程序
4.變量
5.字符編碼
6.用戶輸入
7.表達式if..else語句
8.表達式for語句
9.break和continue
10.while循環
11.字符串拼接
1.python簡介
python的創始人爲吉多·範羅蘇姆(Guido van Rossum)。1989年的聖誕節期間,吉多·範羅蘇姆爲了在阿姆斯特丹打發時間,決心開發一個新的腳本解釋程序,做爲ABC語言的一種繼承。
最新的TIOBE排行榜,Python趕超PHP佔據第五, Python崇尚優美、清晰、簡單,是一個優秀並普遍使用的語言。
Python能夠應用於衆多領域,如:數據分析、組件集成、網絡服務、圖像處理、數值計算和科學計算等衆多領域。目前業內幾乎全部大中型互聯網企業都在使用Python,如:Youtube、Dropbox、BT、Quora(中國知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、騰訊、汽車之家、美團等。
目前Python主要應用領域:
Python在一些公司的應用:
2.安裝
windows
1 1.下載安裝包 2 https://www.python.org/downloads/ 3 2.安裝 4 本身選擇安裝路徑 5 3.配置環境變量 6 【右鍵計算機】--》【屬性】--》【高級系統設置】--》【高級】--》【環境變量】--》【在第二個內容框中找到 變量名爲Path 的一行,雙擊】 -->【Python安裝目錄追加到變值值中,用 ; 分割】 7 8 9
Linux或者Mac
1 無需安裝,原裝Python環境 2 3 ps:若是自帶2.6,請更新至2.7 4
windows:
1 卸載重裝便可
Linux:
Linux的yum依賴自帶Python,爲防止錯誤,此處更新其實就是再安裝一個Python
1 查看默認Python版本 2 python -V 3 一、安裝gcc,用於編譯Python源碼 4 yum install gcc 5 二、下載源碼包,https://www.python.org/ftp/python/ 6 三、解壓並進入源碼文件 7 四、編譯安裝 8 ./configure 9 make all 10 make install 11 五、查看版本 12 /usr/local/bin/python2.7 -V 13 六、修改默認Python版本 14 mv /usr/bin/python /usr/bin/python2.6 15 ln -s /usr/local/bin/python2.7 /usr/bin/python 16 七、防止yum執行異常,修改yum使用的Python版本 17 vi /usr/bin/yum 18 將頭部 #!/usr/bin/python 修改成 #!/usr/bin/python2.6
3.第一個Python程序
Hello World程序
建立一個文件叫hello.py,並輸入
1 print("Hello World!")
而後執行命令:python hello.py ,輸出
1 Hello World!
對比下其它語言的hello world
1 #include <stdio.h> 2 int main(void) 3 { 4 printf("\nhello world!"); 5 return 0; 6 }
1 #include <iostream> 2 int main(void) 3 { 4 std::cout<<"Hello world"; 5 }
1 public class HelloWorld{ 2 // 程序的入口 3 public static void main(String args[]){ 4 // 向控制檯輸出信息 5 System.out.println("Hello World!"); 6 } 7 }
1 <?php 2 echo "hello world!"; 3 ?>
1 puts "Hello world."
1 package main 2 import "fmt" 3 func main(){ 4 fmt.Printf("Hello World!\n God Bless You!"); 5 6 }
4.變量
變量定義的規則:
聲明變量
1 #!/user/bin/env python 2 # -*- coding: UTF-8 -*- 3 # Author: cs 4 5 name = "cs"
這就聲明瞭一個變量,變量名爲name,變量的值爲:"cs"
變量賦值
#!/user/bin/env python # -*- coding: UTF-8 -*- # Author: cs name = "cs" name2 = name print(name, name2) name = "jsy" print(name, name2)
5.字符編碼
python解釋器在加載 .py 文件中的代碼時,會對內容進行編碼(默認ascill)
ASCII(American Standard Code for Information Interchange,美國標準信息交換代碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其餘西歐語言,其最多隻能用 8 位來表示(一個字節),即:2**8 = 256-1,因此,ASCII碼最多隻能表示 255 個符號。
關於中文
爲了處理漢字,程序員設計了用於簡體中文的GB2312和用於繁體中文的big5。
GB2312(1980年)一共收錄了7445個字符,包括6763個漢字和682個其它符號。漢字區的內碼範圍高字節從B0-F7,低字節從A1-FE,佔用的碼位是72*94=6768。其中有5個空位是D7FA-D7FE。
GB2312 支持的漢字太少。1995年的漢字擴展規範GBK1.0收錄了21886個符號,它分爲漢字區和圖形符號區。漢字區包括21003個字符。2000年的 GB18030是取代GBK1.0的正式國家標準。該標準收錄了27484個漢字,同時還收錄了藏文、蒙文、維吾爾文等主要的少數民族文字。如今的PC平臺必須支持GB18030,對嵌入式產品暫不做要求。因此手機、MP3通常只支持GB2312。
從ASCII、GB23十二、GBK 到GB18030,這些編碼方法是向下兼容的,即同一個字符在這些方案中老是有相同的編碼,後面的標準支持更多的字符。在這些編碼中,英文和中文能夠統一地處理。區分中文編碼的方法是高字節的最高位不爲0。按照程序員的稱呼,GB23十二、GBK到GB18030都屬於雙字節字符集 (DBCS)。
有的中文Windows的缺省內碼仍是GBK,能夠經過GB18030升級包升級到GB18030。不過GB18030相對GBK增長的字符,普通人是很難用到的,一般咱們仍是用GBK指代中文Windows內碼。
顯然ASCII碼沒法將世界上的各類文字和符號所有表示,因此,就須要新出一種能夠表明全部字符和符號的編碼,即:Unicode
Unicode(統一碼、萬國碼、單一碼)是一種在計算機上使用的字符編碼。Unicode 是爲了解決傳統的字符編碼方案的侷限而產生的,它爲每種語言中的每一個字符設定了統一而且惟一的二進制編碼,規定雖有的字符和符號最少由 16 位來表示(2個字節),即:2 **16 = 65536,
注:此處說的的是最少2個字節,可能更多
UTF-8,是對Unicode編碼的壓縮和優化,他再也不使用最少使用2個字節,而是將全部的字符和符號進行分類:ascii碼中的內容用1個字節保存、歐洲的字符用2個字節保存,東亞的字符用3個字節保存...
因此,python解釋器在加載 .py 文件中的代碼時,會對內容進行編碼(默認ascill),若是是以下代碼的話:
報錯:ascii碼沒法表示中文
6.用戶輸入
1 #!/user/bin/env python 2 # -*- coding: UTF-8 -*- 3 # Author: cs 4 5 username = input("username:") 6 password = input("password:") 7 8 print(username, password)
若是想要輸入密碼時不可見,那麼就須要利用getpass 模塊中的 getpass方法,即:
1 #!/user/bin/env python 2 # -*- coding: UTF-8 -*- 3 # Author: cs 4 5 import getpass 6 7 username = input("username:") 8 password = getpass.getpass("password:") 9 10 print(username, password) 11
7.表達式if..else語句
場景一:猜年齡遊戲
1 #!/user/bin/env python 2 # -*- coding: UTF-8 -*- 3 # Author: cs 4 5 age = 56 6 count = 0 7 while count < 3: 8 guess_age = int(input("guess age:")) 9 if guess_age == age: 10 print("yes,you got it.") 11 break 12 elif guess_age >age: 13 print("think smaller...") 14 else: 15 print("think bigger!") 16 count += 1 17 if count == 3: 18 countine_confirm = input("do you want to keep guessing...?") 19 if countine_confirm != 'n': 20 count = 0 21 # else: 22 # print("you have tried too many times,funk off!")
場景二:
用戶登陸驗證
1 #!/user/bin/env python 2 # -*- coding: UTF-8 -*- 3 # Author: cs 4 _username = 'cs' 5 _password = 'abc' 6 7 username = input('Username:') 8 password = input('Password:') 9 10 if _username == username and _password == password: 11 print("Welcome user {name} login...".format(name=username)) 12 else: 13 print("Invalid username or password!") 14
8.表達式for語句
簡單的循環5次,打印數字
1 #!/user/bin/env python 2 # -*- coding: UTF-8 -*- 3 # Author: cs 4 for i in range(5): 5 print("loop:", i)
9.break和continue
簡單的循環5次,打印數字,可是遇到小於3的循環次數就不走了,直接跳入下一次循環
1 #!/user/bin/env python 2 # -*- coding: UTF-8 -*- 3 # Author: cs 4 5 for i in range(5): 6 if i < 3: 7 continue 8 print("loop:", i)
簡單的循環5次,打印數字,可是遇到大於3的循環次數就不走了,直接退出
1 #!/user/bin/env python 2 # -*- coding: UTF-8 -*- 3 # Author: cs 4 5 for i in range(5): 6 if i > 3: 7 break 8 print("loop:", i)
10.while循環
死循環:
1 #!/user/bin/env python 2 # -*- coding: UTF-8 -*- 3 # Author: cs 4 5 count = 0 6 while True: 7 print("一個蘋果,兩個蘋果...",count) 8 count +=1
這就是死循環代碼,無限循環沒有退出循環的條件,下面就來正確的代碼:
1 #!/user/bin/env python 2 # -*- coding: UTF-8 -*- 3 # Author: cs 4 5 count = 0 6 while True: 7 print("一個蘋果,兩個蘋果...",count) 8 count +=1 9 if count == 100: 10 print("你的蘋果太多了,留給下一我的吧。。。") 11 break
11.字符串拼接
在字符串格式化的時候還有一種+的方法,可是這種方法有點繁瑣,不建議使用。
1 #!/user/bin/env python 2 # -*- coding: UTF-8 -*- 3 # Author: cs 4 5 name = input("name:") 6 age = int(input("age:")) 7 job = input("job:") 8 salary = input("salary:") 9 10 info = ''' 11 --------info of %s---------- 12 Name:%s 13 Age:%d 14 Job:%s 15 Salary:%s 16 ''' % (name, name, age, job, salary) 17 18 info2 = ''' 19 -------info of {_name}-------- 20 Name:{_name} 21 Age:{_age} 22 Job:{_job} 23 Salary:{_salary} 24 '''.format(_name=name, 25 _age=age, 26 _job=job, 27 _salary=salary) 28 29 info3 = ''' 30 -------info of {0}--------- 31 Name:{0} 32 Age:{1} 33 Job:{2} 34 Salary:{3}'''.format(name, age, job, salary) 35 36 print(info) 37 print(info2) 38 print(info3) 39 40