Python是什麼:python
首先,Python 是一門編程語言。這裏是Python 的官網: https://www.python.org程序員
下面是維基百科的解釋:web
Python(英國發音:/ˈpaɪθən/ 美國發音:/ˈpaɪθɑːn/),是一種面向對象、直譯式的計算機程序語言,具備近二十年的發展歷史。它包含了一組功能完備的標準庫,可以輕鬆完成不少常見的任務。它的語法簡單,與其它大多數程序設計語言使用大括號不同,它使用縮進來定義語句塊。shell
與Scheme、Ruby、Perl、Tcl等動態語言同樣,Python具有垃圾回收功能,可以自動管理內存使用。它常常被看成腳本語言用於處理系統管理任務和網絡程序編寫,然而它也很是適合完成各類高級任務。Python虛擬機自己幾乎能夠在全部的做業系統中運行。使用一些諸如py2exe、PyPy、PyInstaller之類的工具能夠將Python源代碼轉換成能夠脫離Python解釋器運行的程序。編程
Python的官方解釋器是CPython,該解釋器用C語言編寫,是一個由社區驅動的自由軟件,目前由Python軟件基金會管理。服務器
Python支持命令式程序設計、面向對象程序設計、函數式編程、面向側面的程序設計、泛型編程多種編程範式。網絡
Python能夠幹什麼:併發
Web程序
Python常常被用於Web開發。好比,經過mod_wsgi模塊,Apache能夠運行用Python編寫的Web程序。使用Python語言編寫的Gunicorn做爲Web服務器,也可以運行Python語言編寫的Web程序。Python定義了WSGI標準應用接口來協調Http服務器與基於Python的Web程序之間的溝通。一些Web框架,如Django、Pyramid、TurboGears、Tornado、web2py、Zope、Flask等,可讓程序員輕鬆地開發和管理複雜的Web程序。框架
Python對於各類網絡協議的支持很完善,所以常常被用於編寫服務器軟件、網絡蠕蟲。第三方庫Twisted支持異步在線編寫程序和多數標準的網絡協議(包含客戶端和服務器),而且提供了多種工具,被普遍用於編寫高性能的服務器軟件。另有gevent這個流行的第三方庫,一樣可以支持高性能高併發的網絡開發。異步
GUI開發
Python自己包含的Tkinter庫可以支持簡單的GUI開發。可是愈來愈多的Python程序員選擇wxPython或者PyQt等GUI包來開發跨平臺的桌面軟件。使用它們開發的桌面軟件運行速度快,與用戶的桌面環境相契合。經過PyInstaller還能將程序發佈爲獨立的安裝程序包。
操做系統
在不少操做系統裏,Python是標準的系統組件。大多數Linux發行版和Mac OS X都集成了Python,能夠在終端機下直接運行Python。有一些Linux發行版的安裝器使用Python語言編寫,好比Ubuntu的Ubiquity安裝器、Red Hat Linux和Fedora的Anaconda安裝器。Gentoo Linux使用Python來編寫它的Portage軟件包管理系統。Python標準庫包含了多個調用做業系統功能的庫。經過pywin32這個第三方軟件包,Python可以訪問Windows的COM服務及其它Windows API。使用IronPython,Python程序可以直接調用.Net Framework。
其餘
NumPy、SciPy、Matplotlib可讓Python程序員編寫科學計算程序。有些公司會使用Scons代替make構建C++程序。
不少遊戲使用C++編寫圖形顯示等高性能模塊,而使用Python或者Lua編寫遊戲的邏輯、服務器。相較於Python,Lua的功能更簡單、體積更小;而Python則支持更多的特性和數據類型。不少遊戲,如EVE Online使用Python來處理遊戲中繁多的邏輯。
YouTube、Google、Yahoo!、NASA都在內部大量地使用Python。OLPC的做業系統Sugar項目的大多數軟件都是使用Python編寫。
聲明:
1 從這裏開始,下面及之後全部的程序都在python3 的環境中編寫並運行,不考慮兼容2.x 版本的python
2 博主假定你們已經部署完python3並安裝好了Pycharm
Python 的註釋:
python 使用 # 來註釋單 這點和shell 同樣
使用 ''' ''' 來註釋多行代碼
Python 的變量名稱注意事項:
1 變量的第一個字符不能爲數字
2 變量不能使用如下關鍵字
1 ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
Hello world:
1 print("Hello World!")
輸入:
name = input("your nanme: ") print("hello ",name)
判斷:
1 valid_name = "yang" 2 input_name = input("your nanme: ") 3 print("hello ",input_name) 4 if input_name == valid_name: 5 print("welcome {_valid_name} to your server".format(_valid_name=valid_name)) 6 else: 7 print("Invalid name")
多種結果的判斷:
valid_name = "yang" valid_name2 = "lu" input_name = input("your nanme: ") print("hello ",input_name) if input_name == valid_name: print("welcome {_valid_name} to your server".format(_valid_name=valid_name)) elif input_name == valid_name2: print("welcome {_valid_name2} to your server".format(_valid_name2=valid_name2)) else: print("Invalid name")
while循環:
valid_name = "yang" valid_name2 = "lu" while True: input_name = input("your nanme: ") print("hello ",input_name) if input_name == valid_name: print("welcome {_valid_name} to your server".format(_valid_name=valid_name)) elif input_name == valid_name2: print("welcome {_valid_name2} to your server".format(_valid_name2=valid_name2)) else: print("Invalid name")
while 條件循環:
1 valid_name = "yang" 2 valid_name2 = "lu" 3 count = 0 4 while count < 3: 5 input_name = input("your nanme: ") 6 print("hello ",input_name) 7 if input_name == valid_name: 8 print("welcome {_valid_name} to your server".format(_valid_name=valid_name)) 9 elif input_name == valid_name2: 10 print("welcome {_valid_name2} to your server".format(_valid_name2=valid_name2)) 11 else: 12 print("Invalid name") 13 count += 1 # count = count + 1
while 跳出循環:
1 valid_name = "yang" 2 valid_name2 = "lu" 3 count = 0 4 while count < 3: 5 input_name = input("your nanme: ") 6 print("hello ",input_name) 7 if input_name == valid_name: 8 print("welcome {_valid_name} to your server".format(_valid_name=valid_name)) 9 break 10 elif input_name == valid_name2: 11 print("welcome {_valid_name2} to your server".format(_valid_name2=valid_name2)) 12 break 13 else: 14 print("Invalid name") 15 count += 1 # count = count + 1
for 循環:
1 valid_name = "yang" 2 valid_name2 = "lu" 3 for i in range(3): 4 input_name = input("your nanme: ") 5 print("hello ", input_name) 6 if input_name == valid_name: 7 print("welcome {_valid_name} to your server".format(_valid_name=valid_name)) 8 break 9 elif input_name == valid_name2: 10 ("welcome {_valid_name2} to your server".format(_valid_name2=valid_name2)) 11 break 12 else: 13 print("Invalid name")
for 跳出循環:
同while
跳出本次循環:
1 valid_name = "yang" 2 valid_name2 = "lu" 3 for i in range(3): 4 input_name = input("your nanme: ") 5 print("hello ", input_name) 6 if input_name == valid_name: 7 print("welcome {_valid_name} to your server".format(_valid_name=valid_name)) 8 continue 9 elif input_name == valid_name2: 10 ("welcome {_valid_name2} to your server".format(_valid_name2=valid_name2)) 11 continue 12 else: 13 print("Invalid name")
跳出多層循環:
python 不能夠跳出多級循環,所以須要加一個計數器,在子循環中來改變這個計數器達到父循環跳出的目的
1 count = 0 2 for i in range(10): 3 print("this is i___{_i} ".format(_i=i)) 4 for b in range(10): 5 print("this is b____{_b} ".format(_b=b)) 6 if b == 6: 7 count = 1 8 break 9 if count == 1: 10 break
模塊:
python 的模塊相似於shell 中的一個函數,能夠導入使用,python 官方自帶了不少庫,固然第三方庫更豐富一些。
使用官方的密碼庫來讓密碼輸入不可見:
1 #!/usr/bin/env python3 2 3 import getpass 4 5 username = input("username: ") 6 passwd = getpass.getpass("passwd: ") 7 8 print(username,"----- heh =-----",passwd)