+ 1
Rendition efficiency about while loop.
Why it takes so much longer to run the first set of code than the second? words = ["hello", "world", "spam", "eggs"] counter = 0 max_index = len(words) while counter < max_index: word = words[counter] print(word + "!") counter = counter + 1 ------------------------------------------------------- words = ["hello", "world", "spam", "eggs"] counter = 0 max_index = len(words) - 1 while counter <= max_index: word = words[counter] print(word + "!") counter = counter + 1
2 Respuestas
+ 1
if you really want to timemeasure the code, you should use some reliable approaches like this (I excluded print operator to avoid I/O speed interfering):
====
import timeit
s = """
words = ["hello", "world", "spam", "eggs"]
counter = 0
max_index = len(words)
while counter < max_index:
word = words[counter]
counter = counter + 1
"""
print(timeit.timeit(stmt=s, number=100000))
s1 = """
words = ["hello", "world", "spam", "eggs"]
counter = 0
max_index = len(words) - 1
while counter <= max_index:
word = words[counter]
counter = counter + 1
"""
print(timeit.timeit(stmt=s1, number=100000))
====
Both code snippets take the similar time to execute, with aceptable inaccuracy
AND the second snippet is always slower btw due to additional calculations.
0
they both should run i a few ms.
if you are comparing run times on sololearn playground, its dependant on all traffic on the site and your own connection.