@@ -28,7 +28,7 @@ def num_digits_fast(n: int) -> int:
28
28
>>> num_digits_fast(123)
29
29
3
30
30
"""
31
- return ( math .floor (math .log (abs (n ), 10 ) + 1 ) )
31
+ return math .floor (math .log (abs (n ), 10 ) + 1 )
32
32
33
33
34
34
def num_digits_faster (n : int ) -> int :
@@ -41,55 +41,91 @@ def num_digits_faster(n: int) -> int:
41
41
>>> num_digits_faster(123)
42
42
3
43
43
"""
44
- return ( len (str (abs (n ) )))
44
+ return len (str (abs (n )))
45
45
46
46
47
47
def benchmark () -> None :
48
48
"""
49
49
Benchmark code for comparing 3 functions,
50
50
with 3 different length int values.
51
51
"""
52
- print ('\n For small_num = ' , small_num , ':' )
53
- print ("> num_digits()" ,
54
- '\t \t ans =' , num_digits (small_num ),
55
- '\t time =' , timeit ("z.num_digits(z.small_num)" ,
56
- setup = "import __main__ as z" ), "seconds" )
57
- print ("> num_digits_fast()" ,
58
- '\t ans =' , num_digits_fast (small_num ),
59
- '\t time =' , timeit ("z.num_digits_fast(z.small_num)" ,
60
- setup = "import __main__ as z" ), "seconds" )
61
- print ("> num_digits_faster()" ,
62
- '\t ans =' , num_digits_faster (small_num ),
63
- '\t time =' , timeit ("z.num_digits_faster(z.small_num)" ,
64
- setup = "import __main__ as z" ), "seconds" )
52
+ print ("\n For small_num = " , small_num , ":" )
53
+ print (
54
+ "> num_digits()" ,
55
+ "\t \t ans =" ,
56
+ num_digits (small_num ),
57
+ "\t time =" ,
58
+ timeit ("z.num_digits(z.small_num)" , setup = "import __main__ as z" ),
59
+ "seconds" ,
60
+ )
61
+ print (
62
+ "> num_digits_fast()" ,
63
+ "\t ans =" ,
64
+ num_digits_fast (small_num ),
65
+ "\t time =" ,
66
+ timeit ("z.num_digits_fast(z.small_num)" , setup = "import __main__ as z" ),
67
+ "seconds" ,
68
+ )
69
+ print (
70
+ "> num_digits_faster()" ,
71
+ "\t ans =" ,
72
+ num_digits_faster (small_num ),
73
+ "\t time =" ,
74
+ timeit ("z.num_digits_faster(z.small_num)" , setup = "import __main__ as z" ),
75
+ "seconds" ,
76
+ )
65
77
66
- print ('\n For medium_num = ' , medium_num , ':' )
67
- print ("> num_digits()" ,
68
- '\t \t ans =' , num_digits (medium_num ),
69
- '\t time =' , timeit ("z.num_digits(z.medium_num)" ,
70
- setup = "import __main__ as z" ), "seconds" )
71
- print ("> num_digits_fast()" ,
72
- '\t ans =' , num_digits_fast (medium_num ),
73
- '\t time =' , timeit ("z.num_digits_fast(z.medium_num)" ,
74
- setup = "import __main__ as z" ), "seconds" )
75
- print ("> num_digits_faster()" ,
76
- '\t ans =' , num_digits_faster (medium_num ),
77
- '\t time =' , timeit ("z.num_digits_faster(z.medium_num)" ,
78
- setup = "import __main__ as z" ), "seconds" )
78
+ print ("\n For medium_num = " , medium_num , ":" )
79
+ print (
80
+ "> num_digits()" ,
81
+ "\t \t ans =" ,
82
+ num_digits (medium_num ),
83
+ "\t time =" ,
84
+ timeit ("z.num_digits(z.medium_num)" , setup = "import __main__ as z" ),
85
+ "seconds" ,
86
+ )
87
+ print (
88
+ "> num_digits_fast()" ,
89
+ "\t ans =" ,
90
+ num_digits_fast (medium_num ),
91
+ "\t time =" ,
92
+ timeit ("z.num_digits_fast(z.medium_num)" , setup = "import __main__ as z" ),
93
+ "seconds" ,
94
+ )
95
+ print (
96
+ "> num_digits_faster()" ,
97
+ "\t ans =" ,
98
+ num_digits_faster (medium_num ),
99
+ "\t time =" ,
100
+ timeit ("z.num_digits_faster(z.medium_num)" , setup = "import __main__ as z" ),
101
+ "seconds" ,
102
+ )
79
103
80
- print ('\n For large_num = ' , large_num , ':' )
81
- print ("> num_digits()" ,
82
- '\t \t ans =' , num_digits (large_num ),
83
- '\t time =' , timeit ("z.num_digits(z.large_num)" ,
84
- setup = "import __main__ as z" ), "seconds" )
85
- print ("> num_digits_fast()" ,
86
- '\t ans =' , num_digits_fast (large_num ),
87
- '\t time =' , timeit ("z.num_digits_fast(z.large_num)" ,
88
- setup = "import __main__ as z" ), "seconds" )
89
- print ("> num_digits_faster()" ,
90
- '\t ans =' , num_digits_faster (large_num ),
91
- '\t time =' , timeit ("z.num_digits_faster(z.large_num)" ,
92
- setup = "import __main__ as z" ), "seconds" )
104
+ print ("\n For large_num = " , large_num , ":" )
105
+ print (
106
+ "> num_digits()" ,
107
+ "\t \t ans =" ,
108
+ num_digits (large_num ),
109
+ "\t time =" ,
110
+ timeit ("z.num_digits(z.large_num)" , setup = "import __main__ as z" ),
111
+ "seconds" ,
112
+ )
113
+ print (
114
+ "> num_digits_fast()" ,
115
+ "\t ans =" ,
116
+ num_digits_fast (large_num ),
117
+ "\t time =" ,
118
+ timeit ("z.num_digits_fast(z.large_num)" , setup = "import __main__ as z" ),
119
+ "seconds" ,
120
+ )
121
+ print (
122
+ "> num_digits_faster()" ,
123
+ "\t ans =" ,
124
+ num_digits_faster (large_num ),
125
+ "\t time =" ,
126
+ timeit ("z.num_digits_faster(z.large_num)" , setup = "import __main__ as z" ),
127
+ "seconds" ,
128
+ )
93
129
94
130
95
131
if __name__ == "__main__" :
0 commit comments