一、Python介紹python
二、Hello World程序 程序員
三、變量\字符編碼算法
四、用戶輸入運維
五、if-else語句socket
六、循環語句工具
Python是一種動態解釋性的強類型定義語言,主要應用在雲計算,WEB開發,科學運算、人工智能,系統運維和金融等領域。oop
一、Python的優缺點開發工具
優勢:優化
缺點:this
當咱們編寫Python代碼時,咱們獲得的是一個包含python代碼的以.py爲擴展名的文本文件,要運行代碼,就要靠Python解釋器來執行.py文件。
如下爲幾種經常使用的Python解釋器。
CPython——使用最廣的Python解釋器
IPython
PyPy
Jython
IronPython
In summary : Python 2.x is legacy, Python 3.x is the present and future of the language
Python 3.0 was released in 2008. The final 2.x version 2.7 release came out in mid-2010, with a statement of extended support for this end-of-life release. The 2.x branch will see no new major releases after that. 3.x is under active development and has already seen over five years of stable releases, including version 3.3 in 2012, 3.4 in 2014, and 3.5 in 2015. This means that all recent standard library improvements, for example, are only available by default in Python 3.x.
具體而言,Python 3 相較 2 的優點體如今 3 支持 Unicode support,也就是說,在Python 3 中沒必要再爲繁雜的字符編碼而煩惱,例如 3 能夠直接寫中文!
還有一個不一樣之處就是某些庫在 3 中有了變化,具體以下:
old | new |
_winreg | winreg |
ConfigParser | configparser |
copy_reg | copyreg |
Queue | queue |
SocketServer | socketserver |
markupbase | _markupbase |
repr | reprlib |
test.test_support | test.support |
下面演示用Python編寫helloworld程序,這裏我使用的開發工具是pycharm。
1 __author__ = 'Sunny Han' 2 print("Hello World!")
因而可知Python的簡潔明瞭。
eg:
name="han shuo"
這裏的name爲變量名,han shuo爲變量name的值。
變量定義應遵循必定的規則;
變量的賦值:
eg:
1 name="han shuo" 2 print("my name is",name) 3 name2=name 4 print(name2) 5 name="kobe" 6 print(name,name2)
如下爲執行後的結果:
my name is han shuo
han shuo
kobe han shuo
爲何name值改爲kobe後name2沒有變化呢?這是由於name2指向的是以前name的值「han shuo」,而不是name自身,故name值變化後,name2並不會發生相應的變化。
注:python中沒有常量的概念,若想表示常量,要將變量名所有大寫。
eg:PIE=3.14159
python解釋器在加載 .py 文件中的代碼時,會對內容進行編碼(默認ascill)。ASCII主要用於顯示現代英語和其餘西歐語言,其最多隻能用 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碼沒法將世界上的各類文字和符號所有表示,因此,就須要新出一種能夠表明全部字符和符號的編碼,即:UnicodeUnicode(統一碼、萬國碼、單一碼)是一種在計算機上使用的字符編碼。Unicode 是爲了解決傳統的字符編碼方案的侷限而產生的,它爲每種語言中的每一個字符設定了統一而且惟一的二進制編碼,規定雖有的字符和符號最少由 16 位來表示(2個字節),即:2 **16 = 65536,
注:此處說的的是最少2個字節,可能更多
UTF-8,是對Unicode編碼的壓縮和優化,他再也不使用最少使用2個字節,而是將全部的字符和符號進行分類:ascii碼中的內容用1個字節保存、歐洲的字符用2個字節保存,東亞的字符用3個字節保存...
因此,python解釋器在加載 .py 文件中的代碼時,會對內容進行編碼(默認ascill)。
eg:若是是輸入如下代碼的話,會報錯,由於默認的ASCII沒法表示中文。
__author__ = 'Sunny Han' name="你好,世界!" print(name)
# -*- coding: utf-8 -*- __author__ = 'Sunny Han' name="你好,世界!" print(name)
這樣就能顯示出結果了。
註釋:
當行注視:# 被註釋內容
多行註釋:""" 被註釋內容 """ (三引號)
__author__ = 'Sunny Han' username=input("username:") password=input("password:") print(username,password)
輸入密碼時,若是想要不可見,須要利用getpass 模塊中的 getpass方法,即:
__author__ = 'Sunny Han' import getpass username=input("username:") password=getpass.getpass("password:") print(username,password)
__author__ = 'Sunny Han' name=input("name:") age=input("age:") job=input("job:") salary=input("salary:") info=''' ----------------info of %s----------- name:%s age:%s job:%s salary:%s '''%(name,name,age,job,salary) print(info)
注意這裏的age變量默認類型爲字符串,假如將 age:%s改成age:%d(即整數類型),以前的age=input("age:")也應改成age=int(input("age:")),即將age變量強制轉爲整型變量。
具體以下:
name=input("name:") age=int(input("age:")) job=input("job:") salary=input("salary:") info=''' ----------------info 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:{_salary} '''.format(_name=name, _age=age,_job=job, _salary=salary) print(info)
eg3:
__author__ = 'Sunny Han' name=input("name:") age=input("age:") job=input("job:") salary=input("salary:") info=''' ---------info of {0}---------- Name:{0} Age:{1} Job:{2} Salary:{3} '''.format(name,age,job,salary) print(info)
上例和eg1的執行結果是同樣的。
__author__ = 'Sunny Han' _username="han" _password="123456" username=input("username:") password=input("password:") if username==_username and password==_password: #and是「並」的意思,意思是當先後兩個條件都成立的時候才成立 print("Welcom user {name} login...".format(name=username))#在這裏換行時會自動縮進,若是手動改爲頂格,會報錯「IndentationError"縮進錯誤 else: #全部代碼若是本身的級別就是最高的,好比這裏的else,那麼就應該頂格寫 print("invalid username or password!")
二、如何判斷某人年齡代碼以下:
__author__ = 'Sunny Han' age_of_jake=56 guess_age=int(input("guess_age:"))#這裏默認輸入的類型爲字符型變量,故要強制轉換字符類型,將其變成整型變量 if guess_age<age_of_jake: print("think bigger!") elif guess_age==age_of_jake:#這裏的elif至關於C語言中的elseif print("yes,you got it.") else: #尤爲要記住在編寫代碼時,要在全部的if else elif 語句後面加上冒號: print("think smaller...")
(1)先簡單舉一個while語句的例子,以下:
__author__ = 'Sunny Han' count=0 while True: print("count:",count) count +=1 if count==5: break
代碼運行結果以下:
咱們能夠看到上述代碼實現了依次輸出0到5的功能。
__author__ = 'Sunny Han' age_of_jake=56 count=0 #計數器 while count<3: guess_age=int(input("guess_age:")) if guess_age<age_of_jake: print("think bigger!") elif guess_age==age_of_jake: print("yes,you got it.") break #這裏的break是結束循環,也就是說即使是沒有輸入夠三次,也會結束循環,不會執行最後一個else語句 else: print("think smaller...") count +=1 #至關於count=count+1 else: print("you have tried too many times! ")
這裏實現了只容許輸入三次的限制,這裏要注意break的用法和意義。
__author__ = 'Sunny Han' age_of_oldboy=56 count=0 while count<3: guess_age=int(input("guess_age:")) if guess_age<age_of_oldboy: print("think bigger!") elif guess_age==age_of_oldboy: print("yes,you got it.") break else: print("think smaller...") count +=1 if count==3: continue_confirm=input("do you want to keep guessing?") if continue_confirm!="n": count=0 #這裏的令count從新等於0,就是說讓代碼從新回到其實部分(從新猜) else: break
__author__ = 'Sunny Han' for i in range(0,10,2): #這裏的0表明起始點,10表明終止點,2表明步長(步長默認爲1) print("loop",i) #循環輸出0,2,4,6,8
(2)接下來咱們舉一個嵌套循環的例子,以下:
__author__ = 'Sunny Han' for i in range(0,10): print("---------",i) for j in range(5): #這裏和if else同樣,必定記得在for語句後加冒號: print(j)
上述代碼實現了每輸出一個i,都會輸出5個j。
__author__ = 'Sunny Han' for i in range(0,10): if i<5: print("loop",i) #在這裏若是i<5,會直接輸出i else: continue #相應的,當i增長到大於5的話,會執行continue語句,也就是會結束本次循環,而不是所有終止循環 print("hehe..")
對上述代碼進行調試後發現,即使當i>5時,代碼仍會繼續進行循環,i=6,7,8,9,10直到走徹底部循環。