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

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

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

Pythonistaは、iOS上でPythonプログラミングができる開発アプリです。さらに、Pythonの関数・変数などを自動で補完する便利なコードエディタや、PythonスクリプトをiOS上で多様な形で機能させる各種機能も内包しています。

Python 3.x

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

Python

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

Q&A

解決済

1回答

448閲覧

while構文を使う際のbreakの位置と使い方

Ficus

総合スコア5

Pythonista

Pythonistaは、iOS上でPythonプログラミングができる開発アプリです。さらに、Pythonの関数・変数などを自動で補完する便利なコードエディタや、PythonスクリプトをiOS上で多様な形で機能させる各種機能も内包しています。

Python 3.x

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

Python

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

0グッド

0クリップ

投稿2023/02/04 06:34

編集2023/02/04 23:02

プログラムの無駄な部分や、直したら見やすくなる部分を教えてほしい

pythonにて、商品の価格を入力すると小計・消費税・計の3つを表示するプログラムを初心者なりに書いてみました。価格に"q"を入力すると価格の入力が終了するようにしてみました。

プログラムがごちゃごちゃしてしまい、ほかにもう少しシンプルな書き方がないのか気になりました。加えて、なんとなくでbreakを使っていたのですが、breakの正しい使い方がイマイチ良く分かっていないため、どのように使うのかを教えていただきたいです。

python

1 2result = 0 3i = 1 4while True : 5 x = input( str(i) + "個目の商品の価格を入力してください:") 6 i += 1 7 if x != "q": 8 result += int(x) 9 else : 10 tax = int(result*0.1) 11 print("小計:" , result) 12 print("消費税:" , tax) 13 print("計:", result + tax ) 14 break 15

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

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

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

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

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

TakaiY

2023/02/04 06:45

pythonはインデントがわからないとプログラムが読めないので、質問を編集して、ソースコードは </>ボタンを押し、指示にしたがって```と```の枠の間に入れてください。
Ficus

2023/02/04 06:48

編集しました。
meg_

2023/02/04 08:57

> プログラムの無駄な部分や、直したら見やすくなる部分を教えてほしい プログラムは正しく動作する、という前提で良いでしょうか?
Ficus

2023/02/04 09:18

プログラムは正しく動きました!分かりづらく申し訳ありません。
meg_

2023/02/04 09:46

ループ処理の話ではありませんが、「価格に"q"を入力すると価格の入力が終了する」という仕様の説明を冒頭にした方が良いのでは?と思いました。
Ficus

2023/02/04 12:47

ご指摘ありがとうございます!確かに仕様は最初に書いておくべきだと思いました…。次回から気をつけて見ようと思います!
guest

回答1

0

ベストアンサー

特に冗長な部分などは無いと思うので言うことはないのですが、コメント入れたこともあり、自分の趣味全開で書いてみます。

・入力処理と計算処理は分離したい
・そのまま「入力がqなら止める」というロジックにする
・合計をtotalと明示する
・出力の書式をprintの仕様に任せない

python

1result = 0 2i = 1 3while True : 4 x = input( f"{i}個目の商品の価格を入力してください:") 5 if x == "q": 6 break 7 result += int(x) 8 i += 1 9 10tax = int(result*0.1) 11total = result + tax 12 13print(f"小計: {result}") 14print(f"消費税: {tax}") 15print(f"計: {total}")

やってませんが、消費税の小数点以下の扱いをどう処理すべきかについても明示的に書きたいところ。

投稿2023/02/04 12:00

編集2023/02/04 14:02
TakaiY

総合スコア12726

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

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

Ficus

2023/02/04 13:54

入力処理と計算処理を分けるだけでもかなり分かりやすくなりそうで参考になりました…! 詳しく教えて下さりありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問