91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python正則表達式實現簡易計算器功能示例

發布時間:2020-08-21 18:04:14 來源:腳本之家 閱讀:143 作者:微信1257309054 欄目:開發技術

本文實例講述了Python正則表達式實現簡易計算器功能。分享給大家供大家參考,具體如下:

需求:使用正則表達式完成一個簡易計算器。

功能:能夠計算簡單的表達式。

如:1*2*((1+2)/(2+3)+1)*5.1-3+2**2

import re
class SimpleCalc(object):
  # 表達式檢測
  def check(self,exp):
    # 合法字符檢測
    res = re.findall(r"[^\d\+\-\*/\(\)\.]", exp)
    print(res)
    if res:
      print("表達式不正確!!!")
      print("輸入了非法字符:", res)
      return False
    # 括號檢測
    res = re.findall(r"(?:[\d\)]\()|(?:\([\*/\)])|(?:[\-\+\*/]\))",exp)
    if res :
      print("表達式不正確!!!")
      print("括號使用有誤:", res)
      return False
    res = re.findall(r"\(|\)", exp)
    if res.count('(') != res.count(')'):
      print("表達式不正確!!!")
      print("括號不匹配:", res)
      return False
    # 運算符檢測
    res = re.findall(r"[\-\+/]{2,}|\*{3,}", exp)
    if res:
      print("表達式不正確!!!")
      print("運算符有誤:", res)
      return False
    # 小數點位置檢測
    res = re.findall(r"(^(?<=[0-9])?\.\d+)|(\.\d*?\.)|\.(\D|$)", exp)
    if res:
      print("表達式不正確!!!")
      print("小數點位置有誤:", res)
      return False
    return True
def main():
  simpleCalc = SimpleCalc()
  while True:
    exp = input("請輸入一個正確的表達式(退出請輸入t):\n")
    if exp == 't':
      break
    if simpleCalc.check(exp):
      print('=',eval(exp))
    else:
      continue
if __name__ == '__main__':
  main()

輸出:

請輸入一個正確的表達式(退出請輸入t):
1*2*((1+2)/(2+3)+1)*5.1-3+2**2
[]
= 17.32
請輸入一個正確的表達式(退出請輸入t):
12+a
['a']
表達式不正確!!!
輸入了非法字符: ['a']
請輸入一個正確的表達式(退出請輸入t):

PS:這里再為大家提供2款非常方便的正則表達式工具供大家參考使用:

JavaScript正則表達式在線測試工具:
http://tools.jb51.net/regex/javascript

正則表達式在線生成工具:
http://tools.jb51.net/regex/create_reg

更多關于Python相關內容可查看本站專題:《Python正則表達式用法總結》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》

希望本文所述對大家Python程序設計有所幫助。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

揭阳市| 柳林县| 项城市| 仁布县| 陈巴尔虎旗| 伊通| 郧西县| 红安县| 新龙县| 连城县| 井冈山市| 义乌市| 咸宁市| 临西县| 沅陵县| 教育| 密云县| 通州市| 边坝县| 常宁市| 班戈县| 凉山| 中牟县| 叶城县| 凤阳县| 松溪县| 武定县| 岳池县| 井研县| 彰化市| 黔南| 吉木乃县| 河池市| 福建省| 凤庆县| 龙门县| 广水市| 泰来县| 博客| 剑阁县| 交城县|