1. 程式人生 > >第三章 運算子與表示式

第三章 運算子與表示式

數字物件的運算

 “//”代表整除,對int和float都適用,“/”代表正常的除法,有餘數 對於複數,區域和擷取除法是無效的

>>> 3//2
1
>>> 3/2
1.5
>>> 1.5//0.3
5.0
>>> 1.5/0.3
5.0
>>> 1.5//0.4
3.0
>>> 1.5/0.4
3.75

優先順序: 一元運算子 》 乘方 》乘法 》 除法 》加減法

Python的運算子絕大多數都是從左邊開始的,只有兩個特例,乘方(**)和條件表示式運算子是從右邊開始的

>>> 5 or (8 if 5>6 else 0)
5
>>> 5 or 8 if 5>6 else 3  
3
// 條件表示式運算子的優先順序比邏輯運算子低

關係運算

不允許對複數進行比較

當運算元數同一型別時,比較才有效,如果不相同,會進行強制的進位制轉換。

邏輯運算

not a:如果a是false,返回1.否則返回0

a and b: 如果a是false,返回a,否則返回b。

a or b: 如果a是false,反饋b,否則反饋a。

總結,邏輯運算就是講第一個使得該命題最有可能的條件返回出來,同時,邏輯運算的結合性是從左到右的,對於and運算子,只有and左邊的值是false的時候,才繼續計算右邊的數。同理,對於 or 運算子,只有or左邊的數是false的時候,才繼續計算右邊的值。

運算子

左移,右移,按位與(&),按位或(|),按位異或(^)(相同的時候返回0,不同的時候返回1)

~(按位求反)

1.3
>>> 1 if 3 else 4
1
>>> 1 if 0 else 4
4
>>> 

運算方式。先計算中間的條件,如果中間的是true,那麼計算左邊的,否則計算右邊的。

條件表示式的結合性

>>> 1 if 3>2 else 2 if 5>6 else 3
1
>>> (1 if 3>2 else 2) if 5>6 else 3
3

從右邊開始,到左邊結束。

 常用函式

input函式

>>> x= input('x= ')
x= 34
>>> x
'34'
>>> x=float(input('x='))
x=34
>>> 
>>> x
34.0

print函式

>>> print(1,2,3,sep='%%%',end='\n')// 按照什麼分隔開,換行符。
1%%%2%%%3

eval函式

實現從字串向數字的轉換

具體格式 eval(字串,【字典【,對映】】)

str函式

將數字物件,列表物件,元祖,集合轉換為字串,還可以進行運算。

>>> str(1+2)
'3'
>>> str([1,2,3])
'[1, 2, 3]'
>>> str((1,2,3))
'(1, 2, 3)'

range函式(左閉右開)

>>> x=range(10)
>>> x[2]
2
>>> x[1]
1
>>> x[0]
0
>>> x[10]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: range object index out of range

enumerate函式

是一個可迭代物件,s返回的是一個迭代器。

數學函式庫的函式應用

匯入方法:import <庫名>  或者 from<庫名> import <函式名>

>>> import math
>>> math.sqrt(3)
1.7320508075688772

ceil函式(往上取整)

>>> import math
>>> math.ceil(1.2)
2
>>> math.ceil(-1.2)
-1

 trunc函式(往下取整)

>>> math.trunc(1.2)
1

factorial函式

當x是整數的時候,返回x的階乘,否則返回錯誤資訊

>>> math.factorial(19)
121645100408832000
>>> math.factorial(1,2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: factorial() takes exactly one argument (2 given)

isinf函式,判斷是不是超過最大值,如果是,返回true,否則返回false。正常的值的話,-1.7e308~1.7e308。

isnan函式

當x不是數字的時候,返回true,否則返回false(這裡的數字指的是在資料範圍裡面的數,如果超過了這個範圍,就不認為是數字了,返回true)。(兩個nan之間無法比較)

常用的字串方法

find函式

>>> s="abcd"
>>> s.find("bc")
1
>>> s.find("bc",2,3)
-1
>>> s.find("bc",1,3)
1
>>> s.find("bc",1,2)
-1

lower函式和islower函式


>>> s="ABCS_12"
>>> s.lower()
'abcs_12'
>>> s.islower()
False
>>> s="avc"
>>> s.islower()
True

split函式

以原字串s中的分隔符作為拆分依據,拆分字串s,返回一個列表,當不指定分隔符的時候,說明原字串中的分隔符是空格。

>>> s="ab,cd,1234,xy"
>>> s.split(sep=',')
['ab', 'cd', '1234', 'xy']
>>> s="ab cd 123  xy"
>>> s.split()
['ab', 'cd', '123', 'xy']
>>> 

strip函式

刪除字串兩邊的空格或者指定的字元

>>> s="  %%123%%  "
>>> s.strip()
'%%123%%'
>>> s.strip('%')
'  %%123%%  '
>>> s
'  %%123%%  '
>>> s.strip('%')
'  %%123%%  '
>>> s1=s.strip()
>>> s1
'%%123%%'
>>> s1.strip('%')
'123'
>>> s='%%123%%'
>>> s
'%%123%%'
>>> s.strip('%')
'123'
>>> 

fromhex函式,用十六禁止建立一個位元組串物件,可以容忍十六禁止數串中的空格。

hex函式,將位元組串轉換為16進位制的數。

decode函式,講位元組串轉換為字串。如果不特指編碼引數,就是“UTF-8 ”編碼。