歡迎來到我的友鏈小屋
# Python程序語言設計基礎(第二版)思考與練習 --- --- ## 3.5 思考各操作符的優先級,計算下列表達式 一、30-3\*\*2+8//3\*\*2*10 答:
>>> 30-3**2+8//3**2*10 21 # 冪運算第一,然后算地板除和乘法,最后加減 --- 二、3*4**2/8%5
>>> 3*4**2/8%5 1.0 # 先算冪,然后*,/,%依次運算 --- 三、3\*\*2\*\*3
>>> 3**2**3 6561 # 嵌套冪運算,優先算高級冪 --- 四、(2.5+1.25j)*4j/2
>>> (2.5+1.25j)*4j/2 (-2.5+5j) ''' 先看下面運算拆分 4j/2 = 2j 2.5*2j = 5j 1.25j*2j = -2.5+0j 所以 (2.5+1.25j)*4j/2 =2.5*2j + 1.25j*2j =5j + (-2.5+0j) =5j - 2.5 即: -2.5+5j ''' --- --- ## 3.6 請將下列數學表達式用python程序寫出來,並運算結果 一、 ![avatar][s1]
>>> x = (2**4+7-3*4)/7 --- 二、![avatar][s2]
>>> x = (1+3**2)*(16%7)/7 --- --- ## 3.7 假設x=1,x*=3+5**2的運算結果是什么?
>>> x = 1 >>> x*=3+5**2 即 >>> x=(3+5**2)*x 28 --- --- ## 3.12 一年有365天,初始水平值為1.0,每工作一天水平增加N,不工作時水平不下降,一周連續工作4天,請編寫程序運算結果並填寫下表
def runx(): day1=int(input('請輸入天數:')) initial = 1.0 initial1 = 1.0 ica = float(input("請輸入每天增加量:")) for i in range(day1): if i%7 in [1,2,3,4]: initial = initial*(initial1 + ica) print('{:.2f}'.format(initial)) runx() |增加值|0.001|0.002|0.003|0.004|0.005|0.006|0.007| |----|----|----|----|----|----|----|----|----|----|----| |結果|1.23|1.52|1.86|2.29|2.82|3.47|4.27| |增加值|0.008|0.009|0.010| |----|----|----|----|----|----|----|----|----|----|----| |結果|5.25|6.45|7.92| --- --- ## 3.13 一年有365天,初始水平值為1.0,每工作一天水平增加N,不工作時水平不下降,一周連續工作5天,請編寫程序運算結果並填寫下表
def runx(): day1=int(input('請輸入天數:')) initial = 1.0 initial1 = 1.0 ica = float(input("請輸入每天增加量:")) for i in range(day1): if i%7 in [1,2,3,4,5]: initial = initial*(initial1 + ica) print('{:.2f}'.format(initial)) runx() |增加值|0.001|0.002|0.003|0.004|0.005|0.006|0.007| |----|----|----|----|----|----|----|----|----|----|----| |結果|1.30|1.68|2.18|2.82|3.66|4.74|6.13| |增加值|0.008|0.009|0.010| |----|----|----|----|----|----|----|----|----|----|----| |結果|7.94|10.27|13.29| --- --- ## 3.14 一年有365天,初始水平值為1.0,每工作一天水平增加N,不工作時水平不下降,一周連續工作6天,請編寫程序運算結果並填寫下表
def runx(): day1=int(input('請輸入天數:')) initial = 1.0 initial1 = 1.0 ica = float(input("請輸入每天增加量:")) for i in range(day1): if i%7 in [1,2,3,4,5,6]: initial = initial*(initial1 + ica) print('{:.2f}'.format(initial)) runx() |增加值|0.001|0.002|0.003|0.004|0.005|0.006|0.007| |----|----|----|----|----|----|----|----|----|----|----| |結果|1.37|1.87|2.55|3.47|4.74|6.47|8.81| |增加值|0.008|0.009|0.010| |----|----|----|----|----|----|----|----|----|----|----| |結果|12.01|16.37|22.30| --- ## 3.15 一年有365天,初始水平值為1.0,以每個月30天計算,在每個月月初連續10天里,每工作一天水平增加N,該月其他時間工作與否都不增加水平值。請運算結果並填寫下表。
while 1==1: basics = 1.0 days = 360 increase = float(input("請輸入每天的增加值:")) for i in range(days): if i%30 in [1,2,3,4,5,6,7,8,9,10]: basics *= 1 + increase print("{:.2f}".format(basics)) |增加值|0.001|0.002|0.003|0.004|0.005|0.006|0.007| |---|---|---|---|---|---|---|---| |結果|1.13|1.27|1.43|1.61|1.82|2.05|2.31| |增加值|0.001|0.002|0.003| |-|-|-|-| |結果|2.60|2.93|3.30| --- ## 3.16 s="hello", t="world", s+=t, 則 s、s[-1]、s[2:8]、s[::3]、s[-2::-1]分別是多少? |問|s|s[-1]|s[2:8]|s[::3]|s[-2::-1]| |---|---|---|---|---|---| |答|"helloworld"|"d"|"lowor"|"hlod"|"lrowolleh"| > 解釋:
> s[::3]:表示從第一個字母開始,查找間隔第三個的字母
> s[-2::-1]:反向查找,表示從倒數第二個字母開始查找到順數第一個字母,並且反向輸出 --- ## 3.17 判斷題:Python中"4"+"5"的結果為"9": > 錯,這是字符串拼接,不是數字計算 --- ## 3.18 采用微實例 3.1 的設計思路還能完成哪些常用計算需求? > 答: --- ## 3.19 s="Python String",寫出下列操作的輸出結果: > s.upper()、s.lower()、s.find('i')
> s.replace('ing','qni')、s.split(' ') 解: |s.upper()|s.lower()|s.find('i')| |---|---|---| |'PYTHON STRING'|'python string'|10| |s.replace('ing','gni')|s.split(' ')| |---|---| |'Python Strgni'|['Python','String']| 解釋: > s.upper() 返回字符串str的副本,全部字符大寫 > s.lower() 返回字符串str的副本,全部字符小寫 > s.find('i') 查找字符串str中元素'i'的位置 > s.replace('ing','gni') 將字符串str中的元素'ing'替換為'gni' > s.split(' ') 以空格為分隔符,返回分割后的字符串列表 --- ## 3.20 下列表達式錯誤的是(): |A|'abcd'<'ad'| |B|'abc'<'abcd'>| |-|-|-|-|-| |C|''<'a'||D|'Helo'>'helo'| |-|-|-|-|-| 答: > A選項: 先比第0個元素,a和a比一樣大;再比第一個元素,b比d小.那么'abcd'比'ad'小.結果是TRUE. > B選項:前三個元素都相等,但'abcd'有第三個元素,而'abc'沒有.所以'abc'<'abcd'. > C選項:這個錯了,既不是對,又不是錯. > D選項:先比第0個元素,'A'要比'a'小.所以'ABCD'應該小於'abcd'. 結果為False. ------ ## 3.21 請思考並描述下面Python語句的輸出結果 > print('{:>15s}:{:<8.2f}'.format('Length',23.87501)) >>> print('{:>15s}:{:<8.2f}'.format('Length',23.87501)) ' Length:23.88 ' --- ## 3.22 格式化輸出 389 的二進制、八進制、十進制、十六進制的表達形式,以及對應的Unicode字符。 >>> '{:*^20b}'.format(389) #輸出二進制 '*****110000101*****' >>> '{:*<20o}'.format(389) #輸出八進制 '605*****************' >>> '{:*>20d}'.format(389) #輸出十進制 '*****************389' >>> '{:*^20X}'.format(389) #輸出大寫十六進制 '********185*********' >>> '{:*^20c}'.format(389) #輸出Unicode字符 ‘*********b**********’ --- ## 3.23 格式化輸出 0.002178 對應的科學表示法形式,保留4位有效位的標准浮點形式及百分比形式
>>> '{:E}'.format(0.002178) '2.178000E-03' >>> '{:.4f}'.format(0.002178) '0.0022' >>> '{:.2%}'.format(0.002178) #返回百分比形式,並保留小數點后兩位 '0.22%' --- ## 3.24 進度條反映了軟件的執行速度,請思考並給出至少3種提高軟件執行速度的方法。 > 硬件:使用性能更強的處理器;或使用固態硬盤等設備提高計算機整體速度。 > > 軟件自身:在編寫時進行代碼優化。編譯時采用靜態編譯(Python 不存在編譯的問題)。 > > 運行平台:類似Linux環境下執行,把硬件的算力提升到更大 --- ## 3.25 str.center()方法的功能是什么? > 將字符串居中 --- ## 3.26 如果將\r 放在print()中字符串的其他部分,會產生什么效果? print('\r你好Python') print('\r你好世界') >>>>>>>>>>>>>>> '你好Python' '你好世界' print('你好啊\rPython') print('你好啊\r世界') >>>>>>>>>>>>>>> 'Python' '世界啊' > 將轉義符\r 放到字符串尾部是對程序沒有影響; > > 然而如果放到其他地方,會導致\r 前面的所有字符不顯示,因為每次輸出到\r,指針又退回了行首,如果后面的內容足夠長,后面的內容會將其覆蓋。 --- [s2]:data:image/png;base64,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 [s1]:data:image/png;base64,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