python打基礎

前言

上期把python中的基礎數據類型和內置數據類型做了羅列,示例代碼如下:

1)注釋。

# 第一種#"""第二種"""【實例】使用三重引號注釋以及廢除代碼# "以下幾行代碼的主要作用是創建菜單欄并在菜單欄添加子菜單"menu = AFXMenuPane(selfAFXMenuTitle(self,'主菜單', None, menu)AFXMenuCommand(self,menu,'子菜單一‘afxCreatePNGIcon(t"iconlicon1.PNG"),myForm1(self),AFXMode.ID_ACTIVATE)AFXMenuCommand(self,menu,'子菜單二,afxCreatePNGIcon(r"icon.icon2.PNG"),myForm2(self),AFXMode.ID_ACTIVATE) # 這是創建一個標志的語句。"""這樣就把多條語句注釋掉了subMenu= AFXMenuPane(self)AFXMenuCascade(self, menu.'子菜單三',None, subMenu)AFXMenuCommand(self, subMenu,'子項目1', None,self,AFXMode.ID_ACTIVATE)AFXMenuCommand(self,subMcnu.'子項目2', Nonc,self,AFXMode.ID_ACTIVATE)"""

2)內置數據類型

2.1)元組

#元組一經確定,不能在作修改,所以比較安全。tuple1 = ()tuplel1 = (1,2,3,4,4) #元組型數據( tuple)由一系列元素組成,且對每個元素的數據類型不做限制tuplel2 = (1,(2,3),4,4)

2.2) 列表常用操作

 創建一個列表l1 = []l2 = list()myList =[0,1,22,2,1,2,3,2,3,4,3,4,5]# 幾個常用函數l1.len() #查看列表長度l1.append() #增加元素于列表末尾myList.index(5) #返回某一元素在list 中首次出現的索引號myList.index(4) #當某一元素多次出現時,返回其首次出現時的索引號myList.inscrt(2,22) #在列表中指定位置插入元素myList.reverse() #對列表中的元素反序排列myList.sort() #對列表中元素進行排序

2.3) 字典常用操作(劃重點)

# 新建字典(方法之一)dict1=dict(AAA=5000,BBB=200,CCC=1200)#dictionaries型數據調用keys()、values()、items()函數v1= dictl.keys()#獲取字典的所有鍵值dict1.items() #獲取字典所有元素dict1.items([0])#獲取字典中某一元素dict1.itemsO[0][11]#獲取字典中某一元素的鍵或者值dict1.values() #獲取字典中的所有值del(dict1 ["AAA"]) #刪除字典中某一鍵值對dict1["DDD"]=999 #字典中添加新元素dict1.pop("cCC")#pop函數,返回某鍵對應的值,并在字典中刪除該鍵值對dict1.clear()#清空字典

1 數據類型轉換

先回憶一下之前的兩個表格。

 基礎數據類型

數據類型

表示

整型

Int

實型

Double, float

布爾型

Bool

字符串

str

其他數據類型

None等

內置數據類型

數據類型

表示

特點

安全性

列表

List

有序,可更改,可重復

元組

Tuple

有序不可更改,可重復

Set

無序,不可更改,無重復

字典

Dict

無序,可更改,無重復

                    其他



只能從低向高轉:列如int 轉float, 反過來會有精度損失。這就不過多提了,相信大家都有c語言基礎的。但python中的數據類型沒有c語言中那么嚴格,可以說是比較隨意的,因為python官方在背后默默承擔了你(用戶)隨意的代價。給你自由過了火.jpg。
1.2 常用數據類型轉換

(1)將字符串類型轉化為列表類型myString='noise'myList= list(myString)(2)將字符串類型轉化為元組類型myTuple = tuple(myString)(3)將元組轉化為列表mylist=list(myTuple)(4)將浮點型轉化為整型a=3.1415b=int(a)(5)將整型轉化為浮點型c=float(b)(6)將浮點型數據轉化為字符串c=3.0str(c)(7)返回ASCII 碼對應的字符print(chr(65))(8)把字符串或者數字轉化為復數a-complex("2+5j") #將字符串轉化為復數(9)將字符串或者數字轉化為長整型數據long("123") #將字符串轉化為長整型long(123) #將整數轉化為長整型long(123.5) #將浮點型數據轉化為長整型

通過這幾個案例,可以體會到python中的數據類型十分自由。雖然有十分的自由,但也伴隨著代價。還隱藏著很多自動類型轉換,轉著轉著 就不知道這個數到底是numpy型還是pandas型,還是tensor型,所以type()函數就排上用場了。

2 PYTHON中一些特殊的概念

2.1動態類型簡介

前面講述了Python中常用的數據類型,可以看出,在Python語言中使用變量時,都沒有聲明變量的存在以及類型,但變量還可以工作。這一點與靜態編譯語言CC++或Java有很大的區別。這就是Python語言的動態類型模型。

在Python語言中,數據類型是在運行過程中自動決定的,而不是通過代碼聲明。變量在賦值的時候才被創建,它可以引用任何類型的對象,變量和對象分別存儲在內存中的不同位置,兩者通過鏈接進行關聯。

A=5

Python將會執行3個不同的步驟去完成這個請求,這些步驟反映了Python語言中所有賦值的操作過程。
(1)創建一個新對象來代表數字5。
(2)創建一個變量a。
(3)將變量a與新對象a相關聯。
在Python中從變量到對象的鏈接稱作引用。也就是說,引用是一種關系,以內存中的指針形式實現。一旦變量被使用(也就是被引用),Python自動跟隨這個變量到對象的鏈接。

2.2類型的歸屬
在Python語言中,類型屬于對象,不屬于變量,我們可以對一個變量進行多次賦值,且允許每次賦值的類型不同,例如:

#單變量多次賦值a=5#.將變量a與整型對象關聯a='five'#將變量a與字符串型對象關聯a=5.0#將變量a與浮點型對象關聯


上述代碼中,變量a一開始是整型,然后變成一個字符串,最后變成了浮點數。這一點,在C語言中是無法理解的。但是在Python中,理解起來就很簡單,因為變量名根本沒有類型。實際上Python的變量就是在特定的時間引用了一個特定的對象,而對象是具有類型的,每個對象都包含了一個頭部信息,其中標記了對象的類型。
可以看出,Python代碼比通常慣用的代碼更加靈活,如果能正確地使用Python,代碼能夠自動以多種類型進行工作。

2.3垃圾回收機制
上述例子中,當重新給變量a賦值時,它前一個引用對象是會發生變化的。在Python中,每當一個變量名被賦予了一個新的對象時,且之前的那個對象沒有被其他變量名或對象所引用的話,那么之前的那個對象占用的空間就會被回收,這種自動回收對象占用空間的技術叫作垃圾回收。
在Python內部,垃圾回收是如何實現的呢?實際上,每個對象中都保持了一個計數器,計數器記錄了當前指向該對象的引用次數,也就是該對象被引用的次數。一旦這個計數器被設置為零,這個對象的內存空間就會被自動回收。垃圾回收最直接且可感受的好處就是,可以在腳本中任意使用該對象而不需要考慮釋放內存空間。與C和C++這樣的底層語言相比,省去了大量基礎代碼。

古人言,故不積跬步,無以至千里;不積小流,無以成江海。學習一門技術也是這樣,只有持之以恒,才能不斷精進。 python打基礎的圖1python打基礎的圖2python打基礎的圖3

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP