[PYTHON] Ich habe versucht zu debuggen.

Hallo! Ich denke, ich werde dieses Mal das Debuggen üben. Python-Debug-Tipps Kürzester Python-Testcode zum Ausprobieren Ich kopiere nur und versuche es, also siehe hier für Details! !!

Debuggen mit pdb

Debuggen Sie zunächst mit pdb. Unten finden Sie den Code, der zum Debuggen verwendet wird.


import pdb;

    
for ii in range(1, 21):
    if ii % 15 == 0:
        print('Takeuchi Tsuyoshi')
    elif ii % 3 == 0:
        print('Takeuchi')
    elif ii % 5 == 0:
        print('Tsuyoshi')
    else:
        print(ii)    

Starten Sie es zuerst.


python -m pdb Dateiname

Wenn Sie den Befehl "n" eingeben, wird er zeilenweise ausgeführt.

(Pdb) n
> /home/takeuchi/test.py(4)<module>()
-> for ii in range(1, 21):
(Pdb) n
> /home/takeuchi/test.py(5)<module>()
-> if ii % 15 == 0:
(Pdb) n
> /home/takeuchi/test.py(7)<module>()
-
> elif ii % 3 == 0:
(Pdb) 

Wenn Sie dann den Befehl "c" eingeben, wird der Vorgang sofort und nicht zeilenweise fortgesetzt.

> /home/takeuchi/test.py(4)<module>()
-> for ii in range(1, 21):
(Pdb) c
Takeuchi
4
Tsuyoshi
Takeuchi
7
8
Takeuchi
Tsuyoshi
11
Takeuchi
13
14
Takeuchi Tsuyoshi
16
17
Takeuchi
19
Tsuyoshi
The program finished and will be restarted
> /home/takeuchi/test.py(1)<module>()
-> import pdb;
(Pdb) 

Sie können mit b einen Haltepunkt angeben und die Verarbeitung bis zu diesem Punkt überprüfen. Führen Sie als Test die Verarbeitung bis zum ersten Zweig der if-Anweisung aus. Es wurde richtig ausgegeben.

(Pdb) b 5
Breakpoint 1 at /home/takeuchi/test.py:5
(Pdb) c
> /home/takeuchi/test.py(5)<module>()
-> if ii % 15 == 0:
(Pdb) c
1
> /home/takeuchi/test.py(5)<module>()
-> if ii % 15 == 0:
(Pdb) c
2
> /home/takeuchi/test.py(5)<module>()
-> if ii % 15 == 0:
(Pdb) c
Takeuchi
> /home/takeuchi/test.py(5)<module>()
-> if ii % 15 == 0:
(Pdb) c
4
> /home/takeuchi/test.py(5)<module>()
-> if ii % 15 == 0:
(Pdb) c
Tsuyoshi
> /home/takeuchi/test.py(5)<module>()
-> if ii % 15 == 0:
(Pdb) 
Takeuchi
> /home/takeuchi/test.py(5)<module>()
-> if ii % 15 == 0:
c(Pdb) c
7
> /home/takeuchi/test.py(5)<module>()
-> if ii % 15 == 0:
(Pdb) c
8
> /home/takeuchi/test.py(5)<module>()
-> if ii % 15 == 0:
(Pdb) c
Takeuchi
> /home/takeuchi/test.py(5)<module>()
-> if ii % 15 == 0:
(Pdb) c
Tsuyoshi
> /home/takeuchi/test.py(5)<module>()
-> if ii % 15 == 0:
(Pdb) c
11
> /home/takeuchi/test.py(5)<module>()
-> if ii % 15 == 0:
(Pdb) c
Takeuchi
> /home/takeuchi/test.py(5)<module>()
-> if ii % 15 == 0:
(Pdb) c
13
> /home/takeuchi/test.py(5)<module>()
-> if ii % 15 == 0:
(Pdb) c
14
> /home/takeuchi/test.py(5)<module>()
-> if ii % 15 == 0:
(Pdb) c
Takeuchi Tsuyoshi
> /home/takeuchi/test.py(5)<module>()
-> if ii % 15 == 0:
(Pdb) 
(Pdb) b 5, ii == 15

Auf diese Weise wird die Verarbeitung erst beendet, wenn ii 15 ist.

Als nächstes möchte ich den Test auf die gleiche Weise ausführen. Dies ist auch eine Kopie. Wenn Sie weitere Informationen wünschen, lesen Sie bitte Referenz.

test2.py


import unittest
import test as tt


