前提・実現したいこと
例えば下のようなtxtファイルがあったとして
1 2 3 4 5 6 7 8
このファイルを読み込み、
それを、「1,2,3」と3行進んだら1行戻り、また3行「2,3,4」。また1戻って3行分進んで「3,4,5」、、、、
となるように処理をして、
1 2 3 #3行分進んだので次は一つ前に戻る 2 3 4 #3行分進んだので次は一つ前に戻る 3 4 5 #3行分進んだので次は一つ前に戻る 4 5 6 #3行分進んだので次は一つ前に戻る 5 6 7 #3行分進んだので次は一つ前に戻る 6 7 8
処理したものを別のtxtファイルに書き出す。というような動きをするプログラムをPythonで作ろうとしています。
発生している問題・エラーメッセージ
そこで、主な処理をどう記述すれば良いか試すために、以下のようなプログラムを作成しました。
Python2
1# coding: UTF-8 2 3list1 = ['あ','い','う','え','お','か','き','く'] #元のリスト 4length = len(list1) #リストのサイズ 5 6for n in range(length): 7 if n%3 != 0: #3の倍数でなければ 8 print(list1[n]) 9 else: #3の倍数なら 10 print(list1[n]) 11 n = n-2 #繰り返し時に+1されることを考慮し2引いておく
しかし、このプログラムを実行すると出力は以下のようになり、
あ い う え お か き く
思いどおりに動きませんでした。
と、ここで思ったのですが、
nが3の倍数の時は-2するというようなやり方では、nは3以上の数に行けなくなり、実現したい動きどころか、そもそも無限ループしてしまう気がします。
にもかかわらず、実行結果では「あ」から「く」まで出力されており、nがリストの長さまで辿りついて処理が終わっています。
どのようにプログラムを書けば期待通りの動きをさせることができるのでしょうか。
簡単なところで思い違いをして的外れなことを言っている部分があるかもしれませんが、ご教示お願い致します。

回答9件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。