1 #利用map和reduce編寫乙個str2float函式,把字串'123.456'轉換成浮點數123.456:
**:
2
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]#
**分析:
2
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...