class FizzBuzzTest(unittest.TestCase):
    def setUp(self):
        pass

    def tearDown(self):
        pass

    def test_normal(self):
        self.assertEqual(1, tt.fizzbuzz(1))

    def test_fizz(self):
        self.assertEqual("Tsuyoshi", tt.fizzbuzz(3))

    def test_buzz(self):
        self.assertEqual("Takeuchi", tt.fizzbuzz(5))

    def test_fizzbuzz(self):
        self.assertEqual("Takeuchi Tsuyoshi", tt.fizzbuzz(15))


if __name__ == "__main__":
    unittest.main()

def setUp (self) und def tearDown (self) scheinen Funktionen zu sein, die zum Zeitpunkt der Initialisierung / des Endes ausgeführt werden. assertEqual () prüft, ob das erste und das zweite Argument den gleichen Wert haben. Und das Folgende ist die importierte test.py.

test.py


def fizzbuzz(number):
    if number % 15 == 0:
        return "Takeuchi Tsuyoshi"
    if number % 5 == 0:
        return "Takeuchi"
    if number % 3 == 0:
        return "Tsuyoshi"

    return number


if __name__ == "__main__":
    for i in range(1, 101):
        print(fizzbuzz(i))

Das Ausführungsergebnis ist wie folgt! !!

❯ python test2.py 
....
----------------------------------------------------------------------
Ran 4 tests in 0.001s

OK

Verweise

Python-Debug-Tipps Kürzester Python-Testcode zum Ausprobieren

Recommended Posts

Ich habe versucht zu debuggen.
Ich habe versucht, PredNet zu lernen
Ich habe versucht, SVM zu organisieren.
Ich habe versucht, PCANet zu implementieren
Ich habe versucht, Linux wieder einzuführen
Ich habe versucht, Pylint vorzustellen
Ich habe versucht, SparseMatrix zusammenzufassen
jupyter ich habe es berührt
Ich habe versucht, StarGAN (1) zu implementieren.
Ich habe versucht, Deep VQE zu implementieren
Ich habe versucht, eine Quip-API zu erstellen
Ich habe versucht, eine kontroverse Validierung zu implementieren
Ich habe versucht, Pytorchs Datensatz zu erklären
Ich habe Watson Voice Authentication (Speech to Text) ausprobiert.
Ich habe Teslas API berührt
Ich habe versucht, mich über MCMC zu organisieren.
Ich habe versucht, Realness GAN zu implementieren
Ich möchte mit Python debuggen
Ich habe versucht, den Ball zu bewegen
Ich habe versucht, den Abschnitt zu schätzen.
Ich habe versucht zu kratzen
Ich habe PyQ ausprobiert
Ich habe AutoKeras ausprobiert
Ich habe es mit Papiermühle versucht
Ich habe versucht, Django-Slack
Ich habe es mit Django versucht
Ich habe es mit Spleeter versucht
Ich habe es mit cgo versucht
Ich habe versucht, einen Linebot zu erstellen (Implementierung)
Ich habe versucht, die Behandlung von Python-Ausnahmen zusammenzufassen
Ich habe versucht, PLSA in Python zu implementieren
Ich habe versucht, Azure Speech to Text zu verwenden.
Ich habe versucht, Autoencoder mit TensorFlow zu implementieren
Ich habe versucht, den Befehl umask zusammenzufassen
Ich habe versucht, Permutation in Python zu implementieren
Ich habe versucht, einen Linebot zu erstellen (Vorbereitung)
Ich habe versucht, AutoEncoder mit TensorFlow zu visualisieren
Ich versuchte das Weckwort zu erkennen
Ich habe versucht, mit Hy anzufangen
Ich habe versucht, PLSA in Python 2 zu implementieren
Python3-Standardeingabe habe ich versucht zusammenzufassen
Ich habe versucht, Text mit TensorFlow zu klassifizieren
Ich habe versucht, die grafische Modellierung zusammenzufassen.
Ich habe versucht, der CPython-Implementierung ein Post-Inkrement hinzuzufügen
Ich habe versucht, ADALINE in Python zu implementieren
Ich habe versucht, Optuna die Nummer lösen zu lassen
Ich habe versucht, das Umfangsverhältnis π probabilistisch abzuschätzen
Ich habe versucht, die COTOHA-API zu berühren
Ich habe versucht, PPO in Python zu implementieren
Ich habe versucht, CVAE mit PyTorch zu implementieren
Ich habe eine Web-API erstellt
Ich habe versucht, TSP mit QAOA zu lösen
[Python] Ich habe versucht, TF-IDF stetig zu berechnen
Ich habe versucht, Python zu berühren (grundlegende Syntax)
Ich versuchte mein Bestes, um zu Lasso zurückzukehren
Ich habe versucht, Ansibles Module-Linux-Edition zusammenzufassen
Ich habe versucht, parametrisiert zu verwenden
Ich habe versucht, Argparse zu verwenden