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
1. 我們說過現在的 Python 可以計算很大很大的數據,但是......真正的大數據計算可是要靠剛剛的硬件滴,不妨寫一個小代碼,讓你的計算機為之崩潰?
- print(2 ** 2 ** 32)
- # 一般很多機子都會在一會兒之后:Memory Overflow,內存不夠用。
- # 設計到冪操作,結果都是驚人滴。
那我再考考你
:
你猜猜為何 print( (2 ** 2) ** 32) 就可以計算出結果呢?
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('在程序限定的范圍內找不到答案!')
3. 請寫下這一節課你學習到的內容:格式不限,回憶並復述是加強記憶的好方式!