検索
ホームページバックエンド開発Python チュートリアルPython 設計の電卓関数実装の完全な例の共有

Python 設計の電卓関数実装の完全な例の共有

Aug 20, 2017 am 10:53 AM
python成し遂げる電卓

この記事では、主に Python で設計および実装された計算機関数を紹介します。Python3.5 の通常、文字列、数値演算およびその他の関連操作テクニックを分析し、必要な方は参考にしてください。この記事へ

この例では、Python で設計および実装された計算機関数について説明します。参考のために皆さんと共有してください。詳細は次のとおりです。

PYTHON を使用して、次のような電卓の機能を設計および処理します。

1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 ))- (-4*3)/(16-3*2))

私の基本的な考え方計算の処理は次のとおりです:

問題解決の考え方は、内側の括弧の演算を最初に処理する必要があるということです - 外側の括弧の演算は、最初に乗算と除算、加算と減算の原則です:

1 によって入力された文字列を定期的に処理します。可能であれば、計算式を正規化し、最内層の各データを取得してから、1つずつ計算します

使用する規則性は次のとおりです。


inner = re.search("\([^()]*\)", calc_input)

2. 括弧内の計算式を変更します。 計算結果は、元の初期式の位置を置き換えます。 処理が必要な繰り返し演算の関数は、計算前に個別に処理されます。

def del_double(str):
  str = str.replace("++", "+")
  str = str.replace("--", "-")
  str = str.replace("+-","-")
  str = str.replace("- -","-")
  str = str.replace("+ +","+")
  return str

3.次に括弧を内側から外側に向かって削除して位置を置き換えます


calc_input = calc_input.replace(inner.group(), str(ret))

計算結果を元の計算式に置き換えます

4.と、計算制御関数を組み合わせて計算を呼び出します。途中で注意する必要があるのは、マイナス記号と数値と * を一緒に処理することで、残りはかなり優れています。 special具体的なロジック図は次のとおりです。

パターン 説明
^ 文字列の先頭と一致します
$ 文字列の末尾と一致します。
. は、改行文字を除く任意の文字に一致します。 re.DOTALL フラグが指定されている場合、改行文字を含む任意の文字に一致します。
[...] は、個別にリストされている文字のグループを表すために使用されます: [amk] は、'a'、'm'、または 'k に一致します
[^...] はnot in [ の文字 ]: [^abc] は、a、b、c 以外の文字と一致します。
re* は 0 個以上の式と一致します。
re+ は 1 つ以上の式と一致します。
re? 貪欲でない方法で、前の正規表現で定義された 0 または 1 つのフラグメントと一致します
re{ n}
re{ n,} n つ前と完全に一致表現。
re{ n, m} は、前の正規表現で定義されたフラグメントの n 倍から m 倍の貪欲な方法で一致します
a b は a または b と一致します
(re) G は括弧内の式と一致し、グループ
(?imx) も表します。正規表現には、i、m、または x の 3 つのオプションのフラグが含まれます。括弧内の領域にのみ影響します。
(?-imx) i、m、または x のオプションのフラグをオフにする正規表現。括弧内の領域にのみ影響します。
(?: re) Like (...) ですが、グループを表しません
(?imx: re) 括弧内に i、m、または x のオプションのフラグを使用します
(?-imx: re) かっこ内の i、m、x のオプションのフラグは使用しないでください
(?#...) Comments.
(?= re) Forward正の区切り文字。 ... で示される、含まれている正規表現が現在の位置と正常に一致する場合は成功し、そうでない場合は失敗します。しかし、含まれている式が試行されると、マッチング エンジンはまったく改善されず、パターンの残りの部分は依然として区切り文字の右側を試行する必要があります。
(?! re) 前方負の区切り文字。正の区切り文字とは反対に、含まれる式が文字列の現在位置で一致しない場合に成功します
(?> re) 独立したパターンが一致したため、バックトラッキングの必要がなくなります。
w は英数字と一致します
W は英数字以外と一致します
s は[tnrf]と同等の任意の空白文字と一致します
S 空でないものと一致します文字
d は、[0-9]に相当する任意の数値に一致します。
D は、数字以外の任意の数値に一致します
A は、文字列の先頭に一致します
Z 文字列の末尾に一致します。改行がある場合は、改行より前の文字列の末尾のみが一致します。 c
z は文字列の末尾に一致します
G は最後の一致が完了した位置に一致します。
b は、単語とスペースの間の位置を指す単語境界に一致します。たとえば、「erb」は「never」の「er」と一致しますが、「verb」の「er」とは一致しません。
B 単語以外の境界と一致します。 「erB」は「動詞」の「er」と一致しますが、「never」の「er」とは一致しません。
n、t など。 は改行文字と一致します。タブ文字と一致します。など。
1...9 は、n 番目のグループの部分式と一致します。
10 は、n 番目のグループの部分式が一致する場合、それと一致します。それ以外の場合は、8 進数の文字コードの表現を指します。

以上がPython 設計の電卓関数実装の完全な例の共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
どのデータ型をPythonアレイに保存できますか?どのデータ型をPythonアレイに保存できますか?Apr 27, 2025 am 12:11 AM

Pythonlistscanstoreanydatatype,arraymodulearraysstoreonetype,andNumPyarraysarefornumericalcomputations.1)Listsareversatilebutlessmemory-efficient.2)Arraymodulearraysarememory-efficientforhomogeneousdata.3)NumPyarraysareoptimizedforperformanceinscient

