python 程式設計學習練習題 3

2021-09-20 16:51:32 字數 1432 閱讀 7863

1 #利用map和reduce編寫乙個str2float函式,把字串'123.456'轉換成浮點數123.456:

**:

3 from functools import reduce

4 str = '123.456'

5 point = str.find('.')

6 def str2int(a):

7     if a != '.':

8         return int(a)

9 10 def int2float(x,y):

11     return x*10 + y

12 13 result = reduce(int2float,list(map(str2int,str))[:point]) + reduce(int2float,list(map(str2int,str))[point+1:]) * 10**(-(len(str)-point-1))

14 print(result)

執行結果:

[root@hk practice]# python map_reduce_3.py 

123.456

[root@hk practice]#

**分析:

3 from functools import reduce                #匯入reduce模組

4 str = '123.456'                             #將需要轉換的字串賦值

5 point = str.find('.')                       #用str.find找出小數點的位置

6 def str2int(a):                             #定義函式,將字串轉換成int型別

7     if a != '.':                            

8         return int(a)

9 10 def int2float(x,y):                         #定義乙個求積的函式

11     return x*10 + y

12 13 result = reduce(int2float,list(map(str2int,str))[:point]) + reduce(int2float,list(map(str2int,str))[point+1:]) * 10**(-(len(str)-point-1))

14 print(result)                               #前半部分是小數點之前的結果,+之後的部分是小數點之後的部分,10**(-(len(str)-point-1))是通過point確定新數字小數點的位置

python學習 練習題1 2 3 4 5

練習1 利用random函式,生產0 100直接的整數 方法一 defsuijishu import random print format int random.random 100 suijishu 方法二 defsuijishu1 import random print random.rand...

java學習練習題

1.通過命令列輸入一串字元,首先判斷這些字元是否都為數 字。如果其中有字元不是數字,那麼直接在命令列上輸出 用 戶輸入的字元不都為數字,無法轉換 程式結束 如果用 戶輸入的字元都為數字,那麼將該數字轉換為中文的大寫表 示 使用者每次最多輸入 8個字元 輸入輸出示例 輸入 1234567 輸出 一百二...

執行緒學習練習題

實現乙個runnable類,在run 內部列印乙個訊息,然後呼叫yield 重複這個操作3次,然後從run 中返回。在構造器中放置一條啟動訊息,並且放置一條在任務終止時的關閉訊息。使用執行緒建立大量的這種任務並驅動他們 packagecom.nstc.test4 publicclassrunnabl...