程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python·學習

編輯:Python

對象

python中一切皆對象,每個對象由:標識(identity),類型(type),value(值)組成

       1.標識用於唯一標識對象, 通常對應於對象在計算機內存中的地址,使用內置函數id(obj)可返回對象obj的標識(就是在內存塊中的地址)

       2.類型用於表示對象存儲的“數據”的類型,類型可以限制對象的取值范圍以及可執行的操作。可以使用type(obj)獲得對象的所屬類型。

       3.值表示對象所存儲的數據的信息,使用print(obj)可以直接打印出值。

對象的本質就是:一個內存塊,擁有它特定的值,支持特定類型的相關操作。

引用

在python中,變量也稱為對象的引用,因為,變量存儲的就是對象的地址,變量通過地址引用了“對象”。

變量位於:棧內存

對象位於:堆內存

python是動態類型語言

變量不需要顯示聲明類型,根據變量引用的對象,python解釋器自動確定數據類型。

python是強類型語言

每個對象都有數據類型,只支持該類型支持的操作。

標識符

標識符:用於變量,函數,類,模塊等的名稱。標識符有如下特定的規則:

1.區分大小寫,如:sxt和SXT是不同的

2.第一個字符必須是字母,下劃線,其後字符可為字母,數字,下劃線

3.不能使用關鍵字,比如:if,or,while等

4.以雙下劃線開頭和結尾的名稱通常有特殊含義,盡量避免這種寫法,比如__init__是類的構造函數。

變量的聲明和賦值

變量的聲明和賦值用於將一個變量綁定到一個對象上,格式如下:

變量名   =    表達式

刪除變量和垃圾回收機制

可以通過del語句刪除不再使用的變量,例:del a

如果變量沒有變量引用,就會被垃圾回收器回收,清空內存空間。

 鏈式賦值

鏈式賦值用於同一個對象賦值給多個變量

x=y=123   相當於:x=123;y=123

系列解包賦值

系列數據賦值給對應相同個數的變量(個數必須保持一致)

a,b,c  = 4,5,6    相當於:a = 4;b = 5;c = 6

使用系列解包賦值可以實現變量交換

常量

python不支持常量,沒有語法規則限制改變一個常量的值。只能約定常量不做更改

最基本內置數據類型介紹

 1.整數  2.浮點型   3.布爾型   4.字符串型

數字 

 

 整數

 python中,除10進制,還有其他三種進制:

            0b或0B  二進制

            0o或0O八進制

            0x或0X十六進制

這三種進制可以非常方便的進行“位運算'操作。

 使用int()實現類型轉換:

1.浮點數直接捨去小數部分,如:int(9.9)結果是:9

2.布爾值true轉為1,false轉為0,如:int(true)結果是1

3.字符串符合整數格式(浮點數格式不行)則直接轉成對應整數,否則報錯

自動轉型:

整數和浮點數混合運算時,表達式結果自動轉型成浮點數,比如:2+8.0的結果是10.0

浮點數 

浮點數,稱為float。浮點數用科學計數法表示

類型轉換和四捨五入 

1.類似int(),也可以使用float()將其他類型轉換成浮點數

2.整數和浮點數混合運算時,表達式結果自動轉型成浮點數

3.round(value)可以返回四捨五入的值(但不會改變原有值,而是產生新的值)

 比較運算符

 邏輯運算符

同一運算符 

 字符串

字符串基本特點

字符串的本質是:字符序列,python的字符串是不可變的,我們無法對原字符串做出任何修改。但是,可以將字符串的一部分復制到新創建的字符串,達到”看起來修改'的效果。

python不支持單字符類型,單字符也是作為一個字符串使用的。

字符串編碼

python3直接支持Unicode,可以表示世界上任何書面語言的字符。python3的字符默認就是16位Unicode編碼,ASCII碼是Unicode編碼的子集。

           使用內置函數ord()可以把字符轉換成對應的Unicode碼;

           使用內置函數chr()可以把十進制數字轉換成對應的字符。

引號創建字符串 

1.可用單引號或雙引號創建字符串。例如:a = ‘abc’;b = ‘’xuexi‘’

使用這兩種引號的好處是可以創建本身就包含引號的字符串,而不用使用轉義字符。(單夾雙,雙夾單)

2.連續三個單引號或三個雙引號,可以創建多行字符串。

 空字符串和len()函數

python允許空字符串的存在,不包含任何字符且長度為0.

len()用於計算字符串含有多少字符。

轉義字符

使用“\+特殊字符",實現某些難以用字符表示的效果。

字符串拼接

 可以使用+將多個字符拼接起來。

a.若+兩邊都是字符串,則拼接。

b.若+兩邊都是數字,則加法運算。

c.若+兩邊類型不同,則拋出異常。

可以將多個字面字符串直接放到一起實現拼接。

 字符串復制

使用*可以實現字符串復制

不換行打印

 調用print時,會自動打印一個換行符。當不想自動換行時,可以通過使用參數end = ”任意字符串“。實現末尾添加任何內容。

從控制台讀取字符串

 使用input()從控制台讀取字符串

 str()實現數字轉型字符串

 str()實現其他數據類型轉型為字符串

使用[ ]提取字符

字符串的本質就是字符序列,我們可以通過在字符串後面添加[ ],在[ ]裡面指定偏移量,可以提取該位置的單個字符。

       正向搜索:

               最左側第一個字符,偏移量是0,第二個偏移量是1,以此類推。直到len(str)-1為止。

       反向搜索:

              最右側第一個字符,偏移量是-1,倒數第二個偏移量是-2,以此類推,直到-len(str)為止。

              

 replace()實現字符串替換

字符串是不可改變的。通過[ ] 可以獲取字符串指定位置的字符,但是不能改變字符串,否則報錯。

字符串不可改變。但是,有時必須替換某些字符。這時只能通過創建新的字符串來實現。

replace( )替換字符串的過程中。實際上是創建了新的字符串對象,並指向了變量a,而不是修改了以前的字符串,內存圖如下:

字符串切片slice操作 

切片slice操作可以快速提取子字符串。標准格式為:

 [起始偏移量 start:終止偏移量end:步長 step]  左閉右開

[  :]提取整個字符串

字符串實現逆序輸出: 

 將字符串中所有a字符輸出:

split()分割和join()合並

split()可以基於指定分隔符將字符串分割成多個子字符串(存儲到列表中),如果不指定分隔符,則默認使用空白字符(換行符/空格/制表符)。

join()的作用和split()作用剛好相反,用於將一系列子字符串連接起來。

拼接字符串要點:

        使用字符串拼接符+,會生成新的字符串對象,因此不推薦使用+來拼接字符串。推薦使用join函數,因為join函數在拼接字符串之前會計算所有字符串的長度,然後逐一拷貝,僅新建一次對象。 

測試兩類拼接符耗費時間:

import time
time01 = time.time() #起始時刻
a = ""
for i in range(100000):
a += "study"
time02 = time.time() #終止時刻
print("運算時間:"+str(time02-time01))
time03 = time.time() #起始時刻
li = []
for i in range(100000):
li.append("study")
a = "".join(li) #使用join連接字符串
time04 = time.time() #終止時刻
print("運算時間:"+str(time04-time03))

字符串駐留機制和字符串比較

字符串駐留:僅保存一份相同且不可變字符串的方法,不同的值被存放在字符串駐留池中。python支持字符串駐留機制,對於符合標識規則的字符串(僅包含下劃線(_),字母和數字)會啟用字符串駐留機制。

字符串格式化

format()基本用法

format函數可以接受不限個參數,位置可以不按順序。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved