質問するログイン新規登録

Q&A

解決済

2回答

8221閲覧

Pythonのプログラムを一行ずつ実行したい

namuyan

総合スコア76

Python 3.x

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

0グッド

0クリップ

投稿2018/03/07 02:54

0

0

Python3.5を使用しています。
具体的には、あるファンクションについて一行ずつ実行し、ある実行回数を超えるとコード強制終了する機構を組み入れたいです。
通常ならばpdbを使用しますがDebugをするわけでは無いし、人がマニュアル的にEnterキーを押すわけでは無いのでうまく使用法が思いつきませんでした。

Python

1from hashlib import sha256 2import nazonolib # 一行ずつ実行できる謎のライブラリ 3 4 5def test(s): 6 h = b'' 7 While s < 100: 8 h += sha256(s.to_bytes(1, 'big')).digest() 9 return sha256(h).hexdigest() 10 11 12work = nazonolib.get(test, args=(1,)) # functionをインポートして 13limit = 100 14while limit > 100: 15 r = work.next() # 一行ずつ実行 16 if r is None: 17 limit -= 1 18 else: 19 # 無事に全経路を実行 20 break 21else: 22 # 途中で終わってしまった 23 work.close()

以上のコードは”こんな風にできたらいいなぁ”という妄想です。
hashlibなどBuildinは1ステップで計算したいです。
なにか良い方法はありませんか?

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

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

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

Udomomo

2018/03/07 03:47 編集

どんなコードも1行ずつ実行されるので、イメージのコードも単に関数を100回実行するのと同じ気がしますが...関数の処理途中で変数の値などが変化するのを追いたいということでしょうか?
mkgrei

2018/03/07 04:24

def test(s)にwhile上限を設ける引数を渡せば良いように感じるのですが…時間ではなく行数が重要な理由は何でしょう。
namuyan

2018/03/07 15:29

function testはあくまで例です、内部は単純なコードの繰り返しではありません。時間で制限するとPCにより処理が正しく完了したり時間切れで止まったり不正確です、行数にこだわっているのはどのPCでも必ず同じ結果になることを求めているからです。
guest

回答の取得に失敗しました

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

ただいまの回答率
85.25%

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

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

質問する

関連した質問