欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python動(dòng)態(tài)性強(qiáng)類型用法實(shí)例

 更新時(shí)間:2015年05月09日 12:06:02   作者:守株待兔  
這篇文章主要介紹了python動(dòng)態(tài)性強(qiáng)類型用法,對(duì)比C#實(shí)例分析了python動(dòng)態(tài)性強(qiáng)類型的使用方法,需要的朋友可以參考下

本文實(shí)例分析了python動(dòng)態(tài)性強(qiáng)類型用法。分享給大家供大家參考。具體如下:

Python變量聲明和定義

與C#不同,Python在使用變量之前無須定義它的類型,試著運(yùn)行下面的例子:

i = 12 print i

從上邊我們可以看到,變量 i 在使用前并不需要定義,但是必須聲明以及初始化該變量。試著運(yùn)行下面的例子:

i = 1
print i + j

上面的代碼會(huì)產(chǎn)生一個(gè)異常:“NameError: name 'j' is not defined”,Python提示變量 j 沒有定義。這點(diǎn)和BASIC等弱類型的語言不一樣。在BASIC中,執(zhí)行上述代碼的時(shí)候不會(huì)產(chǎn)生異常,你可以在EXCEL的VBA開發(fā)環(huán)境里試一下,把 print改為MsgBox就可以,結(jié)果會(huì)輸出 1 。這說明Python并不是一種類似BASIC的弱類型語言。

另一方面,Python與C#有一個(gè)很大的差異就是在程序運(yùn)行過程中,同一變量名可以(在不同階段)代表不同類型的數(shù)據(jù),看看下邊的例子:

i = 1
print i,type(i),id(i)
i = 10000000000
print i,type(i),id(i)
i = 1.1
print i,type(i),id(i)

變量 i 的類型在程序執(zhí)行過程中分別經(jīng)歷了int、long和float的變化,這和靜態(tài)類型語言(如C等)有很大不同。靜態(tài)語言只要一個(gè)變量獲得了一個(gè)數(shù)據(jù)類 型,它就會(huì)一直是這個(gè)類型,變量名代表的是用來存放數(shù)據(jù)的內(nèi)存位置。而Python中使用的變量名只是各種數(shù)據(jù)及對(duì)象的引用,用id()獲取的才是存放數(shù) 據(jù)的內(nèi)存位置,我們輸入的1、10000000000和1.1三個(gè)數(shù)據(jù)均會(huì)保存在id()所指示的這些內(nèi)存位置中,直到垃圾回收車把它拉走(在系統(tǒng)確定你 不再使用它的時(shí)候)。這是動(dòng)態(tài)語言的典型特征,它確定一個(gè)變量的類型是在給它賦值的時(shí)候。

另一方面,Python又是強(qiáng)類型的,試著運(yùn)行下邊的例子:

# -*- coding: utf-8 -*-
i = 10; j = 'ss'
print i+j
#正確的寫法是print str(i)+j,輸出10ss

會(huì)產(chǎn)生一個(gè)異常:“TypeError: unsupported operand type(s) for +: 'int' and 'str'”。在BASIC等弱類型的語言中,上邊的例子會(huì)正常運(yùn)行并返回(雖然有時(shí)候是不可預(yù)期的)結(jié)果。

所以,我們說Python既是一種動(dòng)態(tài)類型語言,同時(shí)也是一種強(qiáng)類型的語言,這點(diǎn)是和C#不同的地方。對(duì)于Python的這種變量的聲明、定義和使 用方式,C#程序員可能要花一段時(shí)間去適應(yīng),不過相信你會(huì)很快就喜歡上它,因?yàn)樗屖虑樽兊酶雍唵危ǘ也粫?huì)不安全)。而且,C# 4.0 已經(jīng)開始用類似的方式定義和使用變量(通過在變量名前加關(guān)鍵字dynamic),如果你先學(xué)了Python變量,將能夠更快的適應(yīng)C# 4.0的動(dòng)態(tài)編程特征。

希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 解決Python字典查找報(bào)Keyerror的問題

    解決Python字典查找報(bào)Keyerror的問題

    這篇文章主要介紹了解決Python字典查找報(bào)Keyerror的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • python 求某條線上特定x值或y值的點(diǎn)坐標(biāo)方法

    python 求某條線上特定x值或y值的點(diǎn)坐標(biāo)方法

    今天小編就為大家分享一篇python 求某條線上特定x值或y值的點(diǎn)坐標(biāo)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • django通過ajax發(fā)起請求返回JSON格式數(shù)據(jù)的方法

    django通過ajax發(fā)起請求返回JSON格式數(shù)據(jù)的方法

    這篇文章主要介紹了django通過ajax發(fā)起請求返回JSON格式數(shù)據(jù)的方法,較為詳細(xì)的分析了django處理ajax請求的技巧,需要的朋友可以參考下
    2015-06-06
  • 解決Pytorch在測試與訓(xùn)練過程中的驗(yàn)證結(jié)果不一致問題

    解決Pytorch在測試與訓(xùn)練過程中的驗(yàn)證結(jié)果不一致問題

    這篇文章主要介紹了解決Pytorch在測試與訓(xùn)練過程中的驗(yàn)證結(jié)果不一致問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • python使用技巧-文件讀寫

    python使用技巧-文件讀寫

    這篇文章主要介紹了python使用技巧-文件讀寫,Python提供了非常方便的文件讀寫功能,其中open是讀寫文件的第一步,通過open讀寫文件的方式和把大象裝冰箱是一樣的,下面我們就來具體介紹該內(nèi)容,需要的小伙伴可以參考一下
    2022-02-02
  • python中的多線程鎖lock=threading.Lock()使用方式

    python中的多線程鎖lock=threading.Lock()使用方式

    這篇文章主要介紹了python中的多線程鎖lock=threading.Lock()使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • python下setuptools的安裝詳解及No module named setuptools的解決方法

    python下setuptools的安裝詳解及No module named setuptools的解決方法

    這篇文章主要給大家介紹了關(guān)于python下setuptools的安裝以及No module named setuptools問題的解決方法,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-07-07
  • Python安裝及建立虛擬環(huán)境的完整步驟

    Python安裝及建立虛擬環(huán)境的完整步驟

    在使用 Python 開發(fā)時(shí),建議在開發(fā)環(huán)境和生產(chǎn)環(huán)境下都使用虛擬環(huán)境來管理項(xiàng)目的依賴,下面這篇文章主要給大家介紹了關(guān)于Python安裝及建立虛擬環(huán)境的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • 最基礎(chǔ)的Python的socket編程入門教程

    最基礎(chǔ)的Python的socket編程入門教程

    這篇文章主要介紹了最基礎(chǔ)的Python的socket編程入門教程,包括最基本的發(fā)送和接受信息等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • python八種降維方法匯總

    python八種降維方法匯總

    在Python中,有多種降維方法可以使用,本文就來介紹八種降維方法以及使用場景,具有一定的參考價(jià)值,感興趣的可以一下,感興趣的可以了解一下
    2023-10-10

最新評(píng)論