python 簡單簡紹以及簡單的語法

1、Pthon介紹                                          java

  Pyhton的創始人爲吉多·範羅蘇姆(Guido van Rossum)。1989年的聖誕節期間,吉多·範羅蘇姆在阿姆斯特丹打發時間,決心開發一款新的腳本解釋程序,做爲ABC語言的一種繼承python

  Python能夠應用於衆多領域,如:數據分析、組件集成、網絡服務、圖像處理、數值計算和科學計算等衆多領域。目前業內幾乎全部大中型互聯網企業都在使用Python,如:Youtube、Dropbox、BT、Quora(中國知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、騰訊、汽車之家、美團等。c++

目前Python的主要應用領域:git

 

  • 雲計算: 雲計算最火的語言, 典型應用OpenStack
  • WEB開發: 衆多優秀的WEB框架,衆多大型網站均爲Python開發,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django
  • 科學運算、人工智能: 典型庫NumPy, SciPy, Matplotlib, Enthought librarys,pandas
  • 系統運維: 運維人員必備語言
  • 金融:量化交易,金融分析,在金融工程領域,Python不但在用,且用的最多,並且重要性逐年提升。緣由:做爲動態語言的Python,語言結構清晰簡單,庫豐富,成熟穩定,科學計算和統計分析都很牛逼,生產效率遠遠高於c,c++,java,尤爲擅長策略回測
  • 圖形GUI: PyQT, WxPython,TkInter

Python在一些公司的應用:程序員

 

  • 谷歌:Google App Engine 、code.google.com 、Google earth 、谷歌爬蟲、Google廣告等項目都在大量使用Python開發
  • CIA: 美國中情局網站就是用Python開發的
  • NASA: 美國航天局(NASA)大量使用Python進行數據分析和運算
  • YouTube:世界上最大的視頻網站YouTube就是用Python開發的
  • Dropbox:美國最大的在線雲存儲網站,所有用Python實現,天天網站處理10億個文件的上傳和下載
  • Instagram:美國最大的圖片分享社交網站,天天超過3千萬張照片被分享,所有用python開發
  • Facebook:大量的基礎庫均經過Python實現的
  • Redhat: 世界上最流行的Linux發行版本中的yum包管理工具就是用python開發的
  • 豆瓣: 公司幾乎全部的業務均是經過Python開發的
  • 知乎: 國內最大的問答社區,經過Python開發(國外Quora)
  • 春雨醫生:國內知名的在線醫療網站是用Python開發的
  • 除上面以外,還有搜狐、金山、騰訊、盛大、網易、百度、阿里、淘寶 、土豆、新浪、果殼等公司都在使用Python完成各類各樣的任務。

 

Python是一門什麼樣的語言?算法

 

編譯和解釋的區別是什麼?

 

編譯器是把源程序的每一條語句都編譯成機器語言,並保存成二進制文件,這樣運行時計算機能夠直接以機器語言來運行此程序,速度很快; windows

 

解釋器則是隻在執行程序時,才一條一條的解釋成機器語言給計算機來執行,因此運行速度是不如編譯後的程序運行的快的. 網絡

 

這是由於計算機不能直接認識並執行咱們寫的語句,它只能認識機器語言(是二進制的形式)多線程

 

 

編譯型vs解釋型

編譯型
優勢:編譯器通常會有預編譯的過程對代碼進行優化。由於編譯只作一次,運行時不須要編譯,因此編譯型語言的程序執行效率高。能夠脫離語言環境獨立運行。
缺點:編譯以後若是須要修改就須要整個模塊從新編譯。編譯的時候根據對應的運行環境生成機器碼,不一樣的操做系統之間移植就會有問題,須要根據運行的操做系統環境編譯不一樣的可執行文件。框架

解釋型
優勢:有良好的平臺兼容性,在任何環境中均可以運行,前提是安裝瞭解釋器(虛擬機)。靈活,修改代碼的時候直接修改就能夠,能夠快速部署,不用停機維護。

缺點:每次運行的時候都要解釋一遍,性能上不如編譯型語言。

 

Python的優缺點

優勢:

  1. Python的定位是「優雅」、「明確」、「簡單」,因此Python程序看上去老是簡單易懂,初學者學Python,不但入門容易,並且未來深刻下去,能夠編寫那些很是很是複雜的程序。
  2. 開發效率很是高,Python有很是強大的第三方庫,基本上你想經過計算機實現任何功能,Python官方庫裏都有相應的模塊進行支持,直接下載調用後,在基礎庫的基礎上再進行開發,大大下降開發週期,避免重複造輪子。
  3. 高級語言————當你用Python語言編寫程序的時候,你無需考慮諸如如何管理你的程序使用的內存一類的底層細節
  4. 可移植性————因爲它的開源本質,Python已經被移植在許多平臺上(通過改動使它可以工 做在不一樣平臺上)。若是你當心地避免使用依賴於系統的特性,那麼你的全部Python程序無需修改就幾乎能夠在市場上全部的系統平臺上運行
  5. 可擴展性————若是你須要你的一段關鍵代碼運行得更快或者但願某些算法不公開,你能夠把你的部分程序用C或C++編寫,而後在你的Python程序中使用它們。
  6. 可嵌入性————你能夠把Python嵌入你的C/C++程序,從而向你的程序用戶提供腳本功能。

缺點:

  1. 速度慢,Python 的運行速度相比C語言確實慢不少,跟JAVA相比也要慢一些,所以這也是不少所謂的大牛不屑於使用Python的主要緣由,但其實這裏所指的運行速度慢在大多數狀況下用戶是沒法直接感知到的,必須藉助測試工具才能體現出來,好比你用C運一個程序花了0.01s,用Python是0.1s,這樣C語言直接比Python快了10倍,算是很是誇張了,可是你是沒法直接經過肉眼感知的,由於一個正常人所能感知的時間最小單位是0.15-0.4s左右,哈哈。其實在大多數狀況下Python已經徹底能夠知足你對程序速度的要求,除非你要寫對速度要求極高的搜索引擎等,這種狀況下,固然仍是建議你用C去實現的。
  2. 代碼不能加密,由於PYTHON是解釋性語言,它的源碼都是以名文形式存放的,不過我不認爲這算是一個缺點,若是你的項目要求源代碼必須是加密的,那你一開始就不該該用Python來去實現。
  3. 線程不能利用多CPU問題,這是Python被人詬病最多的一個缺點,GIL即全局解釋器鎖(Global Interpreter Lock),是計算機程序設計語言解釋器用於同步線程的工具,使得任什麼時候刻僅有一個線程在執行,Python的線程是操做系統的原生線程。在Linux上爲pthread,在Windows上爲Win thread,徹底由操做系統調度線程的執行。一個python解釋器進程內有一條主線程,以及多條用戶程序的執行線程。即便在多核CPU平臺上,因爲GIL的存在,因此禁止多線程的並行執行。關於這個問題的折衷解決方法,咱們在之後線程和進程章節裏再進行

Python安裝

windows:

  下載安裝包:https://www.python.org/downloads/

Linux:

  無需安裝,系統自帶Python環境。(若是自帶2.X版本請自行升級到3.X)

 

變量\字符編碼

 

   # Author:Aaron LI

 

   name = 'Aaron Li'

   print("My name is",name)

 

變量
上述代碼聲明瞭一個變量,其變量名爲name,而變量name的值爲:"Aaron Li"

 

變量的定義規則:

1.變量名只能是 字母、數字或下劃線的任意組合
2.變量名的第一個字符不能是數字
3.一些關鍵字不能聲明爲變量名:
['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']

 

字符編碼

 

  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) 

 

