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ステップで計算したいです。
なにか良い方法はありませんか?
どんなコードも1行ずつ実行されるので、イメージのコードも単に関数を100回実行するのと同じ気がしますが...関数の処理途中で変数の値などが変化するのを追いたいということでしょうか?
def test(s)にwhile上限を設ける引数を渡せば良いように感じるのですが…時間ではなく行数が重要な理由は何でしょう。
function testはあくまで例です、内部は単純なコードの繰り返しではありません。時間で制限するとPCにより処理が正しく完了したり時間切れで止まったり不正確です、行数にこだわっているのはどのPCでも必ず同じ結果になることを求めているからです。
やりたいことのイメージがよくわからないのですが、http://pythontutor.com/ と似たような事をしたいのですか? Github:https://github.com/pgbovine/OnlinePythonTutor/

回答2件
あなたの回答
tips
プレビュー