Python 魔法書/03.變數
好的,讓我們回到編碼。我們之前在哪裡?啊,是的。我們解釋了資料型別,比如整數和字串。但是,如果我們能夠以某種方式儲存資料,在您的計算機已經在硬碟、記憶體、線上等位置儲存資料之後,這是否很酷?資料一直在變化,所以儲存是必須的。
程式語言將資料儲存在變數中。讓我們看看這個例子。
a = 12
b = "I have"
c = "ideas"
print(b+" "+str(a)+" "+c)
好的,讓我們一步一步地來。在第一行,我們定義一個名為“a”的變數,並在其中儲存 12,一個 int 值。分配變數就是這麼簡單。您只需提供名稱、等號和一個值。在第二行,我們定義一個名為“b”的變數,並在其中儲存“我擁有”,一個 str 值。最後,第三行定義了“c”,併為其分配了“想法”,另一個 str 值。
下一行需要解釋一下,但很容易理解。它是一個列印函式。它是一個函式,因為它有一個名稱、一個引數以及括號的開頭和結尾。“+”用作運算子來連線字串。一個變數可以是任何型別,但正如我所說,Python 不喜歡您混合不同的型別,因為我們的列印函式只接受字串值。如果我們只是讓它成為“+a”,它會因為這是一個整數(int 值)而報錯。我們需要做的是將變數“a”的值轉換為字串。由於我們可以使用 int() 和 float() 將型別轉換為整數或浮點數,因此我們應該可以使用 str() 將型別轉換為字串。因此,**函式** str() 與引數“a”一起使用。
請注意,我們使用了 +" " 作為列印函式引數的一部分,以便在字串之間輸入空格。我們也可以在分配變數時在字串中包含這些空格。編碼的妙處在於它允許我們靈活地進行操作。
一個不與使用者互動的程式不是一個很有用的程式。如果我們能夠以某種方式與使用者交流呢?我們可以使用 input() 函式。在執行此程式碼之前,請確保您的作業系統終端/控制檯已開啟,否則它可能會凍結 Blender。
name = input("What's your name?")
print("Hello "+name+". My name is Python, nice to meet you." )
(貢獻者 9-1-2012 注:示例程式碼因“NameError: name 'John' is not defined”而崩潰)
這段程式碼會凍結 Blender,但不要擔心,這段程式碼不會損壞它;實際上,它會凍結是因為它正在等待輸入。切換到終端/控制檯視窗,它會顯示“您的姓名?”這行。繼續輸入您的姓名並按回車鍵。如果您輸入了 John,它會列印“你好 John。我的名字是 Python,很高興認識你”。Python 不好玩嗎?!
正如您所見,我們將 input() 函式的輸出分配給一個變數。函式可以用引數接收輸入,並可以透過返回型別輸出資料。在這種情況下,它返回資料型別“str”,更準確地說,是一個包含我們輸入的姓名的字串。從那裡,我們將 name 變數與另外 2 個字串連線起來,形成最終的列印內容。
讓我們嘗試以下程式碼
number1 = int(input("Give me the first number : "))
number2 = int(input("Give me the second number : "))
print( "If I add " + str(number1) + " and "+str(number2)+" it equals to "+str(number1+number2))
不要讓這讓你感到複雜;它仍然很容易理解。您首先看到的是,函式可以將另一個函式作為引數。我們在第 1 行和第 2 行所做的是從使用者那裡獲取輸入並將其轉換為整數,記住 input() 函式只能返回字串。然後在列印函式中,我們將變數重新轉換為字串,以便將它們連線成一個字串。之後,我們將變數 _number1_ 和 _number2_ 加在一起。結果被轉換為字串,然後與最終字串連線起來。
還有另一種方法可以做到這一點,如下所示
number1 = input("Give me the first number : ")
number2 = input("Give me the second number : ")
print( "If I add %s and %s it equals to %d" %(number1 ,number2, int(number1)+int(number2)))
所以這在做完全相同的事情,只是方法不同。“%s” 在我們的字串中實際上不是字串的一部分。它只告訴 print() 在這裡放置一個字串,該字串在 %() 中定義。所以第一個 %s 放置了 number1 的字串值,第二個 %s 放置了 number2 的字串值。但是,%d 放置了一個**整數**,它是將 number1 變數和 number2 變數轉換為整數並將其加在一起的結果。正如您所見,透過這種方式,我們不必轉換我們的變數,除非在我們將它們加在一起時。這個過程被稱為字串格式化。它在您進行許多不同型別之間的轉換並且想要將所有內容連線到一個字串中時非常有用。您使用什麼取決於您。想要了解更多關於字串格式化的資訊嗎?然後去這裡。
變數有一些規則需要遵守。首先,在您命名它們時,您可以在其中使用數字,但變數的名稱必須以字母開頭。以下是**不能**做的事情
123 = 3
也不要這樣做
123b = 3
不要在變數名中新增空格
number 1= 3
您可以這樣做
number_1= 3
奇怪的是,您也可以這樣做,因為可以隨時為變數分配一個不同的值
number_1= 3
number_1 = 4
變數也可以被分配包含在其他變數中的值。在這種情況下,變數的最終值將是 4。
number_1= 3
number_2 = 4
number_1 = number_2
但是,如果我們這樣做,同樣,number_1 的最終值將是 4。為什麼呢?因為 number_2 的變數改變不會在賦值後改變 number_1 的值。
number_1= 3
number_2 = 4
number_1 = number_2
number_2 =10
另一個適用於 Python 中所有內容的非常重要的規則是區分大小寫。區分大小寫指的是字母的大小寫。例如,Var1 和 var1 是兩個不同的變數。這意味著大小寫非常重要。許多程式設計師使用它進行命名。MyFirstVariable 當然與 myfirstvariable 或 mYfirsTvariable 等不同。就我個人而言,我不使用大小寫來命名我定義或分配的任何內容。我更喜歡使用下劃線,但這完全取決於您。請記住,大小寫適用於 Python 中的所有內容,因此您需要小心輸入命令。