【滾雪球學 Python】2. 無門檻學會數據類型與輸入、輸出函數,(滾雪球理論)
學習一門語言應該是一件充滿樂趣的事情,為什么要把它變難呢?
二、Python 基本數據類型與輸入、輸出函數
2.1 基本數據類型
對于任何一門語言都存在一些基本類型,Python 也不例外,只不過數據類型在 Python 中要遠遠比其他語言簡單,基本分為以下幾種。
數值數據類型,常見的是整數和浮點數
布爾值數據類型,就是常說的真和假
字符串數據類型
這里要注意,提及到數據類型,特指的是變量的數據類型,在具體學習前,先學會如何看 Python 中的數據類型,才好下手學習。
這個看數據類型是啥的函數,叫做 type,見名之意,所以咱們變量起名字的時候,也要學習一下官方命名技巧。
例如,看一下一個值為 10 的變量 x 的數據類型,代碼如下:
x = 10 print(type(x))
運行結果為
該輸出結果就表示變量 x 的數據類型是整數,你可以用同樣的辦法測試一個小數。
x = 10.1 print(type(x))
運行結果顯示為:
沒錯,這個是浮點數。
2.1.1 數值數據類型
上文你已經接觸到了 Python 中的兩種數值數據類型,一個叫做整數,一個叫做浮點數,對應到數學上的區別就是一個帶小數點,一個不帶,其實這就是最根本的區別。
如果整數和浮點數相加,最終的結果是浮點數,Python 會自動給轉換過去,代碼如下:
x = 10.1 y = 10 z = x + y print(type(z))
運行代碼,可以核對下 z 的數據類型是否是 float 即浮點數。
2.1.2 整數的不同形式表示
對于編程語言學習者來說,你一定聽說過計算機處理的都是二進制,所以編程語言學起來特別難?What?學習編程語言跟二進制是有關系,但是跟你學會一門賺錢的手藝確沒啥關系。或者我說的在直接一些,你在北京拿個 1W 塊錢的薪水,各種進制的轉換可能你都用不到。
將整數顯示成二進制格式
注意一會還會將整數顯示成八進制與十六進制,這里處理的都是整數,也就是 1,2,3,4 這種不帶小數點的,浮點先不要考慮。
又一次需要用到一個后續才會明確的知識點,叫做 Python 內置函數,將整數轉換成二進制格式顯示用到的函數叫做 bin,代碼如下:
x = 10 print(bin(x))
輸出結果為:
0b1010
二進制以 0b 開頭,后面都是 1,0 排列,如果你看到 Python 代碼中出現了這樣的整數,要認識這就是一個普通的數字,只是展示方式不同。
將整數顯示成八進制格式
將整數轉換成八進制用到的內置函數是 oct,具體代碼可自行嘗試,八進制顯示的數字以 0o 開頭。
將整數顯示成十六進制格式
以 0x 開頭的數字為十六進制格式展示,轉換用函數為 hex。
截止到這里,你已經對整數與整數的不同形式展示有了初步的認知,并且這些都不重要,重要的是你學習之后,看到 Python 代碼中出現以這些符號開頭的內容,你知道它就是一個普通的整數就好了。
2.1.3 數據類型強制轉換
這個地方只是類型強制轉換的冰山一角,為何學習也是因為你已經掌握了整數和浮點數,大概也對它們之前的區別有了那么一絲認識。其實它們之前還可以進行互相的轉換,只不過轉換你要承擔一些風險,為啥呢,往下看。
x = 10.5 print(int(x))
上述代碼,我將浮點數進行了類型強制轉換,注意在 x 前面套了一個 int 函數的殼,函數后面咱才會學習,現在你能模仿代碼編寫,能看懂我說的是啥就行。
在變量 x 外面套了一個 int()函數,然后運行,輸出的結果是 10,風險出現了,浮點數轉換成整數,小數丟掉了…是真正的丟掉了,這種場景在后續編程中你會經常碰到。
int 其實也是 Python 的一個內置函數,它會嘗試將任何數據類型的變量轉換成整數,注意是任何數據類型的變量。
同理,你如果能猜到將任何數據類型的變量轉換成浮點數的函數名為 float,證明你已經開始慢慢摸到 python 的精髓了。
好,到現在,又學習到了兩個內置函數,一個 int,一個 float,請一定要實際的打一下代碼,眼睛會,手不一定會。
2.1.4 擴展幾個數值數據類型常用的函數
雖然學的不多,你現在應該注意到一個詞 – 函數出現的頻率在 Python 中極高,這也是為什么很多其他語言的使用者,會把 Python 藐視成一堆函數湊成的語言了,哼~淺薄者。
數值數據類型常用的函數,這里簡單舉幾個例子,后面還會詳細學習。
abs() 計算絕對值
pow() 次方運算
round() 四舍五入
max() 取最大值
min() 去最小值
參考代碼如下,臨摹 2 遍知道是在干啥就行,下面的代碼涉及了函數中參數的概念,不做過多的解釋。
# abs() 計算絕對值 a = -1 print(abs(a)) # pow() 次方運算 x = 2 c = 3 print(pow(x,c)) # round() 四舍五入 d = 34.6 print(round(d)) # max() 取最大值 print(max(1,2,3)) # min() 去最小值 print(min(9,10,6))
2.1.5 布爾值數據類型
布爾來自英文 boolean 的音譯,在 Python 中布爾值有兩種,一個是真(True),另外一個就是假(False),使用 type 函數測試數據類型布爾值得到的是 bool。
注意 bool 在有的地方也會歸為整數,是因為真(True)被強制轉換之后等于 1,假(False)被前置轉換之后等于 0。
代碼如下:
x = True print(int(x)) print(int(False))
布爾值以后會經常用在條件判斷上,屬于必須掌握的知識點,后續咱還會碰到它。
2.1.6 字符串數據類型
字符串是 Python 中使用場景最多的數據類型了,也是知識點最多的數據類型,一般情況下,兩個雙引號(")或者兩個單引號(')中間的部分就是字符串,在使用的時候一定要注意嵌套問題。例如下述代碼:
my_name = "夢想橡皮擦" print(my_name) my_name = '夢想橡皮擦' print(my_name) my_name = '夢想"橡皮擦' print(my_name) print(type(my_name))
下面這句話要記住,單雙引號都是成對出現的,雙引號里面要嵌套單引號,例如上述第三段代碼,單引號里面要嵌套雙引號。
字符串的連接
兩個字符串通過 + 可以進行連接,這里的加號就不是數字之間加法的含義了,測試如下:
a = "my" b = "name" c = a+b print(c)
數字與字符串相加,會提示錯誤,如果不想報錯,可以通過 str 函數將數字轉換成字符串,例如:
a = 123 b = "name" # str(a) 將整數變量a轉換成字符串 c = str(a) + b print(c)
多行字符串
在前文已經學習了三引號可用于注釋,其實三引號真正的用途依舊是字符串場景,表示多行字符串。
my_str = """ 我是字符串的第一行 我是字符串的第二行 我是夢想橡皮擦 我還是曾經那個少年 """ print(my_str)
轉義(逸出)字符
在字符串中有一些特殊的字符,需要特別處理,例如,就想在單引號中使用單引號,那需要如下格式編寫:
a = 'I\'m a girl ' print(a)
注意,使用\' 之后就可以在單引號字符串中使用單引號了,\' 就是轉義字符。常見的轉義字符如下:
還有其他轉義字符,初學階段不做展開,以上幾個在代碼中嘗試兩遍,還是知道是干啥的即可。
當然有些時候,你需要避免轉移字符進行轉義,那需要在整體字符串前增加一個特殊的字母 r,字符串前面增加特殊字符有很多,今天只學習這一個。例如下述代碼。
a = r"I\nm a girl" print(a)
此時的\n不會轉義成換行符,輸出內容就是字符串原有的樣子:
I\nm a girl
使用pycharm這款工具,你能很清楚的認出轉義字符來,它存在顏色區分:
字符串快速復制
Python 中有一個獨特的小技巧,可以快速復制字符串,使用的是數學符號 *,例如下述代碼,將快速復制一堆 # 號。
print("#"*100)
2.2 輸入與輸出
本小節核心學習的兩個函數,一個是 print,另一個是 input,在學習它們兩個之前,在補充一個內置函數 help 該函數可以查看其它函數的使用文檔。比如使用 print 測試:
help(print)
輸出內容如下圖所示:
這其中就包含了 print 函數的完整說明,最重要的部分如下:
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
其中:
value 表示要輸出的數據,可以多個,用逗號 , 分隔
sep 輸出多個數據時,分隔符號,默認是空格
end 輸出一行末尾輸出的符號
file 輸出位置,默認輸出控制臺,就是黑窗口中,可以設置到具體文件
flush 是否清除數據流緩沖區,默認為 False(該內容先不做涉及)
以上這些其實準確的說法是函數參數。
編寫測試代碼,可臨摹運行:
# 輸出多個數據 print("hello","dream") # 多個數據輸出的分隔符 print("i","love",sep="#")
運行結果和其它參數自行測試,上述內容重點為多個數據輸出,即 print(a,b,d,d) 必須掌握。
2.2.1 格式化 print 輸出
在很多教材中本部分內容會占用比較多的時間,其實大可不必,因為東西太雜,學過反而忘記了,不如簡單學習在大腦留下一個“恩,有這個東西”的痕跡即可。
格式化輸出就是這樣一個碎的知識點,格式化輸出 print 的意思就是按照你的意思輸出東西到任何載體上。
首先要學習的就是 格式化字符,常見的有下面這幾個。
%d 整數輸出
%f 浮點數輸出
%x 十六進制輸出
%o 八進制
%s 字符串輸出,其實會這一個就行了
例如下述代碼就是一個案例:
name = "橡皮擦" age = 18 score = 100 # 格式化一個變量輸出 print("我是 %s" % name) # 格式化多個變量輸出 print("我是 %s 今年 %d歲了,我考試得了%d分" % (name,age,score))
注意格式化的時候,前面是一個待格式的字符串,把格式化字符作為一個特殊的符號放在一個字符串里面,相當于占了一個坑位,字符串后面跟著一個 %,該符號固定為 %,在后面是替換的內容,可以是變量名,也可以直接是值,如果前面的占位的是 %d,后面就是數字,如果是 %s,后面就是字符串。一般這里會配上下圖進行說明:
如果占位的格式化字符和后面給的實際變量的值匹配不上,例如前面是 %d,后面 age 給了一個字符串,就會報錯:
name = "橡皮擦" age = 18 score = 100 print("我是 %s" % name) print("我是 %s 今年 %d歲了,我考試得了%d分" % (name,"nnn",score))
但是如果前面是 %s,后面給字符串,就會自動轉換過去。
name = "橡皮擦" age = 18 score = 100 print("我是 %s" % name) print("我是 %s 今年 %s歲了,我考試得了%d分" % (name,18,score))
所以一般不嚴格的時候,前面的占位符通通用 %s 就可以了。不嚴謹,但是好用啊~
精準控制格式化的輸出
精準化輸出主要用于浮點數,因為浮點數存在小數點,控制小數點顯示的位數就顯得重要了,本文不做過多的涉及,經驗告訴我,很多同學學過去也就忘記了,你只需要記住 Python 也可以精準控制浮點數的顯示就可以了。
2.2.2 format 函數
上述 % 在學習階段使用一下還可以,在實際的格式化輸出中,更多的還是使用 format 進行操作,format 在使用的時候,通過 {} 符號進行占位,例如:
print("我是{},今年{},考試得了{}".format(name,age,score))
所有需要占位的地方都使用 {} 解決,不用去記住各種類型,也不會出現 % 這個莫名奇妙的符號。
2.2.3 input 數據輸入
input 執行的和 print 恰好想法,通過 help 查看一下:
參數比較簡單只有一個輸入提示語。測試代碼:
name = input("請輸入你的姓名:") print("輸入的姓名為{}".format(name))
代碼運行會要求你輸入自己的姓名,回車之后會格式化輸出。默認情況下 input 獲取的輸入數據會存儲到一個變量中,本例為 name,該變量類型為字符串類型,如果你需要獲取用戶輸入數字,記得通過 int 進行一下轉換。
input 比較簡單,本文先介紹這些。
2.3 這篇博客的總結
以上內容核心介紹了整數、浮點數、布爾與字符串數據類型,重點要掌握的是類型之間的轉換與字符串的初步認識,對于格式化輸出部分掌握 format 即可應付接下來的大多數場景,其余內容酌情遺忘吧,畢竟學編程還是蠻費腦力的。
最后一碗毒雞湯
好好學下去 每天都有新打擊O(∩_∩)O 哈哈~
Python 數據結構
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。