1. 程式人生 > >Python基礎學習總結(一)

Python基礎學習總結(一)

format 計數 python使用 flat rac 劃線 orm lex 讀取

1、變量和數據類型

1.1變量

1.每個變量都存儲了一個值——與變量相關聯的信息。

2.變量不僅可以為整數或浮點數,還可以是字符串,可以是任意數據類型。

1.1.1變量的命名和使用

變量名只能包含字母、數字和下劃線,且數字不能打頭。變量名不能包含空格,但可以使用下劃線間隔。不能把python關鍵字和函數名作為變量名。變量名應既簡短又具有描述性。慎用小寫字母l和大寫字母O,因為它們可能被人錯看成數字1和0。

1.1.2使用變量時避免命名錯誤

出現錯誤時解釋器會提供一個traceback(回溯)。Traceback是一條記錄,指出了什麽地方陷入困境。

1.2字符串str

1.字符串就是一系列字符。是一種數據類型,在Python中用引號

括起的都是字符串,可單引號也可雙引號

2.Unicode標準也在不斷發展,但最常用的是用兩個字節表示一個字符(如果要用到非常偏僻的字符,就需要4個字節)。現代操作系統和大多數編程語言都直接支持Unicode。把Unicode編碼轉化為“可變長編碼”的UTF-8編碼。

3.Python對bytes類型的數據用帶b前綴的單引號或雙引號表示:x = b‘ABC‘。以Unicode表示的str通過encode()方法可以編碼為指定的bytes。

‘ABC‘.encode(‘ascii‘)

b‘ABC

反過來,如果我們從網絡或磁盤上讀取了字節流,那麽讀到的數據就是bytes。要把bytes變為str,就需要用decode()方法:

b‘ABC‘.decode(‘ascii‘)

‘ABC

4. 對於單個字符的編碼,Python提供了ord()函數獲取字符的整數表示,chr()函數把編碼轉換為對應的字符:

>>> ord(‘A‘)

65

>>> ord(‘中‘)

20013

>>> chr(66)

‘B‘

>>> chr(25991)

‘文‘

5.要計算str包含多少個字符,可以用len()函數,len()函數計算的是str的字符數,如果換成bytes,len()函數就計算字節數。可見,1個中文字符經過UTF-8編碼後通常會占用3個字節,而1個英文字符只占用1個字節。

1.2.1對字符串的操作

1.方法是Python可對數據執行的操作。

2.title()以首字母大寫的方式顯示每個單詞,即將每個單詞的首字母都改為大寫。

3.upper()將字符串改為全部大寫。lower()將字符串改為全部小寫。

4.如果字符串至少有一個字母,並且所有字母都是大寫或小寫,isupper()和 islower()方法就會相應地返回布爾值 True。否則,該方法返回 False。

5.salpha()返回 True,如果字符串只包含字母,並且非空;

6.isalnum()返回 True,如果字符串只包含字母和數字,並且非空;

7.sdecimal()返回 True,如果字符串只包含數字字符,並且非空;

8.sspace()返回 True,如果字符串只包含空格、制表符和換行,並且非空;

9.istitle()返回 True,如果字符串僅包含以大寫字母開頭、後面都是小寫字母的單詞。

10.startswith()和 endswith()方法返回 True,如果它們所調用的字符串以該方法傳入 的字符串開始或結束。否則,方法返回 False。

11.join()方法在一個字符串上調用,參數是一個字符串列表,返回一個字符串。

>>> ‘, ‘.join([‘cats‘, ‘rats‘, ‘bats‘])

‘cats, rats, bats‘

>>> ‘ ‘.join([‘My‘, ‘name‘, ‘is‘, ‘Simon‘])

‘My name is Simon‘

>>> ‘ABC‘.join([‘My‘, ‘name‘, ‘is‘, ‘Simon‘])

‘MyABCnameABCisABCSimon‘

12.split()方法做的事情正好相反:它針對一個字符串調用,返回一個字符串列表。也可以向split()方法傳入一 個分割字符串,指定它按照不同的字符串分割。

>>> ‘My name is Simon‘.split()

[‘My‘, ‘name‘, ‘is‘, ‘Simon‘]

13.rjust()和 ljust()字符串方法返回調用它們的字符串的填充版本,通過插入空格來 對齊文本。這兩個方法的第一個參數是一個整數長度,用於對齊字符串。rjust()和 ljust()方法的第二個可選參數將指定一個填充字符,取代空格字符。

>>> ‘Hello‘.rjust(20, ‘*‘)

‘***************Hello‘

>>> ‘Hello‘.ljust(20, ‘-‘)

‘Hello---------------‘

14.center()字符串方法與 ljust()與 rjust()類似,但它讓文本居中,而不是左對齊或右對齊。

15.sort()將字符串排序。

16.請務必註意,Python程序是大小寫敏感的,如果寫錯了大小寫,程序會報錯。

17.合並——Python使用加號+來合並字符串

  1. first_name = "ada"
  2. last_name = "lovelace"
  3. full_name = first_name + " " + last_name
  4. print(full_name)
  5. ada Lovelace

18.可以在字符串開始的引號之前加上 r,使它成為原始字符串。 “原始字符串”完 全忽略所有的轉義字符,打印出字符串中所有的倒斜杠。

>>> print(r‘That is Carol\‘s cat.‘)

That is Carol\‘s cat.

19.刪除空白:方法rstrip()右 lstrip()左 strip()兩邊

