內(nèi)容來源于網(wǎng)絡(luò),本人只是在此稍作整理,如有涉及版權(quán)問題,歸小甲魚官方所有屹蚊。
練習(xí)題(來自小甲魚官方論壇)
0. Python 的 floor 除法現(xiàn)在使用 “//” 實現(xiàn),那 3.0 // 2.0 您目測會顯示什么內(nèi)容呢进每?
答:如果回答是 1.5 那么很遺憾汹粤,您受到 C 語言的影響比較大,Python 這里會義無反顧地執(zhí)行 floor 除法原則田晚,答案是:1.0
1. a < b < c 事實上是等于嘱兼?
答:(a < b) and (b < c)
2. 不使用 IDLE,你可以輕松說出 5 ** -2 的值嗎贤徒?
答:0.04芹壕,也就是 1/25
冪運算操作符比其左側(cè)的一元操作符優(yōu)先級高汇四,比其右側(cè)的一元操作符優(yōu)先級低。
3. 如何簡單判斷一個數(shù)是奇數(shù)還是偶數(shù)踢涌?
答:使用求余可以簡單得到答案:能被 2 整除為偶數(shù)通孽,所以 x % 2 == 0,否則為奇數(shù)睁壁。
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 的優(yōu)先級是不同的:not > and > or
我們按照優(yōu)先級給它們加上括號:(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潘明?
大家還記得第四講作業(yè)提到的“短路邏輯”嗎行剂?3 and 4 == 4,而 3 or 4 == 3钉疫。
所以答案是:4
溫馨提示:為了更好的表達你的程序硼讽,小甲魚再次呼吁有些括號還是不能省下的,畢竟不是所有程序員都跟你一樣都將優(yōu)先級爛透于心的牲阁。
5. 還記得我們上節(jié)課那個求閏年的作業(yè)嗎固阁?如果還沒有學(xué)到“求余”操作,還記得用什么方法可以“委曲求全”代替“%”的功能呢城菊?
答:因為上節(jié)課我們還沒有教大家“求余”的操作备燃,所以小甲魚使用了“if year/400 == int(year/400)”這樣的方式來“委曲求全”。
編程題
0. 請寫一個程序打印出 0~100 所有的奇數(shù)凌唬。
i = 0
while i <= 100:
if i % 2 != 0:
print(i, end=' ')
i += 1
else:
i += 1
1. 我們說過現(xiàn)在的 Python 可以計算很大很大的數(shù)據(jù)并齐,但是......真正的大數(shù)據(jù)計算可是要靠剛剛的硬件滴,不妨寫一個小代碼客税,讓你的計算機為之崩潰况褪?
答:print(2 ** 2 ** 32)
一般很多機子都會在一會兒之后:Memory Overflow,內(nèi)存不夠用更耻。
設(shè)計到冪操作测垛,結(jié)果都是驚人滴。
2. 愛因斯坦曾出過這樣一道有趣的數(shù)學(xué)題:有一個長階梯秧均,若每步上2階食侮,最后剩1階;若每步上3階目胡,最后剩2階锯七;若每步上5階,最后剩4階誉己;若每步上6階眉尸,最后剩5階;只有每步上7階,最后剛好一階也不剩效五。
(小甲魚溫馨提示:步子太大真的容易扯著蛋~~~)
題目:請編程求解該階梯至少有多少階地消?
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) # 根據(jù)題意炉峰,x一定是7的整數(shù)倍畏妖,所以每次乘以7
i += 1
if flag == 1:
print('階梯數(shù)是:', x)
else:
print('在程序限定的范圍內(nèi)找不到答案!')
3.請寫下這一節(jié)課你學(xué)習(xí)到的內(nèi)容:格式不限疼阔,回憶并復(fù)述是加強記憶的好方式戒劫!
- Python用真正的除法代替了地板除法;
- '\\'執(zhí)行的是地板除法
>>> 3 // 2
1
>>> 3.0 // 2
1.0
- 運算符的優(yōu)先級:冪運算 > 正負號 > 算術(shù)運算符 > 比較運算符 > 邏輯運算符