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

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

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

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Python

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

Q&A

3回答

523閲覧

Pythonのリストを利用したforのcontinueで進みたくない

argus

総合スコア8

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Python

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

1グッド

1クリップ

投稿2020/03/13 10:49

編集2020/03/13 10:57

前提・実現したいこと

Pythonでリストを利用したforでcontinueをしたいのですがリストが次に進んでしまいます。

該当のソースコード

python

1urllist=[http://1,http://2,http://3] 2 3for i in urllist: 4 ChangeUrl(url) 5 if FindUrl(i)==True 6 continue

この場合1でcontinueしたらもう一度1でループを始めたいのですがどう実現すればよいでしょうか?

s.k👍を押しています

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

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

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

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

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

quickquip

2020/03/13 10:52

これは本当にPythonの質問ですか?
yureighost

2020/03/13 11:00

1から始めたいってhttp://2以降にリストが進んでても、 もう一度http://1から処理を始めたいってことですか?
argus

2020/03/13 11:07

そうです
meg_

2020/03/13 11:07

forをやめてwhileとインデックスとなる変数を使ってはどうでしょうか?
can110

2020/03/13 11:17

SyntaxError: invalid syntaxになります。動作するソースを提示ください。
coco_bauer

2020/03/13 11:34

For構文を使うことを止める! Forは順に処理を進めていくものなので、途中で一からやりなおしをするのに適していません。 Pythonの正しい知識を身につけて、適切な構文が使えるようになってください。
quickquip

2020/03/13 13:20

回答したら実はPythonじゃありませんでしたと言われるんじゃないかと不安になるような質問なのです。
quickquip

2020/03/13 14:55 編集

> そうです 例えば http://2 まで終了していて、次に http://3 を引数にFindUrlを呼んだ時、Trueが返ってきたら http://1 に戻って全部やり直したい、Falseが返ってきたら終了するってことで合ってますか? ということがわかるように質問を編集してください。
guest

回答3

0

質問から想像されるのは

python

1for i in list_of_something: 2 while True: 3 if not error_exists_in(i): 4 break # whileを抜ける

質問への追記・修正欄に書かれているのは

python

1while True: 2 for i in list_of_something: 3 if error_exists_in(i): 4 break # forを抜ける 5 else: 6 # エラーなくforが終了した時ここに来る 7 break # whileを抜ける

投稿2020/03/14 08:08

編集2020/03/14 08:09
quickquip

総合スコア11070

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

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

0

「良い」プログラムかというとあまり自信ないですが。

Python

1while True: 2 found=False 3 for i in urllist: 4  ChangeUrl(url) 5 if FindUrl(i)==True: 6 found=True #外側のwhileを抜けない処置 7 break 8 9 if not found: #forの間一度もFindUrl()が真にならなかったらwhileを抜ける 10 break

とか。

投稿2020/03/13 12:16

thkana

総合スコア7659

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

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

thkana

2020/03/14 09:11

やっぱちゃんと知ってない言語の回答に手を出すものじゃないな...
guest

0

meg_さんが提案されてる通り、インデックスとwhile文を使って、
条件を満たせばインデックスを0に戻すことで何度も最初から処理をやり直すことは可能です。
ただどこかでインデックスを戻すif文に入らないようにしてwhile文を回しきるか、
別にif文を定義してbreakで抜けるかすることを考えないと無限ループになってしまう危険性があります。

python

1urllist=['http://1','http://2','http://3'] 2 3i = 0 4while i < len(urllist): 5 ul = urllist[i] 6 ChangeUrl(url) 7 if FindUrl(ul) == True: 8 i = 0 9 continue 10 i += 1

投稿2020/03/13 11:54

yureighost

総合スコア2183

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問