Python time.time()浮点对象没有属性错误
我试图计算不同大小的列表需要多长时间才能按照我编写的排序代码进行排序。 我创建了一个从1到1000的随机数字列表。然后,通过将数字与下一个位置的数字进行比较,将较大的数字慢慢移到后面。然后我像这样浏览整个列表,检查列表是否已排序,如果没有,则重复该过程。使用for循环,我试图计算代码对不断增大的列表进行排序所需的时间。 代码如下:Python time.time()浮点对象没有属性错误,python,time,Python,Time,我试图计算不同大小的列表需要多长时间才能按照我编写的排序代码进行排序。 我创建了一个从1到1000的随机数字列表。然后,通过将数字与下一个位置的数字进行比较,将较大的数字慢慢移到后面。然后我像这样浏览整个列表,检查列表是否已排序,如果没有,则重复该过程。使用for循环,我试图计算代码对不断增大的列表进行排序所需的时间。 代码如下: import random import time sizeOfLargestList = int(input("Enter: ")) def isItSorted
import random
import time
sizeOfLargestList = int(input("Enter: "))
def isItSorted(list):
for postion in range(0, len(list)-1):
if(list[postion] > list[postion+1]):
return False
return True
def sortTwoVar(list, position):
if(list[position] < list[position+1]):
return True
elif(list[position] == list[position+1]):
return "Equal"
else:
return False
def loopSort(list):
numberOfEquivilentNumbers = 1
for position in range(0, len(list)-1):
sorted = sortTwoVar(list, position)
if(sorted == False):
for set in range(numberOfEquivilentNumbers):
numberMoving = list.pop(position-set)
list.insert(position+1, numberMoving)
numberOfEquivilentNumbers = 1
elif(sorted == "Equal"):
numberOfEquivilentNumbers += 1
else:
numberOfEquivilentNumbers = 1
def sorter(length):
list = []
for i in range(0,length):
list.append(random.randint(0,1000))
print("2")
start = time.time()
while(isItSorted(list) == 0):
loopSort(list)
print("3")
end = time.time()
return end-start
for listSize in range(0,sizeOfLargestList):
print("1")
time = sorter(listSize)
print("List Size:" , listSize , "Time To Execute:" , time)
随机导入
导入时间
sizeOfLargestList=int(输入(“输入:”)
def isItSorted(列表):
对于范围(0,列(列表)-1)内的职位:
如果(列表[职位]>列表[职位+1]):
返回错误
返回真值
def sortTwoVar(列表,位置):
如果(列表[位置]<列表[位置+1]):
返回真值
elif(列表[位置]==列表[位置+1]):
返回“相等”
其他:
返回错误
def循环排序(列表):
NumberOfEquivalentNumbers=1
对于范围(0,透镜(列表)-1)中的位置:
排序=sortTwoVar(列表,位置)
如果(排序==False):
对于设置范围(NumberOfEquivalentNumbers):
numberMoving=list.pop(位置集)
列表.插入(位置+1,编号移动)
NumberOfEquivalentNumbers=1
elif(排序==“相等”):
NumberOfEquivalentNumbers+=1
其他:
NumberOfEquivalentNumbers=1
def分拣机(长度):
列表=[]
对于范围内的i(0,长度):
list.append(random.randint(01000))
打印(“2”)
开始=时间。时间()
而(isItSorted(list)==0):
循环排序(列表)
打印(“3”)
end=time.time()
返回结束开始
对于范围(0,sizeOfLargestList)中的listSize:
打印(“1”)
时间=分拣机(列表大小)
打印(“列表大小:”,列表大小,“执行时间:”,时间)
每当我尝试创建比零属性更长的列表时,我都会得到如下输出:
Enter: 2
1
2
3
List Size: 0 Time To Execute: 0.0
1
2
Traceback (most recent call last):
File "C:\Python Codes\Sort Code restart.py", line 53, in <module>
time = sorter(listSize)
File "C:\Python Codes\Sort Code restart.py", line 43, in sorter
start = time.time()
AttributeError: 'float' object has no attribute 'time'
输入:2
1.
2.
3.
列表大小:0执行时间:0.0
1.
2.
回溯(最近一次呼叫最后一次):
文件“C:\Python Code\Sort Code restart.py”,第53行,在
时间=分拣机(列表大小)
文件“C:\Python Code\Sort Code restart.py”,第43行,在分类器中
开始=时间。时间()
AttributeError:“float”对象没有属性“time”
如何修正时间元素。容易出错。只需将名为“time”的变量更改为其他变量,因为解释器认为您引用的是时间导入。像这样:
for listSize in range(0,sizeOfLargestList):
print("1")
time_t = sorter(listSize)
print("List Size:" , listSize , "Time To Execute:" , time_t)
您可能有一个名为
time
的变量。我还可以看到一个名为list
time=sorter(listSize)
-类似于该变量。