樓賽 第30期 Python 模塊大比拼
提取用戶輸入信息
介紹
正則表達式(英文為 Regular Expression,常簡寫為regex、regexp 或 RE),也叫規則表達式、正規表達式,是計算機科學的一個概念。
所謂“正則”,可以理解為正式的規則或者正確的規則。在正則表達式中,這些規則通常都是單個的字符串,我們通過對這些規則的排列組合就可以實現對一類字符串的匹配。
目標
本節挑戰,我們需要實現一個腳本程序,提取文本中的數字(包括整數和浮點數),然后計算平均數,結果保留兩位小數。文本作為腳本的參數進行傳遞(可參考 要求 中的運行效果。)。
最終只需要輸出計算出的平均數。
要求
- 代碼需要寫在 /home/project/find_num.py。
- 文本作為腳本的參數傳入。
- 不要將最終輸出結果寫在腳本文件中。
- 最終運行效果如下:
部分測試用例:
"a11 b3.14c15 16""a 5 b 6 c7 dd8 9""ad1dg6dgd9dg4qwe10"
題解:
import sys, re
m = sys.argv[1]
pp = re.findall(r'\-*\d+(?:\.\d+)?' , m)
c = len(pp)
l = sum([float(x) for x in pp]) / c
print('%.2f' % round(l,2))