1. 程式人生 > 其它 >2. 無門檻學會資料型別與輸入、輸出函式,滾雪球學 Python python 入門教程非常詳細

2. 無門檻學會資料型別與輸入、輸出函式,滾雪球學 Python python 入門教程非常詳細

python 入門教程,python 入門教程,python 入門教程,python 入門教程,python 入門教2. 無門檻學會資料型別與輸入、輸出函式,滾雪球學 Python python 入門教程非常詳細

學習一門語言應該是一件充滿樂趣的事情,為什麼要把它變難呢?

已完成的文章

標題 連結
1. 這才是 Python 學習的正確起手姿勢,滾雪球學 Python https://dream.blog.csdn.net/article/details/109586142

@

目錄

本系列文章將在2021年春節前完成,歡迎關注,點贊,評論 --- 夢想橡皮擦

二、Python 基本資料型別與輸入、輸出函式

2.1 基本資料型別

對於任何一門語言都存在一些基本型別,Python 也不例外,只不過資料型別在 Python 中要遠遠比其他語言簡單,基本分為以下幾種。

  1. 數值資料型別,常見的是整數和浮點數
  2. 布林值資料型別,就是常說的真和假
  3. 字串資料型別

這裡要注意,提及到資料型別,特指的是變數的資料型別,在具體學習前,先學會如何看 Python 中的資料型別,才好下手學習。
這個看資料型別是啥的函式,叫做 type,見名之意,所以咱們變數起名字的時候,也要學習一下官方命名技巧。

例如,看一下一個值為 10 的變數 x 的資料型別,程式碼如下:

x = 10
print(type(x))

執行結果為

<class 'int'="">

該輸出結果就表示變數 x 的資料型別是整數,你可以用同樣的辦法測試一個小數。

x = 10.1
print(type(x))

執行結果顯示為:

<class 'float'="">

沒錯,這個是浮點數。

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)

注意,使用\' 之後就可以在單引號字串中使用單引號了,\' 就是轉義字元。常見的轉義字元如下:

轉義字元 含義
' 單引號
" 雙引號
\t 製表符
\n 換行
\ 反斜槓

還有其他轉義字元,初學階段不做展開,以上幾個在程式碼中嘗試兩遍,還是知道是幹啥的即可。
當然有些時候,你需要避免轉移字元進行轉義,那需要在整體字串前增加一個特殊的字母 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爬蟲,可以訂閱橡皮擦專欄哦~
https://dream.blog.csdn.net/article/details/86106916

微信掃碼,歡迎關注微信公眾賬號,更多精彩~
手機掃碼加入QQ群,歡迎你~