1. 程式人生 > >006:Python之常用操作符

006:Python之常用操作符

限定 有一個 打印 .py 找不到 python 短路邏輯 數學 span

筆記

1.python中的3種除法:傳統除法、精確除法、地板除。

傳統除法:如果是整數除法則執行地板除,如果是浮點數除法則執行精確除法。

>>>1/2  
0  
>>>1.0/2.0  
0.5  

精確除法:除法總是會返回真實的商,不管操作數是整形還是浮點型。執行from future import division 指令就可以做到這一點。

>>>from __future__ import division  
>>>1/2  
0.5  
>>>1.0/2.0  
0.5  

地板除://除法不管操作數為何種數值類型,總是會舍去小數部分,返回數字序列中比真正的商小的最接近的數字。

>>>1//2  
0  
>>>1.0//2  
0  
>>>-1//2.0  
-1  

2.運算符的優先級:冪運算 > 正負號 > 算術運算符 > 比較運算符 > 邏輯運算符.

測試題

1.請用最快速度說出答案:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9。
答:4

not or and 的優先級是不同的:not > and > or

我們按照優先級給它們加上括號:(not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9)
== 0 or 0 or 4 or 6 or 9
== 4
短路邏輯:
if a and b:#如果a是false,那麽跳過b的判斷,結果直接false。
if a or b:#如果a為true,那麽跳過b的判斷,直接true

2.請寫一個程序打印出 0~100 所有的奇數。
答:

i = 0
while i < 101:
    if i %2 == 1:
        print(i)
        i += 1
    else:
        i += 1

按照答案修改:

i = 0
while i <= 100:
    if i % 2 != 0:
        print(i, end=‘ ‘)
        i += 1
    else:
        i += 1

3.愛因斯坦曾出過這樣一道有趣的數學題:有一個長階梯,若每步上2階,最後剩1階;若每步上3階,最後剩2階;若每步上5階,最後剩4階;若每步上6階,最後剩5階;只有每步上7階,最後剛好一階也不剩。

題目:請編程求解該階梯至少有多少階?
答:

i = 0
while 1:
    if i%2==1 and i%3==2 and i%5==4 and i%6==5 and i%7==0:
        print(i)
        break
    else:
        i += 1

按照答案修改:

x = 7
i = 1
flag = 0
while i <= 100:
    if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
        flag = 1
    else:
        x = 7 * (i+1) # 根據題意,x一定是7的整數倍,所以每次乘以7
    i += 1
if flag == 1:
    print(‘階梯數是:‘, x)
else:
    print(‘在程序限定的範圍內找不到答案!‘)

006:Python之常用操作符