Python程式設計思想(3):數字及其相關運算
阿新 • • 發佈:2020-06-03
Python 提供了三種數值型別:int(整型),float(浮點型)和complex(複數)。
執行結果如下圖所示:
2. 常用的數學函式
Python 提供了豐富的數學函式以降低程式設計實現的難度,本問將介紹一些常用的函式。
執行結果如下圖所示:
- int:通常被稱為整型或者整數,如200、299、10都屬於整型;
- float:浮點數包含整數和小數部分,如3.1415926,2.71828都屬於浮點數;
- complex:複數包含實數部分和虛數部分,形如 a+bj,其實部和虛部都是浮點型別;
a = 456 b = 2.71828 print("int(b)=",int(b)) print("float(a)=",float(a)) print("complex(a)=",complex(a)) print("complex(a,b)=",complex(a,b))
import math #求絕對值:abs(x) print("abs(-200)=",abs(-200)) #向上取整:ceil(x) print("ceil(3.1415)=",math.ceil(3.1415)) #向下取整:floor(x) print("floor(3.678)=",math.floor(3.678)) #四捨五入:round(x) print("round(3.678)=",round(3.678)) #乘方運算:pow(x,y),x的y次方 print("pow(3,4)=",pow(3,4)) #求平方根:sqrt(x) print("sqrt(144)=",math.sqrt(144))
執行結果如下圖所示:
3. 運算子 計算機的最基本用途之一就是執行數學運算,作為一門計算機程式語言,Python 也提供了一套豐富的運算子來滿足各種運算需求。 Python 運算子主要可以分為6種:算術運算子、比較運算子、賦值運算子、邏輯運算子、位運算子和成員運算子。 (1)算術運算子 對於算術運算,大家並不陌生,常用的加減乘除就是算術運算。不過,在程式語言裡,算術運算子特殊一些,Python 中的算術運算有7種:加(+)、減(-)、乘( * )、除(/)、取模(%)、冪運算( ** )和取整預算(//)。以下通過例項演示算術運算子的用法。#初始化測試資料 x = 30 y = 24 z = 12 #分別進行7種算術運算 z = x + y print("x + y =", z) z = x - y print("x - y =", z) z = x * y print("x * y =", z) z = x / y print("x / y =", z) z = x % y print("x % y =", z) z = x ** y print("x ** y =", z) z = x // y print("x // y =", z)
(2)比較運算子
比較無處不在,大於、小於、等於、不等於……和 C/C++、Java 等程式語言一樣,Python 也提供了6種比較運算子:>(大於),<(小於),==(等於),!=(不等於),>=(大於等於),<=(小於等於)。比較運算的結果是一個布林值,True 或者 False,看下面的案例程式碼:# 初始化變數 x = 12 y = 7 #分別進行6種比較運算 print("x == y:", x == y) print("x != y:", x != y) print("x > y:", x > y) print("x < y:", x < y) print("x >= y:", x >= y) print("x <= y:", x <= y)執行結果如下圖所示: (3)賦值運算子 其實在前面的程式碼中已經用到賦值運算,如 x = 12,就是一個最簡單的賦值運算,“=”就是最簡單的賦值運算子。將簡單的賦值運算與算術運算結合,Python 形成了更豐富的賦值運算子:+=、-=、=、/=、%=、*=、//=。看下面的案例程式碼:
#初始化變數 x = 12 y = 21 #分別進行7種賦值運算 y = x print("y = x, y =", y) y += x print("y += x, y =", y) y -= x print("y -= x, y =", y) y *= x print("y *= x, y =", y) y /= x print("y /= x, y =", y) y **= x print("y **= x, y =", y) y //= x print("y //= x, y =", y)
執行結果:
(4)邏輯運算子 所謂邏輯運算,就是:與、或、非。Python 中的3種邏輯運算子分別為:and(與),or(或),not(非),邏輯運算的結果是布林值:True 或者 False。
- A and B:當A和B有一個為False時,結果就為False,只有A和B都為True時,結果才為True;
- A or B:只有當A和B都是False時,結果才為False,只要有一個為True,結果就為True;
- not A:當 A 為 True 時,返回 False,否則返回 True。
#初始化變數 a = 2 b = 3 c = 5 #分別執行3種邏輯運算 print("a>b and a<c :", a>b and a<c) print("a<b and c :", a<b and c) print("a>b or c :", a>b or a<c) print("a<b or c :", a<b or c) print("a or a<c :", a or a<c) print("not a :", not a) print("not a<b :", not a<b)
執行結果如下圖所示:
(5)位運算子 程式中的所有數值在計算機記憶體中都是以二進位制的形式儲存的。位運算就是直接對整數在記憶體中的二進位制位進行操作。Python 中有6種位運算子:- &:按位與,參與運算的兩個值,如果兩個相應位都為1,則該位的結果為1,否則為0;
- |:按位或,只要對應的2個二進位有一個為1時,結果位就為1;
- ^:按位異或,當兩對應的二進位相異時,結果為1;
- ~:按位取反,對資料的每個二進位制位取反,即把1變為0,把0變為1;
- >>:按位右移,將>>左側的數按位向右移動>>右邊的數指定的位;
- <<:按位左移,將<<左側的數按位向左移動<<右邊的數指定的位;
a = 21 b = 6 print('a & b = ',a & b) print('a | b = ',a | b) print('a ^ b = ',a ^ b) print('~a = ',~a) print('a << 2 = ',a << 2) print('a >> 2 = ',a >> 2)
執行結果如下圖所示:
這裡講a=21,b=6,轉換為二進位制如下:
a = 0001 0101 b = 0000 0110 a&b = 0000 0100 a|b = 0001 0111 a^b = 0001 0011 ~a = 1110 1010 a<<2 = 01010100 a>>2 = 0000 0101(6)成員運算子 除了前面介紹的5種運算子,Python 還支援成員運算子。介紹成員運算子之前,我們需要提前瞭解一個概念:資料結構,如字串、列表、元組、字典。在接下來的文章中我們將詳細介紹這些基礎的資料結構。字串、列表、字典,它們就像一個集合,其中包含若干元素,這些元素就是集合的成員;對於一個給定的元素,它有可能在一個給定的集合中,也可能不在,Python 中採用成員運算子來判斷元素是否屬於成員,成員運算的結果為布林值,True 或者 False。 看下面的程式碼:
#初始化字串和列表 temp1 = "abcdefg" temp2 = [4,2,3,5,8,9] a = "cdf" b = 5 c = "cde" print("a in temp1?", a in temp1) print("b in temp2?", b in temp2) print("c in temp1?", c in temp1)執行結果如下圖所示: