电竞比分网-中国电竞赛事及体育赛事平台

分享

Python中等號賦值的執(zhí)行規(guī)則

 算法與編程之美 2025-12-07 發(fā)布于四川
1 問題
這篇文章是討論Python代碼在執(zhí)行的時候,由于規(guī)則引起的一些問題,或者說是需要注意的事項,主要出現(xiàn)在等號用代碼表示數(shù)學(xué)公式或結(jié)論這個問題時出現(xiàn)的一些計算問題,和定義函數(shù)時

2 方法
問題導(dǎo)出:通過學(xué)習(xí)網(wǎng)上的視頻,學(xué)習(xí)如何打出1到100的和、打出水仙花數(shù)等等實例來練習(xí)python技巧,這些簡單的等號兩邊賦值得問題,直到一道類似的簡單問題(如何打出斐波那契數(shù)列)遇到了等號兩邊多種賦值問題,從而引出多行賦值與單行賦值的區(qū)別,具體方法如下
通過對基礎(chǔ)進(jìn)行講解并舉例分析我們慣性思維理解的代碼運行的原則
再利用大部分人可能會認(rèn)為的運行方法來解決一道實際問題(打印斐波那契數(shù)列),從而發(fā)現(xiàn)問題
再通過代碼逐字逐句的分析,解決引出的問題并解答心中的疑惑。
通過總結(jié),提出目前學(xué)習(xí)中可能會出現(xiàn)的問題,以及后續(xù)學(xué)習(xí)中應(yīng)該認(rèn)識到的問題,總結(jié)學(xué)習(xí)經(jīng)驗

首先我們知道Python在執(zhí)行代碼時都是從上向下一次運行的,同時引出一個十分重要的概念,就是等號兩邊的計算規(guī)則:在python中等號的計算方式應(yīng)該是先計算等號右邊的值,再對左邊賦值,針對這個概念,我們用一串最簡單的例子來說明
代碼清單1
x = 0
for i in range(1,101):
x = x + i
print(x)
我們知道這是執(zhí)行100的階乘的代碼,這則代碼的原理是①為x賦值為1,②令i執(zhí)行循環(huán)從1到100,③在每個循環(huán)內(nèi)執(zhí)行x+i并且將得到的答案賦值給新的x繼續(xù)執(zhí)行下一循環(huán),④最終打印x的值。在知道了最基本的代碼運行規(guī)則后,我們來看這個最簡單的情況
  1. 我們都知道如果想要給多個自變量賦值,那么只需要在自變量之間以及賦值量之間加英文的逗號,比如
    代碼清單2
    a = 0
    b = 1
    c,d = 0,1
    前兩行代碼我們知道是分別為a和b賦值0和1,第三行代碼同樣是為c和d賦值0和1,雖然結(jié)果是一樣的,但是實際上兩者的運行規(guī)則是不一樣的,只是在這串代碼中還不夠直觀,我們來看這則代碼
    代碼清單3
    a = 0
    b = 1
    for i in range(1,6)
    a = b
    b = a+b
    print(a)
    代碼清單4
    a = 0
    b = 1
    for i in range(1,6)
    a,b = b,a+b
    print(a)
    通過對比代碼清單3和4能看出,看起來像是在同類型循環(huán)中,執(zhí)行給a賦值b再把b賦值為a+b的和,運行到python中結(jié)果是完全不一樣的,清單3中執(zhí)行結(jié)果為16(實質(zhì)為每一步循環(huán)先為a賦值b隨后再將b的值平方)清單4執(zhí)行結(jié)果為5(實質(zhì)為先計算等號右邊的值,即先計算b和a+b)
  2. 直到這里,我們雖然認(rèn)識到了等號賦值中的一些細(xì)節(jié)問題,但是我們可能會想,像這種數(shù)學(xué)運算是否值得我們在寫代碼時格外注意,我認(rèn)為是有必要的,目前我們常用到的需要在一行內(nèi)解決問題的還會有如下任務(wù)(交換a,b的值)

代碼清單5

a,b = 3,4

a,b = b,a

為什么我們習(xí)慣性選擇用一行將兩變量賦值呢?最重要的原因就是,在我們思考問題的時候,已經(jīng)記住了變量對應(yīng)的值,并且在思維中將對應(yīng)的變量的賦值情況朝著我們想的方向進(jìn)行,如果遇到涉及變量較多的計算公式,我們難以處理,而巧妙利用等號賦值運算的規(guī)則,就能避免出現(xiàn)錯誤的情況,一旦代碼寫多了,哪里出錯是非常麻煩的事情


3 結(jié)語

總得來說,雖然等號賦值語句并不復(fù)雜,但是在使用的時候如果能巧妙運用數(shù)學(xué)思維,將復(fù)雜的運算情況變簡單,也會對我們的整個代碼有著十分卓越的提升,兩者的最大的區(qū)別在于:單行賦值適用于用到多種變量,并且在一次計算中都會涉及同時一個變量可能會被賦值給另一個變量然后進(jìn)行計算;多行賦值適用于在后續(xù)計算中會分別用到多種變量進(jìn)行不同的計算,這樣我們可以用多行定義出不同的變量,方便后續(xù)使用。

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多