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

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

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

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

Q&A

解決済

3回答

2984閲覧

3つの数値を比較 python

haruto__

総合スコア15

Python

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

0グッド

0クリップ

投稿2021/05/29 10:22

前提・実現したいこと

課題で、3つの値がA,B,Cで入力され、その中で一番小さいものを出力、ただし値段が同じ場合はAよりもB,BよりもCが出力されるようにしたいです。

発生している問題・エラーメッセージ

入力される数値は明かされておらず、なぜか失敗してしまう組み合わせがあります。

a,b,c = input().split() l={'A':a,'B':b,'C':c} i=min(l, key=l.get) if a==b==c: print("C") elif a==b<c: print("B") elif a==b>c: print("C") elif b==c<a: print("C") elif b==c>a: print("A") elif c==a<b: print("C") elif c==a>b: print("B") else: print(i) ### 該当のソースコード ```python

試したこと

通りが違うのかと思いパターンを書き出した

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答3

0

Python 3.7以降でよろしければ

Python

1a, b, c = map(int, input().split()) 2dic = {a:'A', b:'B', c:'C'} 3m = sorted(dic)[0] 4print(dic[m])

投稿2021/05/29 13:30

lehshell

総合スコア1147

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

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

0

ベストアンサー

py

1a, b, c = map(int, input().split()) 2min_value = min(a, b, c) 3if min_value == c: 4 print("C") 5elif min_value == b: 6 print("B") 7else: 8 print("A")

でどうでしょうか。

投稿2021/05/29 10:34

coolwind0202

総合スコア708

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

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

haruto__

2021/05/29 10:47

ありがとうございます! 凄いです!できました! 宜しければ、どの様な考え方や、処理の動き方を教えていただけると勉強になります。
coolwind0202

2021/05/29 11:16

○考え方 辞書を使わずとも、3つの数値のうち最小のものを求めて、それが3数のどれに当てはまるか考えれば答えが出るのではないかと思いました。 ○処理内容 まず、a, b, c のなかで最も小さいものを min 関数で求めます。 そのあと、求めた最小値が a, b, c のどれと一致するかを調べて、出力します。 同値の場合には、C、B、Aの順に優先して出力したいので、まず最小値が c と一致するかを調べます。 以降は b, a についても同様の処理を行います。
haruto__

2021/05/30 03:57

なるほど、確かに上から下に流れていくからcを最初におけば同じ値でも出力されますね。 質問に答えていただきありがとうございました!
guest

0

すでに解決してますが、別のアプローチも参考までに

python

1a,b,c = input().split() 2dic = {'A':a,'B':b,'C':c} 3 4res = 'C' 5if b < dic[res]: 6 res = 'B' 7if a < dic[res]: 8 res = 'A' 9 10print(res)

投稿2021/05/29 11:11

編集2021/05/29 11:12
takasima20

総合スコア7460

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問