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

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

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

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

Python

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

Q&A

解決済

3回答

290閲覧

Python While文の中のWhile文を実行したい

fred

総合スコア5

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

Python

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

0グッド

0クリップ

投稿2019/08/20 09:28

質問

Pythonで、whileのループの中にもう1つのwhileを実行させようとしても、python自体のエラーは起こりませんが、2つめのwhile文のnが0のときしか動いていないようです。

「whileのループの書き方」が間違っているのか、それとも「while内の条件式の記載」が間違っているのか、を確認できればと思います。

下記「whileのループの書き方」に誤りはないでしょうか? もしくはもっと適切な記載方法がありますでしょうか? ご教示頂けると幸いです。

※「while内の条件式」は長くなるため、ここでは簡略化しております

該当のコード

※get_data()はリスト型 price = get_data() i = 0 while i < len(price): nowprice = price[i] n = 0 while n < 11: if 条件A(条件式にnを使う): 処理A elif 条件B(条件式にnを使う) : 処理B n+=1 i+=1

コードの意図

iの数値によって変化する「nowprice」の値に対して、nの数値によって変化する複数の条件Aと条件Bの判定&処理を行わせる。

####(処理のイメージ)

i=0のとき、条件A,B(n=0のとき)の判定&処理、条件A,B(n=1のとき)の判定&処理、条件A,B(n=3のとき)の判定&処理・・・条件A,B(n=10のとき)判定&処理を行う。

i=1のとき、条件A,B(n=0のとき)の判定&処理、条件A,B(n=1のとき)の判定&処理、条件A,B(n=3のとき)の判定&処理・・・条件A,B(n=10のとき)判定&処理を行う。

i=2のとき、条件A,B(n=0のとき)の判定&処理、条件A,B(n=1のとき)の判定&処理、条件A,B(n=3のとき)の判定&処理・・・条件A,B(n=10のとき)判定&処理を行う。



(iの数値が最大になるまで同様の判定・処理が実行される)

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

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

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

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

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

guest

回答3

0

whileループの処理は問題ないと思います。

投稿2019/08/20 10:00

meg_

総合スコア10580

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

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

fred

2019/08/20 15:08

ご確認ありがとうございます。条件式の方を確認します。
meg_

2019/08/20 15:12

ただ、forループを使った方が良いと思います。(読みやすいです)
guest

0

ベストアンサー

条件式が通ってないんでは? そちらを載せて頂いた方が手っ取り早く解決すると思いますが、まあデバッグするなら、

python

1 while n < 11: 2 if 条件A(条件式にnを使う): 3 print("A", n) 4 処理A 5 elif 条件B(条件式にnを使う) : 6 print("B", n) 7 処理B 8 else: 9 print("C", n) 10 11 n+=1

とか書くことです。

投稿2019/08/20 09:46

hayataka2049

総合スコア30933

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

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

fred

2019/08/20 15:09

ご確認ありがとうございます。条件式のデバックを再度行なってみます。
guest

0

そこのwhile文を抜けたときのnの値をプリントでもしてみてみればどお?。。

投稿2019/08/20 09:36

編集2019/08/20 09:37
y_waiwai

総合スコア87774

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

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

fred

2019/08/20 15:09

ご確認ありがとうございます。こちら確認してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問