20. 語法錯誤:是一種時不時會遇到的錯誤,在用單引號括起的字符串中,如果包含撇號,就將導致錯誤。雙引號不會。

21.Print() 打印,逗號會空一格。

22.pyperclip 模塊有 copy()和 paste()函數,可以向計算機的剪貼板發送文本,或從 它接收文本。

23.字符串有個replace()方法

>>> a = ‘abc‘

>>> a.replace(‘a‘, ‘A‘)

‘Abc‘

1.2.2空值

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

1.2.3常量

常量就是不能變的變量,比如常用的數學常數π就是一個常量。在Python中,通常用全部大寫的變量名表示常量:PI = 3.14159265359

1.2.4賦值

在Python中,等號=是賦值語句,可以把任意數據類型賦值給變量,同一個變量可以反復賦值,而且可以是不同類型的變量:

a = 123 # a是整數

print(a)

a = ‘ABC‘ # a變為字符串

print(a)

賦值語句:a, b = b, a + b

t = (b, a + b) # t是一個tuple

a = t[0]

b = t[1]

1.2.5格式化

Python中格式化有兩種,第一種用%實現,第二種{ } format格式。

‘Hello, %s‘ % ‘world’

% 運算符就是用來格式化字符串的。在字符串內部,%s表示用字符串替換,%d表示用整數替換,有幾個%?占位符,後面就跟幾個變量或者值,順序要對應好。如果只有一個%?,括號可以省略。常用占位符:

%d 整數

%f 浮點數

%s 字符串

%x 十六進制整數

其中,格式化整數和浮點數還可以指定是否補0和整數與小數的位數:

>>> ‘%2d-%02d‘ % (3, 1)

‘ 3-01‘

>>> ‘%.2f‘ % 3.1415926

‘3.14‘

如果你不太確定應該用什麽,%s永遠起作用,它會把任何數據類型轉換為字符串。

有些時候,字符串裏面的%是一個普通字符,需要轉義,用%%來表示一個 % 。

第二種格式化方法,format,通過 {} 來代替 % 。

1、正常使用

>>> print("我叫{},今年{}歲了".format("小李", 20))

我叫小李,今年20歲了

2、還可以通過在括號裏填寫數字,修改格式化的順序

>>> print("我叫{1},今年{0}歲了".format("小李", 20))

我叫20,今年小李歲了

3、通過key取變量

>>> print("我叫{name},今年{age}歲了".format(name="小李", age=20))

我叫小李,今年20歲了

1.2.6轉義字符

空白——泛指任何非打印字符,如空格、制表符和換行符。

轉義字符\可以轉義很多字符 \t 制表符 \n 換行

字符\本身也要轉義,所以\\表示的字符就是\

如果字符串裏面有很多字符都需要轉義,Python中可以用r‘‘表示‘‘內部的字符串默認不轉義:

>>> print(‘\\\t\\‘)

\ \

>>> print(r‘\\\t\\‘)

\\\t\\

1.3數字

1.3.1整數 int

可以進行四則運算。

計算機由於使用二進制,所以,有時候用十六進制表示整數比較方便,十六進制用0x前綴和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等。

整數的除法是精確的。在Python中,有兩種除法,一種除法是/ , /除法計算結果是浮點數,即使是兩個整數恰好整除,結果也是浮點數。還有一種除法是//,稱為地板除,兩個整數的除法仍然是整數。

% 取余數。

1.3.2浮點數float

Python將帶小數的數字都稱為浮點數,之所以稱為浮點數,是因為按照科學記數法表示時,一個浮點數的小數點位置是可變的,比如,1.23x109和12.3x108是完全相等的。

對於很大或很小的浮點數,就必須用科學計數法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以寫成1.2e-5,等。

1.3.3使用函數str()避免錯誤

數據類型檢查可以用內置函數isinstance()實現:

def my_abs(x):

if not isinstance(x, (int, float)):

raise TypeError(‘bad operand type‘)

if x >= 0:

return x

else:

return -x

1.4註釋

1. 以#開頭的語句是註釋,註釋是給人看的,可以是任意內容,解釋器會忽略掉註釋。其他每一行都是一個語句,當語句以冒號:結尾時,縮進的語句視為代碼塊。

#。。。。。。

2.由於Python源代碼也是一個文本文件,所以,當你的源代碼中包含中文的時候,在保存源代碼時,就需要務必指定保存為UTF-8編碼。當Python解釋器讀取源代碼時,為了讓它按UTF-8編碼讀取,我們通常在文件開頭寫上這兩行:

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

3.文檔字符串的註釋 ””” ”””

1.5Python之禪

The Zen of Python, by Tim Peters

  1. Beautiful is better than ugly.
  2. Explicit is better than implicit.
  3. Simple is better than complex.
  4. Complex is better than complicated.
  5. Flat is better than nested.
  6. Sparse is better than dense.
  7. Readability counts.
  8. Special cases aren‘t special enough to break the rules.
  9. Although practicality beats purity.
  10. Errors should never pass silently.
  11. Unless explicitly silenced.
  12. In the face of ambiguity, refuse the temptation to guess.
  13. There should be one-- and preferably only one --obvious way to do it.
  14. Although that way may not be obvious at first unless you‘re Dutch.
  15. Now is better than never.
  16. Although never is often better than *right* now.
  17. If the implementation is hard to explain, it‘s a bad idea.
  18. If the implementation is easy to explain, it may be a good idea.
  19. Namespaces are one honking great idea -- let‘s do more of those!

Python基礎學習總結(一)