【程式設計基礎之Python】7、Python基本資料類型
- Python基本資料類型
-
- 整數(int)
-
- 基本的四則運算
- 位運算
- 比較運算
- 運算優先級
- 浮點數(float)
- 布爾值(bool)
- 字元串(str)
- Python資料類型變換
-
- 隐式類型轉換
- 顯式類型轉換
- 強制類型轉換
- 賦不同類型的值
- 寫在後面
Python基本資料類型
Python是一種動态類型語言,它支援多種基本資料類型和複合資料類型,讓開發人員能夠更加友善地處理不同類型的資料。本文将介紹Python中的基本資料類型,包括整數、浮點數、布爾值、字元串等。
整數(int)
整數是Python中最基本的資料類型之一,它表示整數,例如 1、2、3、5等。Python的整數類型可以表示任意大小的整數,是以可以處理非常大的整數,而不需要擔心溢出的問題。
在Python中,整數可以使用十進制、二進制、八進制、十六進制等方式表示,例如:
# 十進制
a = 123
# 二進制
b = 0b1010
# 八進制
c = 0o123
# 十六進制
d = 0x123
# 很大的數
e = 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
可以使用
type()
函數來檢視變量的類型,例如:
print(type(a))
print(type(b))
print(type(c))
print(type(d))
print(type(e))
Python中的整數運算包括基本的四則運算(加、減、乘、除)以及其他的位運算、比較運算等。
基本的四則運算
基本的四則運算在Python中與數學中的運算規則一緻,分别使用加(+)、減(-)、乘(*)、除(/)和地闆除(floor division,除法結果向下取整,//)符号進行運算。
a = 5
b = 3
print(a + b) # 輸出7
print(a - b) # 輸出3
print(a * b) # 輸出10
print(a / b) # 輸出1.6666666666666667
print(a // b) # 輸出1
需要注意的是,在Python 2中整數除法的結果會自動向下取整,而在Python 3中整數除法的結果為浮點數。如果想要在Python 3中使用向下取整的除法,可以使用地闆除(//)符号。
注意:
//
得到的并不一定是整數類型的數,它與分母分子的資料類型有關系。
位運算
位運算是指對整數的二進制位進行操作的運算,包括按位與(&)、按位或(|)、按位異或(^)、左移(<<)和右移(>>)等運算符。
a = 5 # 二進制表示為101
b = 3 # 二進制表示為011
print(a & b) # 輸出1,二進制表示為001
print(a | b) # 輸出7,二進制表示為111
print(a ^ b) # 輸出6,二進制表示為110
print(a << 1) # 輸出10,二進制表示為1010
print(a >> 1) # 輸出2,二進制表示為10
左移和右移運算符可以将整數的二進制位向左或向右移動一定的位數(n),向左移動等價于乘以2的n次方(2 ** n),向右移動等價于除以2的n次方。
比較運算
比較運算用于比較兩個數的大小關系,包括等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)和小于等于(<=)等運算符。
a = 5
b = 3
print(a == b) # 輸出False
print(a != b) # 輸出True
print(a > b) # 輸出True
print(a < b) # 輸出False
print(a >= b) # 輸出True
print(a <= b) # 輸出False
運算優先級
在進行複雜的數值運算時,需要注意運算優先級。在Python中,運算符的優先級從高到低分别是:
- 幂運算
**
- 正負号
+x, -x
- 乘法、除法、取餘運算
*, /, %, //
- 加法、減法運算
+, -
需要注意的是,如果需要改變運算的優先級,可以使用括号将運算表達式括起來。
浮點數(float)
浮點數是帶小數的數字,在Python中用浮點數類型(float)表示,例如 3.14、-0.5 等。浮點型也可以使用科學計數法表示(2.5e2 = 2.5 x 102 = 250)。
在Python中,浮點數的精度是有限的,是以在進行數學計算時,可能會出現精度誤差。例如:
a = 0.1 + 0.2
print(a) # 輸出0.30000000000000004
可以使用
round()
函數來四舍五入浮點數,例如:
a = 0.1 + 0.2
a = round(a, 2)
print(a) #輸出0.3
浮點數與整數一樣,也支援四則運算、比較運算等,但不支援位運算。
布爾值(bool)
布爾值隻有兩個取值
True
和
False
,用于表示真或假。在Python中,可以将任何值轉換為布爾值,使用
bool()
函數即可。例如:
print(bool(0)) # 輸出False
print(bool(1)) # 輸出True
print(bool('')) # 輸出False
print(bool('abc')) # 輸出True
布爾類型在Python中廣泛應用于條件判斷和循環等控制語句中,例如
if
語句、
while
循環和
for
循環等。
a = True
b = False
if a and not b:
print("a是True并且b是False")
for i in range(10):
if i % 2 == 0:
continue
print(i)
while a or b:
print("Looping...")
a = a and b
b = a and b
字元串(str)
字元串是一組字元的序列,用于表示文本。在Python中,字元串類型(str)可以使用單引号、雙引号或三引号來定義,例如:‘hello’、 “world” 等。
字元串是不可變的,是以不能修改字元串中的字元。
可以使用索引(下标)通路字元串中的字元,例如:
s = 'hello'
print(s[0]) # 輸出'h'
print(s[-1]) # 輸出'o'
可以使用字元串的切片通路字元串中的字元,或者建立一個新的字元串,例如:
s1 = 'hello'
s2 = s1[1:4]
print(s1[1:3]) # 輸出'ell'
print(s2) # 輸出'ello'
可以使用加号(+)将兩個字元串連接配接起來,使用乘号(*)可以将字元串重複多次,例如:
s1 = 'hello'
s2 = 'world'
print(s1 + s2) # 輸出'helloworld'
除了正常的字元串操作之外,Python還提供了一些内置方法來處理字元串。例如,我們可以使用
split()
方法來将字元串分割成清單,使用
strip()
方法來去除字元串兩端的空格,使用
replace()
方法來替換字元串中的某個字元或子串等等。
s1 = "hello,world"
lst = s1.split(",") # 将字元串以逗号為分隔符,分割成清單
s2 = s1.strip() # 去除字元串兩端的空格
s3 = s1.replace("world", "Python") # 将字元串中的"world"替換為"Python"
print(s1)
print(lst)
print(s2)
print(s3)
Python資料類型變換
在Python中,資料類型并不是一成不變的,資料類型可以根據實際情況做變換。
Python是一種動态語言,變量在使用之前不需要指定資料類型,而是在運作時根據指派的值自動确定類型,是以Python的資料類型變換非常靈活。
隐式類型轉換
在Python中,有些類型之間的運算是自動進行類型轉換的,這種類型轉換稱為隐式類型轉換。
例如,當整數和浮點數進行運算時,整數會自動轉換為浮點數:
a = 5 # a為整數
b = 3.14 # b為浮點數
c = a + b # a自動轉換為浮點數,c為8.14
在隐式類型轉換時,Python會自動選擇合适的類型進行轉換,但是這種轉換不一定總是符合我們的期望,是以有時需要手動進行類型轉換。
顯式類型轉換
Python中可以使用一些内置函數進行顯式類型轉換,常用的内置函數包括int()、float()、str()、bool()等。
a = "5" # a為字元串
b = int(a) # a轉換為整數,b為5
c = float(b) # b轉換為浮點數,c為5.0
d = bool(c) # c轉換為布爾類型,d為True
e = str(d) # d轉換為字元串,e為"True"
print(a, type(a))
print(b, type(b))
print(c, type(c))
print(d, type(d))
print(e, type(e))
在進行類型轉換時,有時會出現類型不比對的錯誤,例如在字元串中包含非數字字元時使用int()函數進行轉換會出錯。是以在進行類型轉換時需要謹慎,并確定資料類型的一緻性。
強制類型轉換
有時候,我們需要将一個對象強制轉換為另一個類型。Python中可以使用各個資料類型所對應的構造函數進行強制類型轉換。例如,可以使用int()構造函數将一個浮點數或字元串轉換為整數。
a = 5.8 # a為浮點數
b = int(a) # a強制轉換為整數,b為5
print(a, type(a))
print(b, type(b))
強制類型轉換可能會丢失資料,例如将一個浮點數強制轉換為整數時,會将小數部分直接截斷,導緻資料的精度損失。
賦不同類型的值
在Python中,對于同一個變量,還可以通過指派的方式改變變量的類型。
a = 5
print("現在我是整數:", a, type(a))
a = 5.6
print("現在我是浮點數:", a, type(a))
a = True
print("現在我是布爾值:", a, type(a))
a = "變來變去"
print("現在我是字元串:", a, type(a))
寫在後面
Python是一門強大的程式設計語言,擁有豐富的基本資料類型。在本篇文章中,我們介紹了Python的幾種基本資料類型:整數、浮點數、布爾值和字元串,以及它們之間的互相轉換。同時,我們還讨論了Python中的算術運算、比較運算和邏輯運算,以及它們的應用。