
A 回答 (16件中11~16件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
あー、ひょっとしたらshellが上手く動いてないのかなぁ。
ええと、Windows?
Windowsだとしたら冒頭のシェバングがひょっとしたら
#! /usr/bin/env python
でいいかもしんない。
それはさておき。
WindowsだとしたらDOS窓かなんかで、そのスクリプトを置いた場所に移動(cdコマンド)して、そのスクリプト名を打って、Enterキー(ないしはリターンキー)を打って実行してください。
そうすると入力になるんで、そこではじめて数式を打ち込みます。
こっちはLinuxでやってるんで完全に同じじゃないんだけど、大体画面的には次の写真のようになりますね。

Windowsでスパイダーを用いています
実行結果を補足説明で画像添付しました。
このように計算結果を表示するんですよね…
後半のスクリプトに移動して数式を打ち込む?というのはよくわからないです
No.5
- 回答日時:
> やはり計算結果のみの表示で逆ポーランド記法での計算式は表示されないですね…
それはおかしいですね。
プログラム的には単純に言うと、ある文字列から別の文字列に変換してるだけなんで、「計算結果」なんて出ない筈ですが・・・・・・。
何で勝手に計算結果なんぞ出てるんだ(笑)?
下の写真のようにならない?
だとしたらオカルトですよ(笑)。
近くに心霊スポットとかないですか(笑)?

No.4
- 回答日時:
> 階乗計算を含めるとエラーが出てしまいます。
階乗計算をどうやったかは知りませんが、このプログラム上では**を使ってます。
3 ** 2
3 2 **
>>>
3 + 2 ** 4
3 2 4 ** +
>>>
> 計算結果だけでなく、中間記法で書いた計算式をを逆ポーランド記法での表示も可能でしょうか?
あれ?そのプログラムを書いた筈ですが・・・・・・。
すいません、階乗計算についてはこちらのミスで普通にできました
ですがやはり計算結果のみの表示で逆ポーランド記法での計算式は表示されないですね…
No.3
- 回答日時:
あー、ちなみに。
コピペしたら多分ダメだと思いますよ。
教えて!gooではインデントが消去されてしまうので、わざと全角の空白をインデント代わりに使っています。
よって、コピペしたら多分、全角空白をパーズした時点でエラーとなるんじゃないかしらん。
メンド臭くても写経してください。
そうなんですね
足し算や掛け算などは行えたのですが、階乗計算を含めるとエラーが出てしまいます。
あと、計算結果だけでなく、中間記法で書いた計算式をを逆ポーランド記法での表示も可能でしょうか?
多くて申し訳ありませんが、ご教授のほどよろしくお願い致します。
No.1
- 回答日時:
#!/usr/bin/env python3
def infix2RPN(e):
# 演算子は自由に追加して良い。
# 数値が多い程優先順位が高い事にしている。
operator_precedence = {"(" : 0, ")" : 0,
"+" : 1, "-" : 1,
"*" : 2, "/" : 2, "%": 2,
"**" : 3}
stack = []
buffer = []
for token in e:
if token.isdigit():
buffer += [token]
elif token in operator_precedence.keys():
if token == ')':
while (ch := stack.pop(0)) != '(':
buffer += [ch]
elif token == '(':
stack = [token] + stack
else:
while True:
if stack == []:
stack = [token] + stack
break
elif operator_precedence[token] > operator_precedence[stack[0]]:
stack = [token] + stack
break
else:
buffer += [stack.pop(0)]
else:
pass
return buffer + stack
if __name__ == '__main__':
print(" ".join(infix2RPN(input().split(" "))))
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) テキストデータ変換(プログラミング、linux、python) 8 2023/08/08 16:39
- C言語・C++・C# 逆ポーランド法の計算について 3 2023/05/27 00:53
- AJAX RPA(PowerAutomate)の実装について 1 2023/07/31 13:46
- 法学 5月3日憲法 4 2022/06/11 00:26
- その他(プログラミング・Web制作) pythonプログラムについて 2 2022/05/21 15:03
- UNIX・Linux サーバー間のデータコピー(データ形式とデーターフォーマットの変換あり。一定間隔で処理) 2 2023/08/22 22:15
- AJAX Pythonを無料(安価)で学ぶ方法ってありますか? 4 2023/08/11 17:23
- 数学 1.25を帯分数で表記する場合 5 2022/06/29 11:38
- 工学 Pythonの3次元描画に関する質問です 3 2022/12/07 20:07
- 画像編集・動画編集・音楽編集 Corel VideoStudio Pro X8 で、SWFをmp4に変換する方法 1 2022/05/06 22:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access クエリ実行が急に非常に...
-
OLE又はDDEを使うVISUAL BESIC...
-
VB6で、C言語の(argv,argc)み...
-
VbscriptにてTeraterm マクロを...
-
C言語のプログラムについて。
-
JAVA .jarファイルに再圧縮する...
-
a.outはどこへ?
-
WScript.Echo と msgbox
-
コンポーネント`MSCOMM32.cox'...
-
VBAでMP3を鳴らしたい
-
VBS形式ファイル:ダブルクリッ...
-
LINK : fatal error LNK1104に...
-
コマンドプロンプトで外のexeや...
-
VBAで他のプログラムが起動して...
-
サンドボックス内のマルウェア...
-
VBフォームアプリケーションに...
-
batからexeを起動した際の戻り...
-
eclipseで作ったプログラムを他...
-
ASPからexeプログラムへ引数
-
【HTML】 Wordファイルの指定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access クエリ実行が急に非常に...
-
JavaScriptでコマンドプ...
-
OLE又はDDEを使うVISUAL BESIC...
-
c/c++ ビルドしたにもかかわら...
-
VBAでEXEファイルを動かす方法...
-
コマンドプロンプトで外のexeや...
-
VC++から引数付きexeファイルの...
-
コンポーネント`MSCOMM32.cox'...
-
VBAで他のプログラムが起動して...
-
JARファイルをEclipseを使って...
-
ローカルのHTMLからexeファイル...
-
JAVA .jarファイルに再圧縮する...
-
以下のように複数のファイルを...
-
実行ファイルと実行モジュール...
-
64bit環境で32bitのodbc参照
-
LINK : fatal error LNK1104に...
-
VB6.0で作ったプロジェクトが起...
-
jarの開き方を教えてください。
-
ネットワーク越しのEXEファ...
-
eclipseで作ったプログラムを他...
おすすめ情報
実行結果
補足
補足