[PYTHON] Überprüfen Sie, ob Sie ein Gelehrter sind

Ich habe es früher gepostet, aber es ist möglich, dass der Link nicht den Regeln entsprach. Deshalb habe ich ihn gelöscht und erneut veröffentlicht. Ich habe auch versucht, den hervorgehobenen Punkt zu korrigieren. Beim letzten Mal habe ich es durch die Verwendung von 3 while-Anweisungen realisiert, aber ich habe es in eine for-Anweisung geändert. Ich habe den Rat erhalten, .numpy zu verwenden, daher möchte ich das verstehen und ausprobieren.

target1 = [[1,2,3],
           [2,3,1],
           [3,1,2]]
target2 = [[1,1,1],
           [2,2,2],
           [3,3,3]]
target3 = [[1,2,3],
           [2,3,1],
           [1,3,2]]
target4 = [[1,2,3,4,5],
           [2,3,4,5,1],
           [3,4,5,1,2],
           [4,5,1,2,3],
           [5,1,2,3,4]]
           
def check(target):
    n = len(target)
    digit = 1
    for i in range(0, n):  #Die Anzahl der Elemente beträgt 3, dh 0 bis 3, dh 0.,1,2
        row_count = 0
        col_count = 0
        for j in range(0, n):
            if target[i][j] == digit:
                row_count += 1
            if target[j][i] == digit:
                col_count += 1
        if row_count != 1 or col_count != 1:
            return False
        digit += 1
    return True
def test():
    print('Bei einigen deutschen Formen')
    assert check(target1) == True
    print('Wenn der Inhalt der Liste alle dieselbe Nummer hat')
    assert check(target2) == False
    print('Wenn nur die letzte Liste die Kriterien nicht erfüllt')
    assert check(target3) == False
    print('Normales System bei 5 × 5')
    assert check(target4) == True
    print('test ok')
test()

Recommended Posts

Überprüfen Sie, ob Sie ein Gelehrter sind
Wo kommen Sie her
Wenn Sie CD, ls. Shiroyo ……
Was tun, wenn Sie von Windows-Zeichencodes abhängig sind?
Wenn Sie TemplateDoesNotExist bei sagen
[Papiere und Implementierung] Wenn Sie gefragt werden "Ist dieser Datensatz schwierig?" ...
pathlib Benutzt du es alle?
Haben Sie Probleme mit "pipenv.exceptions.ResolutionFailure"?
Wenn Sie Titanic fahren ... sterben Sie.
Überprüfen Sie den Dateinamen, wenn Sie durch Python-Import nicht informiert werden