網(wǎng)站首頁 編程語言 正文
前言
看到這里已經(jīng)學(xué)習(xí)了創(chuàng)建各種 Python 數(shù)據(jù)類型的值。并且顯示的值都是文字或常量值。
>>> print(9.98) 9.98
但是對于復(fù)雜代碼的情況需要下,程序需要對應(yīng)的數(shù)值隨著代碼的變化而變化的情況并且進(jìn)行更改。
可以 Python 程序中的每一項(xiàng)數(shù)據(jù)如何可以用抽象術(shù)語object來描述,使用稱為variables的符號名稱來操作對象
變量賦值
將變量視為附加到特定對象的名稱。在 Python 中,變量不需要像許多其他編程語言那樣事先聲明或定義。要?jiǎng)?chuàng)建變量需為其分配一個(gè)值,然后開始使用它。使用單個(gè)等號 ( =) 完成賦值。
>>> n = 998
這里 n 被賦值 998。那么 n 就可以在語句或表達(dá)式中使用,其值將被替換。
>>> print(n) 998
就像文字值可以直接從 REPL 會話中的解釋器提示中顯示,而不需要print()。
>>> n 998
如果更改 n 的值并再次使用它,則將替換為新值。
>>> n = 1000 >>> print(n) 1000 >>> n 1000
Python 還允許鏈?zhǔn)劫x值,這使得可以同時(shí)將相同的值分配給多個(gè)變量。
>>> a = b = c = 998 >>> print(a, b, c) 998 998 998
變量類型
在許多編程語言中變量是靜態(tài)類型的。這意味著變量最初被聲明為具有特定的數(shù)據(jù)類型,并且在其生命周期內(nèi)分配給它的任何值都必須始終具有該類型。
Python 中的變量不受此限制。在 Python 中,可以為變量分配一個(gè)類型的值,然后再重新分配一個(gè)不同類型的值。
>>> var = 1.5 >>> print(var) 1.5 >>> var = "string" >>> print(var) string
對象引用
Python 是一種高度面向?qū)ο蟮恼Z言。事實(shí)上 Python 程序中的幾乎每一項(xiàng)數(shù)據(jù)都是特定類型或類的對象。
# 創(chuàng)建整數(shù)對象、賦值、打印 >>> print(100) 100 # 查看數(shù)據(jù)類型 >>> type(100)
賦值創(chuàng)建一個(gè)具有值的整數(shù)對象,100并將變量分配 n 為指向該對象。
>>> print(n) 100 >>> type(n)
如果用另外的變量賦值,Python 不會創(chuàng)建另一個(gè)對象。只是創(chuàng)建一個(gè)新的符號名稱或引用,m 它指向同一個(gè)對象 n。叫 單個(gè)對象多次引用 。
>>> m = n
使用 value 創(chuàng)建一個(gè)新的整數(shù)對象 200,并m成為對它的引用的話就會形成 對單獨(dú)對象的引用 。
后面如果使用字符串賦值。
>>> n = "foo"
不再有任何對整數(shù)對象的引用100,并且無法訪問。
當(dāng)一個(gè)對象的引用數(shù)降到零時(shí),它就不再可以訪問了。到那時(shí),它的生命周期就結(jié)束了。Python 最終會注意到它不可訪問并回收分配的內(nèi)存,以便將其用于其他用途。在計(jì)算機(jī)術(shù)語中,這個(gè)過程被稱為 垃圾回收。
對象身份
在 Python 中,創(chuàng)建的每個(gè)對象都有一個(gè)唯一標(biāo)識它的數(shù)字,并且不會存在生命周期兩個(gè)對象出現(xiàn)重疊的相同標(biāo)識符。一旦某個(gè)對象被 垃圾回收,那么該標(biāo)識符可以再次使用。
內(nèi)置 Python 函數(shù) id() 返回對象的整數(shù)標(biāo)識符。使用該 id() 函數(shù),可以驗(yàn)證兩個(gè)變量確實(shí)指向同一個(gè)對象。
>>> n = 100 >>> m = n >>> id(n) 2006284448 >>> id(m) 2006284448 >>> m = 200 >>> id(m) 2006287648
賦值后 m = n,m 兩者 n 都指向同一個(gè)對象,由事實(shí)證實(shí) id(m) 和 id(n) 返回相同的數(shù)字。一旦 m 被重新分配給200,m 并 n 指向具有不同身份的不同對象。
變量名
Python 中的變量名可以是任意長度,可以由大小寫字母(A-Z, a-z)、數(shù)字(0-9)和下劃線字符(_)組成。另一個(gè)限制是,雖然變量名可以包含數(shù)字,但變量名的第一個(gè)字符不能是數(shù)字。
>>> name = "Mr數(shù)據(jù)楊" >>> Age = 36 >>> is_teacher = True >>> print(name, Age, is_teacher ) Mr數(shù)據(jù)楊 36 True
變量也有自己的命名規(guī)則。
- 變量可以由字母、下劃線和數(shù)字組成。
- 變量不能以數(shù)字開頭。
- 變量不能與關(guān)鍵字重名。
- 變量區(qū)分大小寫。
# 官方的命名規(guī)則 >>> my_name = "Mr數(shù)據(jù)楊" # 小駝峰式命名法 >>> myName = "Mr數(shù)據(jù)楊" # 大駝峰式命名法 >>> MyName = "Mr數(shù)據(jù)楊" >>> age = 1 >>> Age = 2 >>> aGe = 3 >>> AGE = 4 >>> a_g_e = 5 >>> _age = 6 >>> age_ = 7 >>> _AGE_ = 8 >>> print(age, Age, aGe, AGE, a_g_e, _age, age_, _AGE_) 1 2 3 4 5 6 7 8
保留字(關(guān)鍵字)
不能沖突的關(guān)鍵詞 33 個(gè)
>>> import keyword >>> print(",".join(keyword.kwlist)) >>> False,None,True,and,as,assert,break,class,continue,def,del,elif,else,except,finally,for,from,global,if,import,in,is,lambda,nonlocal,not,or,pass,raise,return,try,while,with,yield
具體含義如下,不用刻意去記,這些都會有區(qū)別于普通代碼的顏色提示,你要是用他們做變量名了,一看就會知道的。
and: 用于表達(dá)式運(yùn)算,邏輯與操作
as: 用于類型轉(zhuǎn)換
assert: 斷言,用于判斷變量或條件表達(dá)式的值是否為真
break: 中斷循環(huán)語句的執(zhí)行
class: 用于定義類
continue: 繼續(xù)執(zhí)行下一次循環(huán)
def: 用于定義函數(shù)或方法
del: 刪除變量或者序列的值
elif: 條件語句 與if else 結(jié)合使用
else: 條件語句 條件語句,與if,elif結(jié)合使用。也可以用于異常和循環(huán)使用
except: 包括捕獲異常后的操作代碼,與try,finally結(jié)合使用
finally: 用于異常語句,出現(xiàn)異常后,始終要執(zhí)行finally包含的代碼塊。與try,except結(jié)合使用
from: 用于導(dǎo)入模塊,與import結(jié)合使用
global: 定義全局變量
if: 條件語句,與else,elif結(jié)合使用
import: 用于導(dǎo)入模塊,與from 結(jié)合使用
in: 判斷變量是否存在序列中
is: 判斷變量是否為某個(gè)類的實(shí)例
lambda: 定義匿名函數(shù)
not: 用于表達(dá)式運(yùn)算,邏輯非操作
or: 用于表達(dá)式運(yùn)算,邏輯或操作
pass: 空的類,函數(shù),方法的占位符
print: 打印語句
raise: 異常拋出操作
return: 用于從函數(shù)返回計(jì)算結(jié)果
try: 包含可能會出現(xiàn)異常的語句,與except,finally結(jié)合使用
while: 循環(huán)語句
with: 簡化Python的語句
yield: 用于從函數(shù)依次返回值
help(keywords 對應(yīng)關(guān)鍵字) 可以通過鍵入Python 解釋器隨時(shí)查看此列表。保留字區(qū)分大小寫,必須完全按照所示使用,除了 False , None 和 True 其他都是區(qū)分大小寫。
>>> for = 1 SyntaxError: invalid syntax
原文鏈接:https://blog.csdn.net/qq_20288327/article/details/123653788
相關(guān)推薦
- 2022-12-02 python3中join和格式化的用法小結(jié)_python
- 2023-01-05 Kotlin?object的幾種用法示例詳解_Android
- 2022-09-10 docker?machine安裝極狐gitlab的過程詳解_docker
- 2022-11-30 C#?WinForm自動更新程序之文件上傳操作詳解_C#教程
- 2022-08-14 深入了解Android?IO的底層原理_Android
- 2022-11-06 Android?Navigation重建Fragment問題分析及解決_Android
- 2022-02-21 windows11安裝docker desktop
- 2022-04-11 git 強(qiáng)行拉取覆蓋本地方法(Git強(qiáng)制覆蓋本地代碼)
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支