From 8e5c3536c728dd7451ca301dc2d5bfb3f68b0e1a Mon Sep 17 00:00:00 2001 From: arfy slowy Date: Sun, 29 Aug 2021 01:07:10 +0700 Subject: [PATCH] [fixed] unused variable, standalone running, import doctest module (#4673) * [fixed] unused variable, standalone running, import doctest module information [standalone running](https://www.geeksforgeeks.org/what-does-the-if-__name__-__main__-do/) Signed-off-by: slowy07 * Update other/fischer_yates_shuffle.py Co-authored-by: Christian Clauss * [fixed] change to tuple and fixing callfunction Signed-off-by: slowy07 * Update matrix/spiral_print.py Co-authored-by: Christian Clauss * Update matrix/spiral_print.py Co-authored-by: Christian Clauss * fixing Co-authored-by: Christian Clauss * [fixed] sprial matrix Signed-off-by: slowy07 * Update spiral_print.py * Update spiral_print.py * Update spiral_print.py * Update spiral_print.py Co-authored-by: Christian Clauss --- ...h_fibonacci_using_matrix_exponentiation.py | 3 ++ matrix/spiral_print.py | 34 +++++++++---------- other/fischer_yates_shuffle.py | 6 ++-- 3 files changed, 23 insertions(+), 20 deletions(-) diff --git a/matrix/nth_fibonacci_using_matrix_exponentiation.py b/matrix/nth_fibonacci_using_matrix_exponentiation.py index 8c39de0f2..341a02e1a 100644 --- a/matrix/nth_fibonacci_using_matrix_exponentiation.py +++ b/matrix/nth_fibonacci_using_matrix_exponentiation.py @@ -88,4 +88,7 @@ def main(): if __name__ == "__main__": + import doctest + + doctest.testmod() main() diff --git a/matrix/spiral_print.py b/matrix/spiral_print.py index 21dab7615..6f699c1ab 100644 --- a/matrix/spiral_print.py +++ b/matrix/spiral_print.py @@ -4,36 +4,35 @@ This problem has been solved through recursive way. Matrix must satisfy below conditions i) matrix should be only one or two dimensional - ii)column of all the row should be equal + ii) number of column of all rows should be equal """ +from collections.abc import Iterable -def checkMatrix(a): + +def check_matrix(matrix): # must be - if type(a) == list and len(a) > 0: - if type(a[0]) == list: - prevLen = 0 - for i in a: - if prevLen == 0: - prevLen = len(i) - result = True - elif prevLen == len(i): + if matrix and isinstance(matrix, Iterable): + if isinstance(matrix[0], Iterable): + prev_len = 0 + for row in matrix: + if prev_len == 0: + prev_len = len(row) result = True else: - result = False + result = prev_len == len(row) else: result = True else: result = False + return result def spiralPrint(a): - - if checkMatrix(a) and len(a) > 0: - + if check_matrix(a) and len(a) > 0: matRow = len(a) - if type(a[0]) == list: + if isinstance(a[0], Iterable): matCol = len(a[0]) else: for dat in a: @@ -64,5 +63,6 @@ def spiralPrint(a): # driver code -a = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]] -spiralPrint(a) +if __name__ == "__main__": + a = ([1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]) + spiralPrint(a) diff --git a/other/fischer_yates_shuffle.py b/other/fischer_yates_shuffle.py index 6eec738c0..035fcb482 100644 --- a/other/fischer_yates_shuffle.py +++ b/other/fischer_yates_shuffle.py @@ -8,8 +8,8 @@ wikipedia/Fischer-Yates-Shuffle. import random -def FYshuffle(list): - for i in range(len(list)): +def fisher_yates_shuffle(data: list) -> list: + for _ in range(len(list)): a = random.randint(0, len(list) - 1) b = random.randint(0, len(list) - 1) list[a], list[b] = list[b], list[a] @@ -21,4 +21,4 @@ if __name__ == "__main__": strings = ["python", "says", "hello", "!"] print("Fisher-Yates Shuffle:") print("List", integers, strings) - print("FY Shuffle", FYshuffle(integers), FYshuffle(strings)) + print("FY Shuffle", fisher_yates_shuffle(integers), fisher_yates_shuffle(strings))