C語言中文網 目錄

Python變量及其使用

無論使用什么語言編程,總要處理數據,處理數據就需要使用變量來保存數據。

形象地看,變量就像一個個小容器,用于“盛裝”程序中的數據。常量同樣也用于“盛裝”程序中的數據。常量與變量的區別是:常量一旦保存某個數據之后,該數據就不能發生改變;但變量保存的數據則可以多次發生改變,只要程序對變量重新賦值即可。

Python 使用等號(=)作為賦值運算符,例如 a = 20 就是一條賦值語句,這條語句用于將 20 裝入變量 a 中,這個過程就被稱為賦值,即將 20 賦值給變量 a。

Python 是弱類型語言,弱類型語言有兩個典型特征:
  1. 變量無須聲明即可直接賦值:對一個不存在的變量賦值就相當于定義了一個新變量。
  2. 變量的數據類型可以動態改變:同一個變量可以一會兒被賦值為整數值,一會兒被賦值為字符串。

Python 是弱類型語言

對于沒有編程基礎的讀者,可以先不編寫真正的 Python 程序,而是先打開 Python 的交互式解釋器,在這個交互式解釋器中“試驗” Python。

下面先在 Python 解釋器中輸入如下內容:

>>> a = 5
>>>

上面代碼沒有生成任何輸出,只是向交互式解釋器中存入了一個變量 a,該變量 a 的值為 5。

如果我們想看到某個變量的值,可以直接在交互式解釋器中輸入該變量。例如,此處想看到變量 a 的值,可以直接輸入 a。

>> a
5
>>

從上面的交互式過程可以看到,交互式解釋器輸出變量 a 的值:5。

接下來,如果改變變量 a 的值,只要將新的值賦給(裝入)變量 a 即可,新賦的值會覆蓋原來的值。例如:

a = 'Hello , Charlie'
>>>

此時變量 a 的值就不再是 5 了,而是字符串“Hello , Charlie”,a 的類型也變成了字符串。下面再次輸入 a ,讓交互式解釋器顯示a的值:

>> a
'Hello , Charlie'

如果想查看此時 a 的類型,可以使用 Python 的 type() 函數。

形象地說,函數就相當于一個有魔法的“黑盒子”,你可以向這個“黑盒子“提供”一些數據,這個“黑盒子”會對這些數據進行處理,這種處理包括轉換和輸出結果。比如 print() 也是一個函數,它的作用就是輸出傳入的數據。此處 type() 函數的作用則用于輸出傳入數據的類型。

在交互式解釋器中輸入:

>>> type(a)
<class 'str'>
>>>

此時可以看到 a 的類型是 str。

將上面的交互過程轉換成真正的 Python 程序,只要將交互式過程中輸入的每行代碼放在一個文件中,并使用 print() 函數來輸出變量(在交互式解釋器中只要輸入變量名,交互式解釋器就會輸出變量的值;但在 Python 程序中則必須使用 print() 函數來輸出變量),將該文件保存為以 .py 結尾的源文件即可。

上面的交互過程對應的程序如下:
#定義一個數值類型變量
a = 5
print(a)
#重新將字符串賦值給a變量
a = 'Hello , Charlie'
print(a)
print(type(a))
運行上面的程序,沒有任何問題,可以看到如下輸出結果:

5
Hello , Charlie
<type 'str'>

使用 print 函數輸出變量

前面使用 print() 函數時都只輸出了一個變量,但實際上 print() 函數完全可以同時輸出多個變量,而且它具有更多豐富的功能。

print() 函數的詳細語法格式如下:

print (value,...,sep='',end='\n',file=sys.stdout,flush=False)

從上面的語法格式可以看出,value 參數可以接受任意多個變量或值,因此 print() 函數完全可以輸出多個值。例如如下代碼:
user_name = 'Charlie'
user_age = 8
#同時輸出多個變量和字符串
print("讀者名",user_name,"年齡:",user_age)
運行上面代碼,可以看到如下輸出結果:

讀者名:Charlie 年齡:8

從輸出結果來看,使用 print() 函數輸出多個變量時,print() 函數默認以空格隔開多個變量,如果讀者希望改變默認的分隔符,可通過 sep 參數進行設置。例如輸出語句:

#同時輸出多個變量和字符串,指定分隔符
print("讀者名:" ,user_name,"年齡:",user_age,sep='|')

運行上面代碼,可以看到如下輸出結果:

讀者名:|Charlie|年齡:|8

在默認情況下,print() 函數輸出之后總會換行,這是因為 print() 函數的 end 參數的默認值是“\n”,這個“\n”就代表了換行。如果希望 print() 函數輸出之后不會換行,則重設 end 參數即可,例如如下代碼:
#設置end 參數,指定輸出之后不再換行
print(40,'\t',end="")
print(5O,'\t',end="")
print(60,'\t',end="")
上面三條 print() 語句會執行三次輸出,但由于它們都指定了 end="",因此每條 print() 語句的輸出都不會換行,依然位于同一行。運行上面代碼,可以看到如下輸出結果:

40    50    60

file 參數指定 print() 函數的輸出目標,file 參數的默認值為 sys.stdout,該默認值代表了系統標準輸出,也就是屏幕,因此 print() 函數默認輸出到屏幕。實際上,完全可以通過改變該參數讓 print() 函數輸出到特定文件中,例如如下代碼:
f = open("poem.txt","w")#打開文件以便寫入
print('滄海月明珠有淚',file=f)
print('藍回日暖玉生煙',file=f)
f.close()
上面程序中的 open() 函數用于打開一個文件,教程后續章節還會詳細介紹關于文件操作的內容。

print() 函數的 flush 參數用于控制輸出緩存,該參數一般保持為 False 即可,這樣可以獲得較好的性能。

精美而實用的網站,提供C語言C++STLLinuxShellJavaGo語言等教程,以及socketGCCviSwing設計模式JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo