在編程語言中,變量是一個(gè)必不可少的詞,大家也可以把變量理解成名字,也可以理解為一個(gè)標(biāo)簽。
舉個(gè)例子來講解一下變量,比如我們購買了一套名為“dotcpp”的房子,我們?cè)凇癲otcpp”這個(gè)房子里存放了1000本書,我們可以這樣來定義:
dotcpp = 1000
再舉個(gè)例子,當(dāng)你的信到了郵局,你到了郵局之后只需要提供你的名字或者身份證號(hào)或者手機(jī)號(hào)等信息,工作人員就會(huì)通過你的名字及附屬信息去找到相應(yīng)的信。
大家將變量看做名字更方便于掌握,大家都有屬于自己的名字,一般來說名字是不會(huì)去輕易修改的,但是大家的體重會(huì)變化,所以名字即為變量。
1. 定義變量
Python的變量和其他語言不太一樣,在python中不需要提前聲明變量及其類型,可以直接賦值即創(chuàng)建各種類型的變量。定義變量需要遵守規(guī)則:
1)選擇有意義的單詞作為變量。
2)不可以使用關(guān)鍵字作為變量。
3)變量需要是一個(gè)有效的標(biāo)識(shí)符。
4)避免使用0和1
變量的賦值通過‘=’來實(shí)現(xiàn)。格式為:變量 = 值,例如:
Name = '李華' #創(chuàng)建值為‘李華’的name變量 age = 18 #創(chuàng)建值為‘18’的age變量 classname = '19級(jí)計(jì)算機(jī)1班' #創(chuàng)建值為‘19級(jí)計(jì)算機(jī)1班’的name變量
需要注意的是,如果在定義班級(jí)的時(shí)候使用class作為變量,則會(huì)報(bào)錯(cuò),因?yàn)閏lass是關(guān)鍵字不可以作為變量。
2. 變量類型是可變的
Python是一門動(dòng)態(tài)語言,因此變量的類型是可以隨時(shí)發(fā)生變化的,可能我們開始定義的時(shí)候,變量名是int類型,但是我們通過強(qiáng)制類型轉(zhuǎn)換最后成了浮點(diǎn)型等其他類型。
通過下面例子來看一下(解釋都在注釋里):
age = 18 print(age)#打印age看一下值 print(type(age))#這里通過type()函數(shù)來輸出age的類型 age = float(age)#強(qiáng)制類型轉(zhuǎn)換把a(bǔ)ge轉(zhuǎn)換為浮點(diǎn)型 print(age)#再輸出一下age的值,看看什么變化 print(type(age))#最后看一次age的類型
輸出結(jié)果為:
18 <class 'int'> 18.0 <class 'float'>
3. 多個(gè)變量指向同一個(gè)值
在Python中,多個(gè)變量可以指向同一個(gè)值,我們將3個(gè)變量都賦值為1024,再分別使用內(nèi)置函數(shù)id()來訪問變量的內(nèi)存地址,可以得到同一個(gè)結(jié)果,看下面代碼:
here = there = that = 1024 print('變量here在內(nèi)存中的地址:',id(here)) print('變量there在內(nèi)存中的地址:',id(there)) print('變量that在內(nèi)存中的地址:',id(that))
輸出結(jié)果為:
變量here在內(nèi)存中的地址: 51695856 變量there在內(nèi)存中的地址: 51695856 變量that在內(nèi)存中的地址: 51695856
通過輸出結(jié)果我們可以看出這些變量對(duì)應(yīng)的地址是同一個(gè)地址,在不同電腦上對(duì)應(yīng)的地址可能是不相等的,但三個(gè)元素對(duì)應(yīng)的內(nèi)存地址是一致的。
在這里需要注意的是賦值的時(shí)候需要同時(shí)賦值,這樣能確保三個(gè)變量使用的是同一個(gè)值的地址,如果分別對(duì)三個(gè)變量賦同一個(gè)值,這樣有可能會(huì)導(dǎo)致三個(gè)變量在內(nèi)存中被分配了三個(gè)不同的地址。
4. 總結(jié)
本章我們學(xué)習(xí)了變量的概念及用法,下面三小節(jié)我們來學(xué)習(xí)Python的基礎(chǔ)數(shù)據(jù)類型。
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競(jìng)賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:
一點(diǎn)編程也不會(huì)寫的:零基礎(chǔ)C語言學(xué)練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程
從零到寫出一個(gè)爬蟲的Python編程課程
只會(huì)語法寫不出代碼?手把手帶你寫100個(gè)編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競(jìng)賽課入門課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程