@@ -28,7 +28,7 @@ def num_digits_fast(n: int) -> int:
2828 >>> num_digits_fast(123)
2929 3
3030 """
31- return ( math .floor (math .log (abs (n ), 10 ) + 1 ) )
31+ return math .floor (math .log (abs (n ), 10 ) + 1 )
3232
3333
3434def num_digits_faster (n : int ) -> int :
@@ -41,55 +41,91 @@ def num_digits_faster(n: int) -> int:
4141 >>> num_digits_faster(123)
4242 3
4343 """
44- return ( len (str (abs (n ) )))
44+ return len (str (abs (n )))
4545
4646
4747def benchmark () -> None :
4848 """
4949 Benchmark code for comparing 3 functions,
5050 with 3 different length int values.
5151 """
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+ )
6577
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+ )
79103
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+ )
93129
94130
95131if __name__ == "__main__" :
0 commit comments