題目:利用map和reduce編寫乙個str2float函式,把字串'123.456'轉換成浮點數123.456:#第1種方法是使用replace函式將字串中的"."替換為"",再使用digits的思路轉換為整數,最後新增小數點:
#!usr/bin/env python3
#-*-coding=utf-8-*-
#利用map和reduce編寫乙個str2float函式,把字串'123.456'轉換成浮點數123.456:
#第1種方法是使用replace函式將字串中的"."替換為"",再使用digits的思路轉換為整數,最後新增小數點::
from functools import reduce
def str2float(s):
for i in range(len(s)):
if s[i] == '.':
ss=s.replace('.','')
count = len(s)-(i+1)
def char2int(s):
digits =
return digits[s]
return reduce(lambda x,y:x*10+y,map(char2int,ss))/(pow(10,count))
print('str2float(\'123.456\')=',str2float('123.456'))
if abs(str2float('123.456')-123.456) < 0.001:
print('success')
else:
print('fail')
#第2種方法是使用split函式將字串在"."處分割成兩部分,分別用digits函式轉換為整數,最後把小數部分加上小數點與整數部分相加。
#!usr/bin/env python3
#-*-coding=utf-8-*-
#利用map和reduce編寫乙個str2float函式,把字串'123.456'轉換成浮點數123.456:
from functools import reduce
def str2float(s):
def char2num(s):
digits=
return digits[s]
data = s.split('.',1)
integer = reduce(lambda x,y:x*10+y,map(char2num,data[0])) #出錯點:這裡是char2num,非char2num()
decimal = reduce(lambda x,y:x*10+y,map(char2num,data[1])) * 0.1**len(list(map(char2num,data[1])))
return integer +decimal
print('str2folat(\'123.456\')=',str2float('123.456'))
if abs(str2float('123.456')-123.456) < 0.01:
print('success')
else:
print('fail')
備註:
1)**:執行取冪運算,ab會返回a的b次方。
print(2**10)
#1024
2)pow()方法返回 xy(x的y次方) 的值。 編寫乙個makefile
什麼是makefile?對於大多數的windows程式設計師來講,makefile可能不是那麼重要,因為windows的ide都為程式設計師做好了這個工作。但是在linux下程式設計,會不會寫makefile,從側面上說明乙個人是否具備完成大型工程的能力。makefile的作用 makefile是用...
編寫乙個webpack loader
loader是一種打包的方案,webpack預設只識別js結尾的檔案,當遇到其他格式的檔案後,webpack並不知道如何去處理。此時,我們可以定義一種規則,告訴webpack當他遇到某種格式的檔案後,去求助於相應的loader。新建loaders資料夾並建立三個loaders檔案 remove co...
如何遍歷乙個Map
對於j a中map的遍歷方式,很多文章都推薦使用entryset,認為其比keyset的效率高很多。理由是 entryset方法一次拿到所有key和value的集合 而keyset拿到的只是key的集合,針對每個key,都要去map中額外查詢一次value,從而降低了總體效率。那麼實際情況如何呢?為...