一、Pthon簡介 在1989年的聖誕節期間,吉多·範羅蘇姆在阿姆斯特丹打發時間,決心開發一款新的腳本解釋程序,作為ABC語言的一種繼承
Python可以應用於眾多領域,如:資料分析、元件整合、網路服務、影像處理、數值計算和科學計算等眾多領域。目前業界幾乎所有大中型網路企業都在使用Python,如:Youtube、Dropbox、BT、Quora(中國知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、騰訊、汽車之家、美團等。
目前Python的主要應用領域:
#
##雲計算
: 雲端運算最火紅的語言,典型應用OpenStackWEB開發
: 眾多優秀的WEB框架,眾多大型網站皆為Python開發, Youtube, Dropbox, 豆瓣。 。 。 ,典型WEB框架有Django科學運算、人工智慧
: 典型庫NumPy, SciPy, Matplotlib, Enthought librarys,pandas#系統運維
: 維運人員必備語言#金融
:量化交易,金融分析,在金融工程領域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作為動態語言的Python,語言結構清晰簡單,庫豐富,成熟穩定,科學計算和統計分析都很牛逼,生產效率遠高於c,c++,java,尤其擅長策略回測圖形GUI
: PyQT, WxPython,TkInterPython在某些公司的應用:
Google:Google App Engine 、code.google.com 、Google earth 、Google爬蟲、Google廣告等專案都在大量使用Python開發
編譯和解釋的差異是什麼?
解釋器
則是只在執行程式時,才一條一條的解釋成機器語言給電腦來執行,所以運行速度是不如編譯後的程式運行的快的.這是因為電腦不能直接認識並執行我們寫的語句,它只能認識機器語言(是二進位的形式)
#編譯型vs解釋型編譯型
##優點:編譯器一般會有預編譯的過程對程式碼進行最佳化。因為編譯只做一次,執行時不需要編譯,所以編譯型語言的程式執行效率高。可以脫離語言環境獨立運作。解釋型<br>優點:有良好的平台相容性,在任何環境中都可以運行,前提是安裝了解釋器(虛擬機器)。靈活,修改程式碼的時候直接修改就可以,可以快速部署,不用停機維護。 <br>
缺點:每次執行的時候都要解釋一遍,效能上不如編譯型語言。
Python的優缺點
#優點:
Python的定位是「優雅」、 “明確”、“簡單”,所以Python程式看起來總是簡單易懂,初學者學Python,不僅入門容易,而且將來深入下去,可以編寫那些非常非常複雜的程式。
開發效率非常高,Python有非常強大的第三方函式庫,基本上你想透過電腦實現任何功能,Python官方庫裡都有相應的模組來支持,直接下載呼叫後,在基礎函式庫的基礎上再進行開發,大幅降低開發週期,避免重複造輪子。
高階語言————當你用Python語言寫程式的時候,你不需要考慮諸如如何管理你的程式所使用的記憶體一類的底層細節
可移植性--由於它的開源本質,Python已經被移植在許多平台上(經過改動使它能夠工作在不同平台上)。如果你小心地避免使用依賴系統的特性,那麼你的所有Python程式無需修改就幾乎可以在市場上所有的系統平台上運行
可擴展性——— —如果你需要你的一段關鍵程式碼運行得更快或希望某些演算法不公開,你可以把你的部分程式用C或C++編寫,然後在你的Python程式中使用它們。
可嵌入性————你可以把Python嵌入你的C/C++程序,從而向你的程式使用者提供腳本功能。
缺點:
速度慢,Python 的運行速度相比C語言確實慢很多,跟JAVA相比也要慢一些,因此這也是許多所謂的大牛不屑於使用Python的主要原因,但其實這裡所指的運行速度慢在大多數情況下用戶是無法直接感知到的,必須藉助測試工具才能體現出來,比如你用C運一個程式花了0.01s,用Python是0.1s,這樣C語言直接比Python快了10倍,算是非常誇張了,但是你是無法直接透過肉眼感知的,因為一個正常人所能感知的時間最小單位是0.15-0.4s左右,哈哈。其實在大多數情況下Python已經完全可以滿足你對程式速度的要求,除非你要寫對速度要求極高的搜尋引擎等,這種情況下,當然還是建議你用C去實現的。
程式碼不能加密,因為PYTHON是解釋性語言,它的源碼都是以名文形式存放的,不過我不認為這算是一個缺點,如果你的專案要求來源程式碼必須是加密的,那你一開始就不應該用Python來去實作。
線程不能利用多CPU問題,這是Python被人詬病最多的一個缺點,GIL即全局解釋器鎖(Global Interpreter Lock),是電腦程式設計語言解釋器用於同步執行緒的工具,使得任何時刻僅有一個執行緒在執行,Python的執行緒是作業系統的原生執行緒。在Linux上為pthread,在Windows上為Win thread,完全由作業系統調度執行緒的執行。一個python解釋器進程內有一條主線程,以及多條用戶程式的執行線程。即使在多核心CPU平台上,由於GIL的存在,所以禁止多執行緒的並行執行。關於這個問題的折衷解決方法,我們在以後線程和進程章節裡再進行
Python安裝
windows:
下載安裝套件:
Linux:
無需安裝,系統自備Python環境。 (如果自備2.X版本請自行升級到3.X)
變數\字元編碼
# Author:Aaron LI
name = 'Aaron Li'<br><br>## print("My name is",name)
#
<span style="font-size: 16px">变量<br>上述代码声明了一个变量,其变量名为name,而变量name的值为:"Aaron Li"</span>
變數的定義規則:
<span style="font-size: 16px">1.变量名只能是 字母、数字或下划线的任意组合<br>2.变量名的第一个字符不能是数字<br>3.一些关键字不能声明为变量名:<br> ['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']<br><br></span>
字元編碼
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、GB2312、GBK 到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码中,英文和中文可以统一地处理。区分中文编码的方法是高字节的最高位不为0。按照程序员的称呼,GB2312、GBK到GB18030都属于双字节字符集 (DBCS)。
有的中文Windows的缺省内码还是GBK,可以通过GB18030升级包升级到GB18030。不过GB18030相对GBK增加的字符,普通人是很难用到的,通常我们还是用GBK指代中文Windows内码。
显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,<br>注:此处说的的是最少2个字节,可能更多
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)
注释
单行注释: #被注释内容
多行注释: """被注释内容""" 或者 '''被注释内容'''
用户交互
<br>
# Author:Aaron LI<br><br>username = input("username:") <br>password = input("password:")<br>print (username,password)
字符串拼接
#namne = input("name")<br>#age = input("age")<br>#job = input("job")<br>#salary = input("salary")<br>#info = """<br>#---------- into of %s ---------<br>#name:%s<br>#age:%s<br>#job:%s<br>#salary%s<br>#""" % (namne,namne,age,job,salary) %占位符跟上边的变量拼接起来<br>#print(info)<br># % DAY 1(10) 10:50处<br><br><br>#name = input("name")<br>#age = int(input("age"))<br>#job = input("job")<br>#salary = input("salary")<br><br>#info = """<br># ---------- into of %s-----------------<br># name:%s<br># age:%d<br># job:%s<br># salary:%s<br>#""" % (name,name,age,job,salary)<br>#print (info)<br><br>#推崇用此方法<br>name = input("name")<br>age = input("age")<br>job = input("job")<br>salary = input("salary")<br>info = """<br> ----------info of {_name} --------------<br> name:{_name}<br> age:{_age}<br> job:{_job}<br> salary:{_slary}<br>""" . format(_name=name,<br>_age=age,<br>_job=job,<br>_slary=salary)<br>print(info)<br>
将密码设为密文输出
利用getpass模块
import getpass<br>username = input("username:")<br>password = input("password:")<br>
print(username,password)
#在pycharm中无法输出测试
表达式 if......else
提示输入用户名和密码,验证用户名和密码
如果成功,则输出欢迎
如果错误,则输出,用户名和密码
# Author:Aaron LI<br><br>import getpass<br><br>_username = 'lixiguang'<br>_password = 'abc123'<br>username = input("username:")<br>password = input("password:")<br><br>if _username == username and _password == password:<br>print("Welcome user {name} login......".format(name=username))<br>else:<br>print("Invalid username or password!")
猜年龄
在程序中预先设定好年龄,启动程序后让用户猜测,根据用户的输入提示输入的正确与否,如果错误则给出提示
# Author:Aaron LI<br><br>age_of_lxg = 25<br>guess_age = int(input("guess age:"))<br><br>if age_of_lxg == guess_age:<br>print("Input correct!")<br>elif age_of_lxg > guess_age:<br>print("The input digit is too large")<br>else:<br>print("The input numbers are too small")
表达式for循环
for i in range(0,15):<br>print("Aaron",i)<br><br>
for i in range(0,19,2):<br>print("loop",i) #2 每执行一个跳一个 (步长)
<br>
# Author:Aaron LI<br>age_of_lxg = 28<br>for i in range(3):<br> guess_age = int(input("guess_age:") )<br>if guess_age == age_of_lxg:<br>print("yes,you got it.")<br>break<br> elif guess_age > age_of_lxg:<br>print("thine smaller....")<br>else:<br>print("think bigger!")<br>else:<br>print("you have tried too times..")
<br>
表达式while循环
count = 0<br>while True:<br>print("count:",count)<br> count +=1 #count = count +1<br><br>
# Author:Aaron LI<br><br>age_of_lxg = 28<br>count = 0<br>while count < 3:
guess_age = int(input("guess age:"))
if guess_age == age_of_lxg:
print("yes,you got it.")
break
elif guess_age > age_of_lxg:<br>print("think smaller...")<br>else:<br>print("think bigger...")<br> count +=1<br> if count == 3:<br> coutine_confim = input("do you want to keep guessing.....?")<br>if coutine_confim != 'n':<br> count = 0
<br>
break和continue<br>
<br>
count = 0<br>while True:<br>print("count:",count)<br> count +=1 #count = count +1<br> if count == 1001:<br>break #满足条件结束整个循环
<br>
for i in range(0,10):<br>if i <3:<br>print("loop",i)<br>else :<br>continue #跳出本次循环,进入下次循环<br> print("haha.....")
<br>
以上是Python的主要應用領域有哪些? Python的介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!