課時6:Python之經常使用操做符

目錄:程序員

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('在程序限定的範圍內找不到答案!')
相關文章
相關標籤/搜索