第4天 | 12天搞定Python,基礎語法(下)

爲了方便你的學習,減輕負重,我特意將基礎語法分成上下兩部分。希望你喜歡這種方式,如果不喜歡,你可以跟我說,反正我是不會改的,哈哈~~。

如果上部分,你還沒看的話,先去看《第4天 | 12天搞定Python,基礎語法(上)》。

python在處理數據時,不可避免的要進行數據類型之間的轉換,諸如整型和字符串之間的轉換。

4.5 類型轉換

轉換有隱式和顯式轉換,隱式也稱自動轉換,不用做處理。顯示轉換,也稱爲數據類型的強制類型轉換,通過內置函數實現。

1. 轉爲整型

通過內置函數int(x [,base]),可把x值轉爲整數。其中base是進制,默認是10進制。

# 浮點數轉爲整型,截斷小數點
f = 99.5
to = int(f)
print(to)
# 布爾轉爲整型
b = True
to = int(b)
print(to)
# 字符串轉爲整型
s = "520"
to = int(s)
print(to)
# 轉爲16進制
print(int(s, base=16))

輸出結果

99
1
520
1312

轉換是不是都會成功?--不一定,像字符串內容,比如“酷”,就沒辦法轉成整數。有時候扮酷,是需要付出代價的。

# 非數字內容
s = "酷"
# 轉換爲整數,報錯
to = int(s)
print(to)

輸出結果

  to = int(s)
ValueError: invalid literal for int() with base 10: '酷'

既然有異常,那得處理。可在轉換前,通過isdigit()函數判斷字符串內容是否全是數字,是才轉換,不是的話,做其他處理。這裏提前劇透條件語句。

# 非數字內容
s = "酷"
if s.isdigit():
    to = int(s)
    print(to)
else:
    print("做其他處理。")

輸出結果

做其他處理。

2. 轉爲浮點型

通過float(x),把x值轉爲浮點型。

# 整型轉爲浮點數
i = 99
to = float(i)
print(to)
# 字符串轉爲浮點數
s = "520.00"
to = float(s)
print(to)

輸出結果

99.0
520.0

字符串轉爲浮點數的過程中,也存在不成功的情況。可惜Python沒有直接的函數,可以判斷是否爲浮點數。最簡單直接的判斷方法,就是用捕捉異常的方法進行處理。

# 字符串內容
s = "13.10d"
try:
    f = float(s)
    print("真的是浮點型")
except ValueError:
    print("不是浮點型")

輸出結果

不是浮點型

3. 轉爲布爾型

在Python裏,整型、浮點型、字符串都可以轉爲布爾類型。除了0爲False,其他的全爲True。其中字符串記得用eval()取得表達式,否則"0"返回的是True。因爲“0”不是0。

# 整型轉爲布爾
i = 0
to = bool(i)
print(to)
# 浮點數轉爲布爾
f = 99.2
to = bool(f)
print(to)
# 字符串轉爲布爾
s = "0"
to = bool(eval(s))
print(to)

輸出結果

False
True
False

4. 轉爲字符串

通過str(x)函數把x內容,轉爲字符串,x是指定對象,包括整型、浮點數、數組等等。

# 整型轉爲字符串
i = 102
to = str(i)
print(to)
# 浮點數轉爲字符串
f = 36.6
to = str(f)
print(to)
# 布爾轉爲字符串
b = 0
to = str(b)
print(to)
# 數組轉爲字符串
array = ["101", "102", "103", "106"]
to = str(array)
print(to)

好的,類型轉換到這就告一個段落了,下面,我們進入運算符。

4.6 運算符

一進入小學,咱們就與算術結下了不解之緣,從手算、心算到口算,越算越聰明,越聰明越算,沉迷在算術的世界。可是自從了計算機以後,連寫字都懶了,更別提算術了。

誰叫計算機除了可以進行加減乘除算術運算外,還可以進行左邊值與右邊值的比較運算,再者還可以通過and、or、not運算符進行的邏輯運算呢。

1. 算術運算

算術運算,就是通過+、-、*、%、//符號進行加減乘除、取餘和取模的運算,其中被除數不能爲0。

(1) 整數和整數相加減、相乘,結果是整數。除的時候,若出現小數,自動轉爲浮點數。

a = 12  # 整數
b = 20  # 浮點數
# 加法運算
c = a + b
print(c)
# 減法運算
c = a - b
print(c)
# 乘法運算
c = a * b
print(c)
# 除法運算,結果有小數
c = a / b
print(c)

輸出結果

