系統學習程式設計筆記(二十)

2021-09-12 21:39:19 字數 1982 閱讀 8761

• 完成 python 教程。

6 函式式程式設計 (一)

reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
練習1:利用map()函式,把使用者輸入的不規範的英文名字,變為首字母大寫,其他小寫的規範名字。輸入:['adam', 'lisa', 'bart'],輸出:['adam', 'lisa', 'bart']

def normalize(name):

return (name[:1].upper()+name[1:].lower())

# 測試:

l1 = ['adam', 'lisa', 'bart']

l2 = list(map(normalize, l1))

print(l2)

練習2:python提供的sum()函式可以接受乙個list並求和,請編寫乙個prod()函式,可以接受乙個list並利用reduce()求積:

# -*- coding: utf-8 -*-

from functools import reduce

def prod(l):

return reduce(lambda x,y:x*y,l)

print('3 * 5 * 7 * 9 =', prod([3, 5, 7, 9]))

if prod([3, 5, 7, 9]) == 945:

print('測試成功!')

else:

print('測試失敗!')

練習3: 利用mapreduce編寫乙個str2float函式,把字串'123.456'轉換成浮點數123.456

# -*- coding: utf-8 -*-

from functools import reduce

def str2float(s):

digits =

intnum, floatnum = s.split('.')

def fn(x, y):

return x * 10 + y

def char2num(s):

return digits[s]

intnum = reduce(fn, map(char2num, intnum))

floatnum = 10**(-len(floatnum)) * reduce(fn, map(char2num, floatnum))

return intnum + floatnum

練習:回數是指從左向右讀和從右向左讀都是一樣的數,例如12321909。請利用filter()篩選出回數:

# -*- coding: utf-8 -*-

def is_palindrome(n):

return str(n)[:] == str(n)[::-1]

# 測試:

output = filter(is_palindrome, range(1, 1000))

print('1~1000:', list(output))

if list(filter(is_palindrome, range(1, 200))) == [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99, 101, 111, 121, 131, 141, 151, 161, 171, 181, 191]:

print('測試成功!')

else:

print('測試失敗!')

系統學習程式設計筆記(二)

電腦科學cs50 第1集 演算法,程式設計,語言等 這門課程是哈佛大學的,這個老師富有活力和激情,我的第一反應,不是覺得自己在聽課,而是覺得自己在欣賞乙個話劇,對,就是這種話劇的感覺。相比於之前在大學裡面上過的略感枯燥的計算機相關的課程,驚嘆於世界頂尖學府的教學水平。第一節課是緒論,一般來說,感覺緒...

系統學習程式設計筆記(七)

電腦科學cs50 第3集 c語言,源 編譯器 1 本集主要介紹了c語言編寫的乙個hello world程式,使用的是gcc編譯器,採用的是連線伺服器進行 的編譯和執行,而其實這是工業界經常採用的方式。原來csv檔案其實是用 分割儲存的文字檔案,只是開啟的時候看起來像excel檔案。詳細介紹了一些轉義...

linux系統學習筆記

一 軟體包安裝 原始碼包安裝 二進位製包安裝 二 rhel 7系統管理 使用systemctl命令管理服務 man命令幫助資訊 常用命令 reboot 用於重啟系統。格式為reboot,預設為系統管理員重啟 poweroff 用於關閉系統,其格式為poweroff,預設為系統管理員關閉 ps 用於檢...