2020年9月14日星期一

[課後作業] 第006講:Pyhon之常用操作符|課後測試題及答案

申明本站飛宇網 https://feiyetopro.blogspot.com/自網路收集整理之書籍文章影音僅供預覽交流學習研究,其[書籍、文章、影音]情節內容, 評論屬其個人行為, 與本網站無關。版權歸原作者和出版社所有,請在下載 24 小時內刪除,不得用作商業用途;如果您喜歡其作品,請支持訂閱購買[正版]謝謝!


[課後作業] 第006講:Pyhon之常用操作符|課後測試題及答案 



《零基礎入門學習Python》視頻下載地址:傳送門

測試題:

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階,最後剛好一階也不剩。
(小甲魚溫馨提示:步子太大真的容易扯著蛋~~~)

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



3.請寫下這一節課你學習到的內容:格式不限,回憶並複述是加強記憶的好方式!


回复您的答案即可查看參考答案!


測試題答案:

本帖隱藏的內容

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 所有的奇數。
  1. i = 0
  2. while i <= 100:
  3.     if i % 2 != 0:
  4.         print(i, end=' ')
  5.         i += 1
  6.     else:
  7.         i += 1
複製代碼


1. 我們說過現在的Python 可以計算很大很大的數據,但是......真正的大數據計算可是要靠剛剛的硬件滴,不妨寫一個小代碼,讓你的計算機為之崩潰?

  1. print(2 ** 2 ** 32)

  2. # 一般很多機子都會在一會兒之後:Memory Overflow,內存不夠用。
  3. # 設計到冪操作,結果都是驚人滴。
複製代碼

那我再考考你 

你猜猜為何print( (2 ** 2) ** 32)就可以計算出結果呢?


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



  1. #请编程求解该阶梯至少有多少阶
  2. i=1
  3. while(True):
  4. if (i % 2 ==1 and i % 3 ==2 and i % 5 ==4 and i % 6 == 5 and i % 7 ==0):
  5. print(i)
  6. break
  7. else:
  8. i+=1
或者:
  1. x = 7
  2. i = 1
  3. flag = 0

  4. while i <= 100:
  5.     if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
  6.         flag = 1
  7.     else:
  8.         x = 7 * (i+1) # 根據題意,x一定是7的整數倍,所以每次乘以7
  9.     i += 1

  10. if flag == 1:
  11.     print('階梯數是:', x)
  12. else:
  13.     print('在程序限定的範圍內找不到答案!')
複製代碼


3.請寫下這一節課你學習到的內容:格式不限,回憶並複述是加強記憶的好方式!
小甲魚希望你認真對待作業就像你希望小甲魚推出高質量視頻一樣渴望^_^

(1)算術操作符
加減乘除:+ - * /(這裡的/ 是真實除法,可以得到小數)
a = a +3 等價於a += 3,還可以用a = b = c = d =10 這種形式
// 地板除法,取整除法
% 取餘
** 冪運算
優先級問題
先乘除,後加減,有括號先算括號裡面的。
冪運算比其左側的一元操作符優先級(如負號)高,比其右側的一元操作符優先級低。
例如:
>>> -3**2
-9
>>> 3**-2
0.1111111111111111
(2)比較操作符
在前面已經講過了,返回一個布爾類型的值(True 和False)
(3)邏輯操作符
and or not 返回一個布爾類型的值(True 和False)
3 < 4 <5 在Python中也是合法的,等價於(3<4) and (4<5)
又是優先級問題

0 留言:

發佈留言