1. 程式人生 > >Python學習筆記二:Python基礎

Python學習筆記二:Python基礎

  • Python語法採用縮排形式,有以下幾點需要注意:
    1. 註釋以#開頭;
    2. 當語句以冒號:結尾時,縮排的語句視為程式碼塊;
    3. 始終堅持4個空格的縮排;
    4. 大小寫敏感;

1. 資料型別和變數

1.1 資料型別

1.1.1 整數

  • 在程式中的寫法和數學中的寫法一樣,如1100-80800,等等;
  • 用十六進位制表示整數比較方便,十六進位制用0x字首和0-9,a-f表示,例如:0xff000xa5b4c3d2,等等;

1.1.2 浮點數

  • 浮點數也就是小數,浮點數可以用數學寫法,如1.233.14-9.01,等等;
  • 對於很大或很小的浮點數,需用科學計數法表示,如1.231.23x10910^9就是1.23e9
    或者12.3e8,0.000012可以寫成1.2e-5,等等;

1.1.3 字串

  • 字串是以單引號'或雙引號"括起來的任意文字,比如'abc'"xyz"等等;
  • 如果'本身也是一個字元,那就可以用""括起來,比如"I'm OK"包含的字元是I'm,空格,OK這6個字元;
  • 用轉義字元\來標識字串內部包含的'";比如:
'I\'m \"OK\"!'

表示的內容就是:

I'm "OK"!
  • \n表示換行,\t表示製表符,\\表示的就是字元\
  • Python還允許用r''表示''內部的字串預設不轉義,如:
>>> print('\\\t\\')
\       \
>>
> print(r'\\\t\\') \\\t\\
  • Python允許用'''...'''的格式表示多行內容,此處注意...是提示符,不是程式碼的一部分;
>>> print('''line1
... line2
... line3''')
line1
line2
line3

1.1.4 布林值

  • 一個布林值只有TrueFalse兩種值,在Python中,可以直接用TrueFalse表示布林值(請注意大小寫);
>>> True
True
>>> False
False
>>> 3 > 2
True
>>> 3 > 5 False
  • 布林值可以用andornot運算;
  • 布林值經常用在條件判斷中,比如:
if age >= 18:
    print('adult')
else:
    print('teenager')

1.1.5 空值

  • None表示。None不能理解為0,因為0是有意義的,而None是一個特殊的空值;

1.2 變數

  • 變數不僅可以是數字,還可以是任意資料型別;
  • 變數名必須是大小寫英文數字_的組合,且不能用數字開頭;
  • 等號=是賦值語句,可以把任意資料型別賦值給變數;同時不要將賦值語句的等號等同於數學中的等號;
  • 同一個變數可以反覆賦值,而且可以是不同型別的變數,這種變數本身型別不固定的語言稱之為動態語言,與之對應的是靜態語言。靜態語言在定義變數時必須指定變數型別,如果賦值的時候型別不匹配,就會報錯。例如Java是靜態語言,賦值語句如下(// 表示註釋):
int a = 123; // a是整數型別變數
a = "ABC"; // 錯誤:不能把字串賦給整型變數

1.3 常量

  • 在Python中,通常用全部的大寫的變數名錶示常量;但Python根本沒有任何機制保證PI不會被改變,所以全部大寫的變數名只是一個習慣的用法;
  • Python中的除法:
  1. /除法計算結果是浮點數;除法計算結果是浮點數,即使是兩個整數恰好整除,如:
>>> 10 / 3
3.3333333333333335
>>> 9 / 3
3.0
  1. //地板除,如:
>>> 10 // 3
3
  1. %取餘,如:
>>> 10 % 3
1

2. 字串和編碼

2.1 字元編碼

  • 8個位元(bit)作為一個位元組(byte),一個位元組能表示的最大整數就是255(二進位制11111111=十進位制255),最初只有127個字元被編碼到計算機中,即ASCII編碼;

  • 顯然中文以及其他國家的語言,一個位元組是不夠的,故Unicode編碼應用而生,最常用的是用兩個位元組表示一個字元(如果非常偏僻的字元,需要4個位元組);

  • 雖然統一成Unicode編碼,亂碼問題消除了,但如果寫的文字全都是英文的話,用Unicode編碼比ASCII編碼整整多了一倍儲存空間,這就不划算了;

  • 於是出現了可變長編碼UTF-8編碼,UTF-8編碼把一個Unicode字元根據不同的數字大小編碼成1-6個位元組,常用的 英文字母被編碼成1個位元組,漢字通常是3個位元組,只有很生僻的字元才會被編碼成4-6個位元組;

  • 總結一下計算機系統通用的字元編碼工作方式:

  1. 在計算機記憶體中,統一使用Unicode編碼,當需要儲存到硬碟或者需要傳輸的時候,就轉換為UTF-8編碼;
  2. 用記事本編輯的時候,從檔案讀取的UTF-8字元被轉換為Unicode字元到記憶體裡,編輯完成後,儲存的時候再把Unicode轉換為UTF-8儲存到檔案;                在這裡插入圖片描述
  3. 瀏覽網頁的時候,伺服器會把動態生成的Unicode內容轉換為UTF-8再傳輸到瀏覽器;                在這裡插入圖片描述

2.2 Python的字串

  • 在最新的 Python3.x 中,字串是以Unicode編碼的,支援多語言。比如:
>>> print('包含中文的str')
包含中文的str
  • 對於單個字元的編碼,ord()函式獲取字元的整數表示,chr()函式把編碼轉換為對應的字元:
>>> ord('A')
65
>>> ord('中')
20013
>>> chr(66)
'B'
>>> chr(25991)
'文'
  • 如果知道字元的整數編碼,還可以用十六進位制這麼寫str
>>> '\u4e2d\u6587'
'中文'