Pythonアレイに間違ったデータ型の値を保存しようとするとどうなりますか?Pythonアレイに間違ったデータ型の値を保存しようとするとどうなりますか?Apr 27, 2025 am 12:10 AM

heouttemptemptostoreavure ofthewrongdatatypeinapythonarray、yure counteractypeerror.thisduetothearraymodule'sstricttypeeencultionyを使用します

Python Standard Libraryの一部はどれですか:リストまたは配列はどれですか?Python Standard Libraryの一部はどれですか:リストまたは配列はどれですか?Apr 27, 2025 am 12:03 AM

PythonListSarePartOfThestAndardarenot.liestareBuilting-in、versatile、forStoringCollectionsのpythonlistarepart。

スクリプトが間違ったPythonバージョンで実行されるかどうかを確認する必要がありますか?スクリプトが間違ったPythonバージョンで実行されるかどうかを確認する必要がありますか?Apr 27, 2025 am 12:01 AM

theScriptisrunningwithwrongthonversionduetorectRectDefaultEntertersettings.tofixthis:1)CheckthedededefaultHaulthonsionsingpython - versionorpython3-- version.2)usevirtualenvironmentsbycreatingonewiththon3.9-mvenvmyenv、andverixe

Pythonアレイで実行できる一般的な操作は何ですか?Pythonアレイで実行できる一般的な操作は何ですか?Apr 26, 2025 am 12:22 AM

PythonArraysSupportVariousoperations:1)SlicingExtractsSubsets、2)Appending/ExtendingAdddesements、3)inSertingSelementSatspecificpositions、4)remvingingDeletesements、5)sorting/verversingsorder、and6)listenionsionsionsionsionscreatenewlistsebasedexistin

一般的に使用されているnumpy配列はどのようなアプリケーションにありますか?一般的に使用されているnumpy配列はどのようなアプリケーションにありますか?Apr 26, 2025 am 12:13 AM

numpyarraysAressertialentionsionceivationsefirication-efficientnumericalcomputations andDatamanipulation.theyarecrucialindatascience、mashineelearning、物理学、エンジニアリング、および促進可能性への適用性、scaledatiencyを効率的に、forexample、infinancialanalyyy

Pythonのリスト上の配列を使用するのはいつですか?Pythonのリスト上の配列を使用するのはいつですか?Apr 26, 2025 am 12:12 AM

UseanArray.ArrayOverAlistinPythonは、Performance-criticalCode.1)homogeneousdata:araysavememorywithpedelements.2)Performance-criticalcode:Araysofterbetterbetterfornumerumerumericaleperations.3)interf

すべてのリスト操作は配列でサポートされていますか?なぜまたはなぜですか?すべてのリスト操作は配列でサポートされていますか?なぜまたはなぜですか?Apr 26, 2025 am 12:05 AM

いいえ、notallistoperationSaresuptedbyarrays、andviceversa.1)arraysdonotsupportdynamicoperationslikeappendorintorintorinsertizizing、whosimpactsporformance.2)リスト

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール