本文繼續查漏補缺,python 語言涉及運算子以及其優先級
python 運算運算式清單
以下運算運算式按照從上到下,優先級依次降低,
{},[],():其中大括號{}用在字典與集合相關知識中,中括號[]用在串列以及串列生成器,小括號()用在元組以及生成器運算式中;類.屬性:點號.運算子;函式(引數),方法(引數),類(引數):三者優先級基本一致;串列[i:j:k]:切片運算;串列[i]:索引運算;num**x:冪運算子;~num:位反運算子;-num,+num:一元運算子;num1/num2,num1//num2:除與整除運算子;num1*num2,num1%num2:乘法/重復運算子,求余數/格式化運算子;num1+num2,num1-num2:加法/連接運算子,減法/差集運算子;num<<1,num>>2:左移,右移運算子;num1&num2:按位與運算子,交集運算子;num1^num2:按位異或運算子,對稱差集運算子;num1|num2:按位或運算子,集合并集運算子;num1==num2,num1!=num2:相等與不相等;<,>,<=,>=:比較運算子;obj is object,obj is not object:同一性運算子;a in my_list,a not in my_list:成員測驗運算子;not,or,and:邏輯非,邏輯或,邏輯與;num1 if num2 else num3:條件運算式;lambda:匿名函式運算式;yield:生成器運算式,
python 內置資料型別
在 python 中,已經內置好一些常用的資料型別,這些在滾雪球第一季已經系統學習,此處在進行一些遺漏知識點的補充,重點在數值型別與字串型別,
數值型別
數值就是數字,這里僅補充一點作為學習,為了讓數字在 python 代碼中閱讀方便,整數和浮點數都可以添加多個 0 或者下劃線,例如下述代碼,
num = 100_000
f_num = 000.005
print(num)
print(f_num)
一般每隔 3 位添加一個下劃線,
整型和浮點型物件有一些專屬的型別方法和屬性
as_integer_ratio:回傳一個整型比率
a = (10.0).as_integer_ratio()
b = (0.0).as_integer_ratio()
c = (-.25).as_integer_ratio()
print(a)
print(b)
print(c)
is_integer:如果浮點為整數,則回傳 True
a = (10.0).is_integer() # True
c = (-.25).is_integer() # False
print(a)
print(c)
整型也存在一些屬性或者方法
a = (2).numerator # 分子
b = (2).denominator # 分母
print(a, b)
c = (127).bit_length() # bit 位數
print(c)
整型或者浮點型存在屬性與方法,也間接證明了它們就是物件,
小數和分數在 python 中有專屬模塊
from decimal import Decimal
# 通過物件計算
df1 = Decimal('0.5')
df2 = Decimal(5)
df3 = Decimal(0.3)
print(df1)
print(df2)
print(df3)
可以給 Decimal 物件整型或者字串型別的引數,但不能是浮點資料,因為浮點資料在計算機中不準確,
如果希望轉換浮點數,使用下述代碼:
df4 = Decimal.from_float(10.4)
使用 getcontext() 函式也可以固定精度
from decimal import Decimal, getcontext
getcontext().prec = 3
# 通過物件計算
df1 = Decimal('1') / Decimal('3')
print(df1)
可以對浮點數四舍五入:
from decimal import *
df1 = Decimal('20.2333').quantize(Decimal('0.00'))
df2 = Decimal('20.2383').quantize(Decimal('0.00'))
print(df1) # 20.23
print(df2) # 20.24
分數模塊 fractions,演示代碼如下:
from fractions import Fraction
a = Fraction(1,2)
print(a)
字串型別
鄰接的字串常量,自動連接
my_str = "hello" "world" "橡皮擦"
print(my_str)
如果鄰接的字串在一個括號中,可以用于實作 python 限制每行代碼不超過 79 個字符的約定,
print(("hello"
"world"
"橡皮擦"))
在 python 中存在位元組(bytes)和位元組組(bytearray),你可以使用計算集合差集的代碼,查看位元組與位元組組之間方法和屬性的差異,
str_set = set(dir(str))
bytes_set = set(dir(bytes))
# str 與 bytes 之間的差異
print(str_set - bytes_set)
# 差異如下:{'isdecimal', 'format', 'isnumeric', 'encode', 'isidentifier', 'casefold', 'isprintable', 'format_map'}
使用同樣的辦法,也可以計算其它型別之間的差異,
python 中的語法細節
python 序列賦值
a, b, c = [1, 2, 3]
print(a, b, c)
序列賦值要求左側的變數數量與右側序列長度一致,
擴展序列賦值
a, *b, c = [1, 2, 3, 4, 5, 6, 7]
print(a, b, c)
使用 * 可以收集序列中未被匹配的元素,
python 中的語法
控制流:默認 python 代碼自上至下運行,當出現分支代碼時改變運行順序;塊:相同的代碼塊具有相同的縮進;陳述句:python 中的一行代碼就是一條陳述句,有的一條陳述句存在折行;
陳述句和運算式是 python 編碼中,經常提及的兩個概念,比較難區分,
一般任何一個運算式都能以陳述句形式出現,但是陳述句不能出現在任何運算式中,由此可以知道陳述句的范圍要大,
一般會把陳述句看成是由運算式組成一行代碼,而運算式只由運算子和操作物件組成,
寫在后面
以上內容就是本文的全部內容,希望對學習路上的你有所幫助~
今天是持續寫作的第 232 / 365 天,
期待 關注,點贊、評論、收藏,
更多精彩
- 滾雪球學 Python(完結)
- 滾雪球學 Python 第二輪(完結)
- 滾雪球學 Python 第三輪
- 滾雪球學 Python 番外篇(完結)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/304936.html
標籤:python