32
-8
240
0.6

(2) 整數和浮點數運算,整數會自動升爲浮點數,這就是隱式轉換,而用轉換函數那些的稱作顯式轉換。

a = 20      # 整數
b = 20.25  # 浮點數
# 加法運算
c = a + b
print(c)
# 減法運算
c = a - b
print(c)
# 乘法運算
print(c)
# 除法運算
c = a / b
print(c)

輸出結果

40.25
-0.25
-0.25
0.9876543209876543

(3) 浮點數和浮點數進行運算時,結果會出現偏差。像20.65-16.25正確答案應爲:4.4,結果卻是:4.399999999999999 。

a = 20.65  # 浮點數
b = 16.25  # 浮點數
# 加法運算
c = a + b
print(c)
# 減法運算
c = a - b
print(c)
# 乘法運算
print(c)
# 除法運算
c = a / b
print(c)

輸出結果

36.9
4.399999999999999
4.399999999999999
1.2707692307692307

(4) 浮點數偏差問題,可以通過Decimal函數進行解決。

from decimal import Decimal

a = 20.65  # 浮點數
b = 16.25  # 浮點數
# 減法運算
c = Decimal(str(a)) - Decimal(str(b))
print(float(c))

輸出結果

4.4

(5) 取模取餘

通過%進行取餘運算,結果返回除法的餘數。通過//進行取模運算,結果返回商的整數部分。

a = 20
b = 16
# 取餘運算
c = a % b
print(c)
# 取模運算
c = a // b
print(c)

輸出結果

4
1

(6) 冪運算

通過**進行冪運算,結果返回x的y次冪,跟內置函數pow()相同作用。

x = 2
y = 5
# 冥運算
z = x ** y
print(z)
# 冥函數
z = pow(x, y)
print(z)

輸出結果

32
32

(7) 複合賦值

複合運算符是算術運算符和賦值運算符合在一起的一種運算符,主要作用方便改變變量的值,有+=、-= 、*=、/=、%=、//=、**= 這7種。a += b ,表示a = a + b。其他的也類似。

a = 10
b = 20
# 加法賦值運算
a += b
print(a)
# 乘法賦值運算
c = 2
d = 50
d *= c
print(d)

輸出結果

30
100

2. 比較運算

比較運算,就是通過比較運算符(<、<=、> 、>=、==、!=),對左右兩邊的對象進行比較,結果返回布爾值:True或False。

a = 10
b = 20
c = 10
# 小於 < 比較
print(a < b)
# 小於等於 <= 比較
print(a <= c)
# 大於 > 比較
print(a > b)
# 大於等於 >= 比較
print(a >= c)
# 等於 == 比較
print(a == b)
# 不等於 != 比較
print(a != b)

輸出結果

True
True
False
True
False
True

3. 比較函數

Python3.7內置了比較函數 operator.lt(a, b) 、operator.le(a, b) 、operator.eq(a, b) 、operator.ne(a, b) 、operator.ge(a, b) 、operator.gt(a, b),對應比較運算符,如operator.lt(a, b)對應小於<。 比較運算符一般跟條件語句搭配使用,而用operator.lt(a, b)這種函數,可以直接得到結果布爾True或False)結果。

import operator
a = 10
b = 20
print(operator.lt(a, b))

輸出結果

True

還有另一種表達形式:operator.__lt__(a, b) 、operator.__le__(a, b) 、operator.__eq__(a, b) 、operator.__ne__(a, b) 、operator.__ge__(a, b) ,含義是一樣的。

import operator
a = 10
b = 20
print(operator.__lt__(a, b))

輸出結果

True

4. 邏輯運算

邏輯運算,就是通過與(and)、或(or)、非(not)運算符進行的運算。and表示它的前後條件都成立時,返回True,否則返回False。or表示它的前後條件有一個爲True,便返回True,否則返回False。 Not的意思是取相反值,True的not是False,False的not是True。

a = 10
b = 20
c = 30
d = True
# and組合比較
result = a > b and a > c
print(result)
# or組合比較
result = a < b or a > c
print(result)
# not
result = not d
print(result)

輸出結果

False
True
False

好了,基礎語法到這就全部介紹完了。能學到這的朋友,爲自己鼓鼓掌,對着顯示器,說一句:瞧你那個傻樣,呵呵~~

一個當了10年技術總監的老傢伙,分享多年的編程經驗。想學編程的朋友,可關注今日頭條:老陳說編程。我將分享Python,前端(小程序)和App方面的編程知識。關注我,沒錯的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章