目錄:程序員
1、算術操做符編程
2、優先級問題測試
3、比較操做符大數據
4、邏輯操做符spa
5、課時06課後習題及答案設計
******************code
1、算術操做符blog
******************內存
>>> a = b = c = d = 10
>>> a += 1
>>> b -= 3
>>> c *= 10
>>> d /= 8
>>> (a,b,c,d) (11, 7, 100, 1.25)
在這裏咱們發現,即便是進行整數間的除法,可是答案是自動返回一個浮點型的精確數值,也就是說Python用真正的除法代替了地板除法。 地板除法的概念是:計算結果取比商小的最大整型,也就是捨棄小數的意思。(注:例如3 / 2等於1)數學
>>> 3 / 2 1.5 >>> 3 // 2 1 >>> 3.0 // 2 1.0 >>> 3.0 / 2 1.5
值得注意的一點是,不管是整數運算仍是浮點數運算,都不會執行地板除法。須要用//。
>>> 5%2
1
>>> 4%2 0 >>> 520 % 14
2
>>>
百分號(%)表示求餘數的意思。
******************
2、優先級問題
******************
先乘除後加減,若有括號先算括號裏的。
>>> -3 * 2 + 5 / -2 -4 -12.5 >>> (-3) * 2 + 5 / (-2) -4 -12.5
Python中還有一個特殊的乘法,就是雙星號(**),也稱爲冪運算操做符。例如3**2,雙星號左側的3稱爲底數,右側的2稱爲指數,把這樣的算式叫做3的2次冪,結果就是3*3==9.
在使用Python進行冪運算的時候,須要注意一點是優先級問題,由於冪運算操做符和一元操做符(只有一個操做數)的優先級關係比較特別:冪運算操做符比其左側的一元操做符優先級高,比其右側的一元操做符優先級低:
>>> -3 ** 2 -9 >>> - (3 ** 2) -9 >>> 3 ** -2 0.1111111111111111 >>> 3 ** (-2) 0.1111111111111111
******************
3、比較操做符
******************
比較操做符包括:< <= > >= == !=
比較操做符根據表達式的值的真假返回布爾類型的值。
******************
4、邏輯操做符
******************
邏輯運算符包括: and or not
and :同真爲真
or:同假爲假
not :它的做用是獲得一個和操做數相反的布爾類型的值
>>> not True False >>> not 0 True >>> not 4 False >>> 3 < 4 <5 True >>> 3 < 4 and 4 < 5 True
在Python中,0解釋爲False,非0的數解釋爲True。
Python操做符優先級:
*******************************
5、課時06課後習題及答案
*******************************
測試題:
0. Python 的 floor 除法如今使用 「//」 實現,那 3.0 // 2.0 您目測會顯示什麼內容呢?
1. a < b < c 事實上是等於?
2. 不使用 IDLE,你能夠輕鬆說出 5 ** -2 的值嗎?
3. 如何簡單判斷一個數是奇數仍是偶數?
4. 請用最快速度說出答案:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9
5. 還記得咱們上節課那個求閏年的做業嗎?若是尚未學到「求餘」操做,還記得用什麼方法能夠「委曲求全」代替「%」的功能呢?
動動手:
0. 請寫一個程序打印出 0~100 全部的奇數。
1. 咱們說過如今的 Python 能夠計算很大很大的數據,可是......真正的大數據計算但是要靠剛剛的硬件滴,不妨寫一個小代碼,讓你的計算機爲之崩潰?
2. 愛因斯坦曾出過這樣一道有趣的數學題:有一個長階梯,若每步上2階,最後剩1階;若每步上3階,最後剩2階;若每步上5階,最後剩4階;若每步上6階,最後剩5階;只有每步上7階,最後恰好一階也不剩。
題目:請編程求解該階梯至少有多少階?
答案:
測試題答案:
0. Python 的 floor 除法如今使用 「//」 實現,那 3.0 // 2.0 您目測會顯示什麼內容呢
若是回答是 1.5 那麼很遺憾,您受到 C 語言的影響比較大,Python 這裏會義無反顧地執行 floor 除法原則,答案是:1.0
1. a < b < c 事實上是等於?
(a < b) and (b < c)
2. 不使用 IDLE,你能夠輕鬆說出 5 ** -2 的值嗎?
0.04,也就是 1/25
冪運算操做符比其左側的一元操做符優先級高,比其右側的一元操做符優先級低。
3. 如何簡單判斷一個數是奇數仍是偶數?
使用求餘能夠簡單獲得答案:能被 2 整除爲偶數,因此 x % 2 == 0,不然爲奇數。
4. 請用最快速度說出答案:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9
若是你的回答是 0,那麼小甲魚很開心你中招了!
答案是: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
爲啥是 4?
你們還記得第四講做業提到的「短路邏輯」嗎?3 and 4 == 4,而 3 or 4 == 3。
因此答案是:4
舒適提示:爲了更好的表達你的程序,小甲魚再次呼籲有些括號仍是不能省下的,畢竟不是全部程序員都跟你同樣都將優先級爛透於心的。
5. 還記得咱們上節課那個求閏年的做業嗎?若是尚未學到「求餘」操做,還記得用什麼方法能夠「委曲求全」代替「%」的功能呢?
由於上節課咱們尚未教你們「求餘」的操做,因此小甲魚使用了「if year/400 == int(year/400)」這樣的方式來「委曲求全」。
動動手答案:
0. 請寫一個程序打印出 0~100 全部的奇數。
i = 0 while i <= 100: if i % 2 != 0: print(i, end=' ') i += 1 else: i += 1
或者:
i = 0 while i <= 100: if i % 2 != 0: print(i,end=" ") i+=1
1. 咱們說過如今的 Python 能夠計算很大很大的數據,可是......真正的大數據計算但是要靠剛剛的硬件滴,不妨寫一個小代碼,讓你的計算機爲之崩潰?
print(2 ** 2 ** 32) # 通常不少機子都會在一下子以後:Memory Overflow,內存不夠用。 # 設計到冪操做,結果都是驚人滴。
2. 題目:請編程求解該階梯至少有多少階?
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('在程序限定的範圍內找不到答案!')