day01 動態型別簡介

2022-08-28 14:54:21 字數 2041 閱讀 5647

一.第乙個python程式

print(』hello world』)

二. 動態型別簡介

在學習python之時,掌握python程式設計中最基本的概念是很重要的。動態型別以及由他提供的多型性,是python語言簡潔和靈活的基礎。

1. 缺少型別宣告語句

在python中,我們使用變數時,沒有宣告變數的存在和型別(如 int a= 1),但是變數還是在工作,為啥子?其實在python中,型別是在程式的執行過程中自動決定的,而不是通過**的宣告來決定的。

ps:這個概念對變數、物件和他們之間的關係都適用。

2. 變數、物件和引用

1)變數例項:name=』test』

2)在python中,變數是在賦值的時候才建立的,它可以引用任何型別的物件(物件才有型別)。並且是在引用之前就必須進行賦值,這意味著變數進行賦值後才可進行更改。

3)在python中變數和物件儲存在記憶體中的不同部分,而從變數到物件的連線稱之為引用,意思是引用是一種關係(以指標的形式實現)。一旦變數被使用,也就是引用,python會自動跟隨這個變數到相應物件的連線。

3. 型別屬於物件,不屬於變數

a = 4

a = 『testdemo』

print(a)

a.在上述**中,看起來a從開始的整數變成了乙個字串。然而事實是上面提過的:變數名是沒有型別的,物件才有。所以a的型別沒有變,只是讓它引用了不同型別的物件而已。

b.對物件來說,物件會知道自己的型別。每個物件都會有乙個頭部資訊,其中標記了這個物件的型別,而乙個給定的變數往往只會引用一種型別的物件,但不是必須的。

c.物件有兩個頭部資訊:型別標誌符、引用計數器。

4. 物件的垃圾**機制

在3中,把物件賦給了不同型別的物件,那麼它前乙個引用的值發生了什麼呢?

答案是每當乙個變數名引用乙個新的物件是,之前的那個物件占用的空間就會被**,這種自動**物件空間的技術叫垃圾收集。python中的每個物件都有乙個計數器,記錄了當前指向該物件引用的數目,一旦計數器為0,這個物件的記憶體空間就會被**。

垃圾**的好處最直接的就是可以任意使用物件而不用考慮記憶體空間,省去大量**。

5. 共享引用

共享引用的意思是多個物件引用了相同的物件。比如如下**

a = 3

b = a

a = a + 2 or a = 『ssss』

解釋:python讓變數a引用了物件3,讓b引用於a相同的物件,然後將通過賦值或者其他操作將a設定成為乙個完全不同的物件。但是這並不會產生b發生改變的作用。事實上整數不可變,只是會產生新的物件。

6. 共享引用和原處修改

在python中,有一些物件以及操作確實會在原地改變物件。比如乙個列表中進行賦值操作,就會改變這個列表物件,而不是生產乙個新的物件。例如如下**

l1 = [1,2,3,4]

l2 = l1

l1[0] = 7

print(l1,l2)

s輸出結果:[7, 2, 3, 4] [7, 2, 3, 4]

7. 變數定義的規則

1. 變數名只能是字母、數字和下劃線的組合

2. 變數名的第乙個字元不能是數字。

8. 習題

a=』span』

b=ab=』shu』

print(a,b)

上述**中,會改變a列印出來的值嗎?

答:不會。

a = [『span』]

b=ab[0]=』ss』

print(a,b)

上述**中,會改變a的值嗎?

答:會。

a = [『span』]

b=a[:]

b[0]=』kk』

print(a,b)

上述**中,會改變a的值嗎?

答:不會

學習筆記day01

作業系統簡稱 operating system 簡稱os 其的本質就是乙個軟體,作業系統對上可以管理應用程式,對下可以訪問硬體裝置。主流的作業系統 pc機領域 windows系列,ios,伺服器領域 linux系列,unix,windows server。手持裝置 ios,android,塞班,wi...

測試day01整理

對比國內外現狀,和國際知名企業來說,微軟的開發人員和測試人員的比例是1 2,而國內的現狀是20 1,國內企業比較好點的也才是2 1,所以根據國內發展的必然趨勢,測試在未來幾年內國內的需求是大大增加的。當前的軟體行業已經不是功能為王了,使用者不僅僅只盯著功能是否滿足需求,還會對軟體容易上手,執行效率是...

前端學習Day01

alt shift 1 非小鍵盤 視窗分屏,恢復預設1屏 alt shift 2 左右分屏 2列 alt shift 3 左右分屏 3列 alt shift 4 左右分屏 4列 alt shift 5 等分4屏 alt shift 8 垂直分屏 2屏 alt shift 9 垂直分屏 3屏 ctrl...