假設桌子上有兩個杯子,其中乙個杯子裝有可樂,另乙個杯子裝有牛奶,那麼如何將這兩個杯子中的飲料如何交換呢?
基於這種情況,假如我們要開發乙個python程式,在python程式當中定義一號杯子和二號杯子這兩個變數,我們通過鍵盤輸入一號杯子與二號杯子中的飲料,然後將交換前後兩個杯子變數中存放的資料列印到螢幕上。在完成這個任務之前,我們首先得要知道python變數與賦值的相關知識。
1. 「變數」
我們可以理解為資料的名字,或者是存放資料的「地方」,我們在編寫**的時候可能會多次用到某乙個資料,而在程式中直接使用資料很不方便,或者該資料含義不發生變化,但數值隨程式的執行發生變化,這個時候我們就可以使用變數來指代或者存放這條資料,從而實現相應的功能。「變數」的命名需要遵守以下兩個規則:1.只能夠由大小寫,下劃線和數字組成,第乙個字元不可能是數字。2.不能與python語言本身使用的名稱相同。而python語言本身使用的名稱被稱為保留字,在開發程式的時候不可以將這些保留字作為變數的名稱。
舉個例子:name、_name、_name9 這三個是正確的變數名,而9name、name+、for則是錯誤的變數名,因為變數不能是以數字開頭,也不能夠使用除大小寫字母、數字或下劃線以外的字元,而for是python語音中的單詞,也稱為python的保留字,也不可以使用。
2. 「賦值」
我們可以把變數比作乙個收納盒,這個「盒子」可以放任何物品,而向盒子裝東西的過程,就是在為變數賦值,變數賦值我們使用「=」號,如name=「python」 就是將「python」裝到名字為name的盒子裡面,這就是將「python」賦值給name。
回到一開始我們說的問題,定義一號杯和二號杯這兩個變數,我們輸入一號杯與二號杯中的飲料,然後交換兩個杯子變數中的資料並列印。在python當中類似print函式,使用input()函式來實現通過鍵盤輸入資料。
在input的括號中,可以新增輸入時的提示語,在為變數輸入資料時候,可以寫變數=input(),等號的左邊為變數名,右邊為input函式,通過變數名input()可以直接將變數值列印出來。例如:「可口可樂」賦值給變數glass,可以直接寫glass=「可口可樂」,也可以利用input()函式輸入資料為變數賦值。程式執行之後列印了glass的值為「可口可樂」再通過鍵盤提示列印glass的值,列印結果為牛奶。
生活中為了交換兩個杯子中的飲料,只是用兩個杯子是無法完成的,必須要先把乙個杯子騰空,才能將另外杯中的飲料倒入這個杯子裡,所以這個時候我們就需要引入第三個杯子,作為交換飲料的臨時杯,實際上,交換變數中的值也是同樣的道理,需要引入乙個臨時變數,才能完成兩個變數中資料的交換。
如:glass1變數代表杯子1儲存「可口可樂」,glass2變數代表變數杯子2儲存「牛奶」,而臨時杯變數temp是乙個空杯,首先通過**temp=glass1,將杯子1中的「可口可樂」倒入臨時杯,然後通過**glass1=glass2,將杯子2中的牛奶倒入杯子1,最後通過**glass2=temp,將臨時杯中的「可口可樂」倒入杯子2中,這樣我們就完成了兩個變數中的資料交換。
現在我們來看完整**,首先定義變數glass1、glass2代表杯子1杯子2,通過鍵盤輸入兩個杯子中的資料,定義變數temp代表臨時杯,通過print函式,列印交換前杯子1與杯子2中的資料,然後通過臨時杯temp交換glass1與glass2中的資料,最後在列印交換後杯子1與杯子2中的資料。
為了觀察杯子中的資料的變化,交換前後都是先列印杯子1後列印杯子2中的資料,完成開發之後執行程式,我們也還可以嘗試多組輸入測試程式的正確性。
Python 變數賦值小感
i 1 i i 17 print s 輸出是18 原因 賦值是把等號右邊的內容放到等號左邊的變數裡,而程式是一行一行往下執行的。在執行到第一行時,i 變數被賦值了1,而執行到第二行時,先從 i 變數中取出 1 加上 17,然後 i 又被重新賦值成18,再列印 i 所以最後輸出的結果是18。變數 i ...
python變數賦值
從python2.0開始 等號可以和乙個算術操作符組合在一起,將計算結果重新賦值給左邊的變數,這被稱為增量賦值,類似下面的語句 x x 1 現在可以被寫作 x 1增量賦值相對普通賦值不僅僅是寫法上的改變,最有意義的變化是第乙個物件,金盃處理一次,可變物件會被就地修改 無修拷貝引用 不可變物件則和a ...
python 變數賦值
對於變數的內容再去傳遞,傳遞的是物件,有的傳遞物件本身,有的傳遞物件引用。可變資料型別 列表 字典。a 1,2,3 b a c a a 0 8 d 8,2,3 print a 8,2,3 print b 8,2,3 print c 1,2,3 print d 8,2,3 print id a 140...