کدی که نوشتی، ارتباطی با اون چیزی که تو w3s نوشته بود نداره. من یه کدی شبیه بهش نوشتم به این صورت:
#!/usr/bin/python3
# Released under GPLv3+ License
# Danial Behzadi <dani.behzi@ubuntu.com>, 2022.
import time
def bad():
arr = list(range(9999999))
start = time.time()
for i in range(len(arr)):
pass
stop = time.time()
return stop - start
def good():
start = time.time()
for i in range(9999999):
pass
stop = time.time()
return stop - start
print(f"bad: {bad()}")
print(f"good: {good()}")
خروجیش شد این:
bad: 0.16060471534729004
good: 0.160383939743042
که فرق معنیداری با هم ندارن.
اگه بخوای ببینی کجا فرق دارن با هم، باید یه مقدار از ساختار درستنویسی تو پایتون خارج بشی و کمی غیراستاندارد بنویسی. مثل این:
#!/usr/bin/python3
# Released under GPLv3+ License
# Danial Behzadi <dani.behzi@ubuntu.com>, 2022.
import time
def bad():
arr = list(range(9999999))
i = 0
start = time.time()
while i < len(arr):
i += 1
stop = time.time()
return stop - start
def good():
i = 0
start = time.time()
while i < 9999999:
i += 1
stop = time.time()
return stop - start
print(f"bad: {bad()}")
print(f"good: {good()}")
که خروجیش میشه این:
bad: 0.7553167343139648
good: 0.38115859031677246
که خب همونطور که گفتم در پایتون درست نیست.