質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

5437閲覧

【Python】値を受け付けて四則演算を行う方法

Vimdry

総合スコア12

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2016/12/14 06:25

Python初心者です。

Python2.7にて3つ以上の値(A、B、C、D...)を受け付けて四則演算を行うプログラムを作成したいと思っております。
初歩的なことだとは思いますが3つ以上の値の四則演算をプログラムで行う方法が思いつきません。
2つの値の四則演算でAの値を受け付け、計算方式を選択し、Bの値を受け付け、計算をするということは実行することができました。
3つ以上の値になると、*、/を先に計算を行うなど、()を使った場合こちらを最優先に計算するなどいろいろな問題が出てしまい、どうプログラムしたらいいのかわからなくなってしまいました。
Pythonでは、上記の優先的に行う計算を自動的にやってくれるそうなので特に問題視するところではありませんが、コードを書く場合どのようになるのか知りたいです。

■機能
1.Aの値を受け付ける。
2.計算方式を選択(+、-、、/)
3.Bの値を受け付ける。
4.計算方式を選択(+、-、
、/)
5.Cの値を受け付ける。
6.以後ループ...
7.最終的に計算。
というような感じです。

完全に丸投げな質問で大変申し訳ございません。
もし、お時間がありましたらお答えいただけると幸いです。。。

###前回2つの値で四則演算を行った際のプログラム
お恥ずかしいコードで申し訳ございません。。。

print('Please input A and B\n') print('\nPlease input A') a = input('A:') print('\nPlease select the calculation method') print('(1 => +) (2 => -) (3 => *) (4 => /)') s = input('Please select:') print('\nPlease input B') b = input ('B:') print('\nAnswer:') if int(s) == 1: print('Select calculation method is "+"') print('A + B = ',int(a) + int(b)) elif int(s) == 2: print('Select calculation method is "-"') print('A - B = ',int(a) - int(b)) elif int(s) == 3: print('Select calculation method is "*"') print('A * B = ',int(a) * int(b)) elif int(s) == 4: print('Select calculation method is "/"') print('A / B = ',float(a) / float(b)) else: print('Do not accept') pass

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

四則演算のルールを自作するのは面倒ですから、演算式の文字列を組み立てる部分だけ自作して、式の評価はPythonに任せてしまってはいかがでしょうか。

Python

1>>> s = raw_input() # 一行入力(例:'10+20*3') 2>>> eval(s) # 式の評価と結果表示(例:'70')

この例では式を一度に入力させていますが、必要なら値と記号を交互に入力させて文字列を組み立てていき、最終的に '=' が入力されたら eval() する、というように改造してみては。

ご参考になれば。

投稿2016/12/14 07:08

tkanda

総合スコア2425

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Vimdry

2016/12/15 14:08

ご返事ありがとうございます! 教えていただいたとおり実行して見ましたところうまくいきました! ただ、一度の入力で計算できたはいいものの交互に文字列を組み立てる方法が浮かびませんでした・・・。 もし、よろしければ教えていただけると幸いなのですが。。。
masa1125

2019/11/05 04:40 編集

”Python 文字列連結"などで検索すれば一発とは思いますが・・・。 eval(a + s + b) あとは代入時点でどんどん結合してもよいと思います。 a = input('A:') a += input('Please select:') a += input('B:') print(eval(a))
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問