python基礎,
Python 簡介
python是具有請打和豐富的庫、他被稱為膠水語言,能夠把用其他語言製作的各種模組、很輕鬆的串連在一起、常見的一種應用情境是、使用Python快速產生程式的原型(有時甚至是程式的最終介面),然後對其中[3] 有特別要求的部分,用更合適的語言改寫,比如3D遊戲中的圖形渲染模組,效能要求特別高,就可以用C/C++重寫,而後封裝為Python可以調用的擴充類庫。需要注意的是在您使用擴充類庫時可能需要考慮平台問題,某些可能不提供跨平台的實現。
python是一種什麼語言呢?
嚴格的意思來說、python是一種指令碼語言、程式設計語言有多重多樣、但是開有開源和閉源之分、python就是一個開發核心原始碼的程式設計語言、他開發代碼的效率非常的高、代碼編寫後非常容易讀、非常適合多人蔘與項目,他支援物件導向編程方式、同樣也可以面向過程編程、非常的靈活,他不單免費、還可以任意的copy分發、python是由荷蘭人Guido van Rossum在90年開發出來的、當初只是未了自己娛樂嘗試編寫一種替代ABC這些程式設計語言的指令碼語言、沒想到受到大家的喜愛、一直發展至今、後來引入了對多品台的支援。
python語言的原始碼的底層是用C語言進行編寫的、他最強大之處就在於他豐富的第三方庫、使得編寫程式得速度非常快。python程式得副檔名是(.py),首先會將.py檔案中的原始碼編譯程python的位元組碼、然後在由python虛擬機器來執行這些編譯好的位元組碼、在這一點上與JAVA等程式語言比起來比較相似、通常我們匯入或者調用另一個程式、他的.py檔案會產生一個.pyc檔案、他是編譯好的位元組碼檔案、這樣的程式運行起來速度更快。
一、編程與程式設計語言
編程是為了用機器取代手工操作,編程的目的就是為了把人的思想傳遞給機器,讓機器能夠像人腦一樣自動執行人們手工的操作。
語言就是電腦能夠識別的表達方式,程式設計語言就是人與電腦的交流介質。
編程就是人將自己思想或者行為通過某種程式設計語言編寫下來,他的產出就是一堆字串檔案。字元的執行結果就是編程所執行的結果。
二、程式設計語言的分類
1. 機器語言
機器語言就是站在機器的角度、機器能夠直接識別的語言、也就是位元。
2. 組合語言
組合語言就是站機器的角度、用簡單的英文標識取代二進位去編寫程式。
3. 進階語言
進階語言就是站在人的角度、通過人能夠識別的語言去編寫程式、然後在讓機器去執行。
4. 編譯型語言與解釋型語言
編譯型語言就是需要編譯、需要將所有的代碼編譯完成之後再執行。
解釋型語言是一邊解釋一邊執行。
5. 對比各種語言的優缺點
機器語言==>執行速度最快==>開發效率最低
組合語言==>執行速度最快 ==>開發效率最低
解釋語言==>執行速度慢==>開發效率高、可跨平台
三、python解譯器
當python程式的安裝包下載下來之後、安裝到系統後會有一個解譯器和Python的內建標準庫程式。可以在解譯器中編寫執行Python原始碼,也可以在Linux的終端模擬器中執行其它編輯器編寫的代碼,Windows系統可以在Dos中切換路徑來,直接執行Python程式。
四、第一個python程式
python的IDE安裝過程很簡單、需要你到python的官網(https://www.python.org/downloads/)下載python的程式、然後安裝即可。
我們以python2.7為例、安裝完成之後的目錄結構如下:

然後我們開啟這個IDE、在IDE中輸入代碼:
1 print ("Hello,Word! My name is shier!")View Code
當然python的IDE的開發效率有限、後期建議大家使用pycharm來編寫代碼。
python指令碼
我們在python的IDE中寫代碼的時候是不需要加python的標識符、但是我們在寫python指令碼的時候就需要python的標識符。
1 #!/usr/bin/python env #指定系統python的解譯器 2 print ("Hello,Word! My name is shier!")View Code
1 G:\>python3 test.py2 Hello,word! My name is shier!3 G:\>
指令碼運行方式 py指令碼的執行過程五、變數
1.什麼是變數?
變數字面意思就是變化的量、量指的是反映某種狀態。變數是用來存放一中變化的狀態,變是程式執行的直接體現。
2.如何定義變數?
變數的定義方式是由:變數名、賦值號、變數值組成。
name = 'shier'sex = 'male'age = '17'
3.變數名的定義規範
1、變數名只能是數字、字面、數字或者底線組成。2、變數名的第一個字元不能是數字3、Python中的關鍵字不能作為變數名
4.變數的定義方式
1、駝峰式AgeShier=172、底線age_shier=17注意:1、變數名稱最好不要用中文2、變數名稱過長3、變數名稱詞不達意
5.常量
常量不變化的量、常見的常量又數字、定義常量一般都是大寫。
每個變數都有id、type、value三要素。
但是需要注意的是:1、id相同、意味著這個變數的type和value必定相同2、value相同但是id可能不同
1 >>> x = 'name shier'2 >>> y = 'name shier'3 >>> id(x)4 543592085 >>> id(y)6 543593287 >>>
View Code
6.變數的回收機制
當一個python解譯器將一個值賦值給某一個變數的時候、此時這個變數名的引用計數會自動加1。如果變數名的引用計數為0、此時該變數就像沒娘的孩子會被記憶體空間會被回收。
7.變數的解壓
l1 = ['Hello','word','ni','hao']a,b,*_ = l1print(a,b)Hello word
解壓就是使用站位符的形式代替列表中的元素。
六、資料類型數字
1、int整型在python中數字一般用int表示、常用於標識一個人的年齡、等級、社會安全號碼、qq號等等。 age = 102、float浮點型在python中浮點型一般用於表示小數、常用於標識工資、身高等等。salary = 20000.10
字串
在py中加了引號的字元就是字串類型、py沒有字元類型。字串一般用於標識姓名、國籍等等。name = 'shier'需要解釋一下在py中單引號、雙引號、多引號的區別?其實在python中單引號和雙引號沒有太大區別、但是需要注意不同情況下的使用。多引號可以列印換行。print("Hello,word! I'm 17 years old!")info = '''相信別人就是相信自己'''列表
列表是python中主要的資料類型之一、他可以被修改、可以增長和縮短、也可以嵌套。列表可以完成大多數集合類的資料結構實現、它支援,數字、字元、字串甚至可以包含列表。列表資料類型是可變的資料類型。在py中清單類型是在[]內用逗號進行分割、可以存放n多個任意類型的值。列表常用於標識人的愛好等等。student = ['張三','李四']
字典
字典是python中的另一種有序的可變的資料結構、且可以儲存任意類型對象。字典是一種索引值對的資料容器,每個索引值(key:value)對冒號(:)分割、每個對之間用逗號(,)分割、整個字典包括在花括弧"{}"中。 字典中的鍵必須是唯一的同時是不可變的、值沒有限制。info = {'name':'shier','age':'17'}布爾
在電腦中True就表示成立、False就標識不成立。布爾類型的值有True和False兩種。 如果bool() #未傳入參數則返回false如果bool() #傳入Null 字元串也返回false如果bool() #傳入數字0也返回false如果bool() #傳入對象只要是空返回都是false>>> a = 1>>> b = 2>>> a < bTrue>>> a > bFalse>>>
可變與不可變類型
1.可變類型:在id不變的情況下,value可以變,則稱為可變類型,如列表,字典2. 不可變類型:value一旦改變,id也改變,則稱為不可變類型(id變,意味著建立了新的記憶體空間) 3. 在py中除了列表和字典是可變其他都不可變。
七、格式化輸出
在py中常會用到將輸出資訊列印成固定的格式。此時就涉及到字串的格式化輸出。
1 一 預留位置 2 name = 'shier' 3 age = 17 4 print('My name is %s ,my age is %s' %(name,age)) 5 My name is shier ,my age is 17 6 7 name = 'shier' 8 age = 17 9 print('My name is %s ,my age is %d' %(name,age))10 My name is shier ,my age is 1711 以上方式是採用的站位符的方式列印的格式化輸出、但是需要注意的是%s只能接受str、%d只能接收int、如果%d接收str則會報錯。12 二 format格式化13 name = 'shier'14 age = 1715 print('My name is {} ,My age is {}'.format(name,age))16 ====================17 name = 'shier'18 age = 1719 print('My name is {name} ,My age is {age}'.format(name=name,age=age))20 他們倆的執行結果是一樣的。View Code八、基本運算
一、算術運算在python中運算和正常的算術一樣。>>> a=2>>> b=10>>> a+b12>>> a-b-8>>> a*b20>>> b**a100>>> b/a5.0>>> b%a0>>> b//a5>>>二、比較運算>>> a > bFalse>>> a < bTrue>>> a !=bTrue>>> a == bTrue>>>三、賦值運算>>> a = 1>>> b = 2>>> a+=b>>> a3>>> a-=b>>> a1>>> a*=b>>> a2>>> a/=b>>> a1.0>>> a%=b>>> a1.0>>> a**=b>>> a1.0>>> a//=b>>> a0.0>>>四、邏輯運算常見的邏輯運算又and、not、or>>> True or False and FalseTrue>>> (True or False) and FalseFalse>>>身份運算(is)>>> a = 1>>> b = 2>>> a is bFalse>>>
九、流程式控制制
流程式控制制就是根據不同的條件的變化而執行不同的代碼、例如:登陸網站如果登陸未成功則不能進入到使用者中心。
一、if條件陳述式沒有分支判斷、只有一種結果、如果不滿足條件則退出。age_of_shier=17if age_of_shier == 17:print('帥哥好!')#單分支、如果不滿足條件、則執行與條件相反的部分。age_of_shier=16if age_of_shier == 17:print('帥哥好!')else:print('你好!')#age = 18height = 180wegiht = 60is_pertty = Trueif age < 20 and height > 175 and wegiht < 70 and is_pertty == True:print('完美男人')else:print('繼續深造吧!')#嵌套if就是在if內部在加一層if判斷。age = 18height = 180wegiht = 60is_pertty = Truesess = Falseif age < 20 and height > 175 and wegiht < 70 and is_pertty == True:if sess:print('完美男人')else:print('好好鍛煉吧!')else:print('繼續深造吧!')#小練習info = input('>> ')info = int(info)if info >= 90:print('優秀')elif info >= 80:print('良好')elif info >= 70:print('普通')else:print('很差')#while 迴圈while 條件: # 迴圈體# 如果條件為真,那麼迴圈體則執行,執行完畢後再次迴圈,重新判斷條件。。。# 如果條件為假,那麼迴圈體不執行,迴圈終止#改版的猜年齡age_of_shier = 18while True:guess = input('>> ')if not guess:continueguess = int(guess)if guess > age_of_shier:print('沒那麼老!')elif guess < age_of_shier:print('太年輕了!')else:print('恭喜你、猜對了!')#死迴圈while True:print('heheheh')#列印10以內除了7的數字。count = 0while count<10:count += 1if count ==7:continueprint(count)#計算1-2+3-4……99的和count = 1Sum = 0while count<100:if count % 2 ==1:Sum+=countelse:Sum-=countprint(count)count+=1print('====')print(Sum)#嵌套迴圈count=1tag =Truewhile tag:if count > 3:breakname = input('name: ')passwd = input('password: ')if name == 'shier' and passwd =='123123':print('login sessfull')while tag:mes = input('>> ')if mes == 'q':tag = Falseprint(mes)else:print('log error')count+=1#while之breaknumber = 0while number < 10:if number >5:breakprint(number)number+=1break的作用是跳出本層迴圈。#countinuenumber = 0while number < 10:if number == 5:continueprint(number)number+=1counitnue的作用是跳出本次迴圈繼續執行下一次迴圈。