首頁  >  文章  >  後端開發  >  Python中變數和資料型別介紹

Python中變數和資料型別介紹

零下一度
零下一度原創
2017-06-30 13:39:241494瀏覽

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()方法傳入一 個分割字串,指定它依照不同的字串分割。

#

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

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

['My', 'name', ' is', 'Simon']

>>> '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、正常使用

2、還可以透過在括號裡填入數字,修改格式化的順序

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

我叫小李,今年20歲了

#>>> 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.23x10

9和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('badbad operand type'))#     raise 類型Error(' >= 0:

        return x

#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

Beautiful is better than ugly.
Explicit is better than implicit.

Simple is better than complex.

  1. #Complex is better than complicated.

  2. Flat is better than nested.

  3. Sparse is better than dense.

  4. Readability counts.

  5. Special cases aren't special enough to break the rules.

  6. Although practicality beats purity.

  7. #Errors should never pass silently.

  8. Unless explicitly silenced.

  9. In the face of ambiguity, refuse the temptation to guess.

  10. There should be one-- and preferably only one --obvious way to do it.

  11. #Although that way may不 be obvious at first unless you're Dutch.

  12. ##Now is better than never.
  13. Although never is often better than *right* now.
  14. If the implementation is hard to explain, it's a bad idea.
  15. If the implementation is easy to explain, it may be a good idea.
  16. Namespaces are one honking great idea -- let's do more of those!

以上是Python中變數和資料型別介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:Numpy API 分析下一篇:Numpy API 分析