註釋

單行註釋: #被註釋內容

多行註釋: """被註釋內容""" 或者 '''被註釋內容'''

 

用戶交互

 

 
# Author:Aaron LI

username = input("username:")
password = input("password:")
print (username,password)

 字符串拼接

#namne = input("name")
#age = input("age")
#job = input("job")
#salary = input("salary")
#info = """
#---------- into of %s ---------
#name:%s
#age:%s
#job:%s
#salary%s
#""" % (namne,namne,age,job,salary) %佔位符跟上邊的變量拼接起來
#print(info)
# % DAY 1(10) 10:50處


#name = input("name")
#age = int(input("age"))
#job = input("job")
#salary = input("salary")

#info = """
# ---------- into of %s-----------------
# name:%s
# age:%d
# job:%s
# salary:%s
#""" % (name,name,age,job,salary)
#print (info)

#推崇用此方法
name = input("name")
age = input("age")
job = input("job")
salary = input("salary")
info = """
----------info of {_name} --------------
name:{_name}
age:{_age}
job:{_job}
salary:{_slary}
""" . format(_name=name,
_age=age,
_job=job,
_slary=salary)
print(info)

 

將密碼設爲密文輸出

利用getpass模塊

import getpass
username = input("username:")
password = input("password:")
print(username,password)

#在pycharm中沒法輸出測試

 

表達式 if......else

提示輸入用戶名和密碼,驗證用戶名和密碼

若是成功,則輸出歡迎

若是錯誤,則輸出,用戶名和密碼

# Author:Aaron LI

import getpass

_username = 'lixiguang'
_password = 'abc123'
username = input("username:")
password = input("password:")

if _username == username and _password == password:
print("Welcome user {name} login......".format(name=username))
else:
print("Invalid username or password!")

猜年齡

在程序中預先設定好年齡,啓動程序後讓用戶猜想,根據用戶的輸入提示輸入的正確與否,若是錯誤則給出提示

# Author:Aaron LI

age_of_lxg = 25
guess_age = int(input("guess age:"))

if age_of_lxg == guess_age:
print("Input correct!")
elif age_of_lxg > guess_age:
print("The input digit is too large")
else:
print("The input numbers are too small")

表達式for循環

for i in range(0,15):
print("Aaron",i)

for i in range(0,19,2):
print("loop",i) #2 每執行一個跳一個 (步長)
 
# Author:Aaron LI
age_of_lxg = 28
for i in range(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:
print("thine smaller....")
else:
print("think bigger!")
else:
print("you have tried too times..")
 

表達式while循環

 

count = 0
while True:
print("count:",count)
count +=1 #count = count +1

# Author:Aaron LI

age_of_lxg = 28
count = 0
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:
print("think smaller...")
else:
print("think bigger...")
count +=1
if count == 3:
coutine_confim = input("do you want to keep guessing.....?")
if coutine_confim != 'n':
count = 0
 

break和continue

 
count = 0
while True:
print("count:",count)
count +=1 #count = count +1
if count == 1001:
break #知足條件結束整個循環
 
for i in range(0,10):if i <3:print("loop",i)else :continue  #跳出本次循環,進入下次循環    print("haha.....")
相關文章
相關標籤/搜索