У объекта float time.time () нет атрибута Ошибка - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь определить время, необходимое для сортировки списка разных размеров по написанному мной коду сортировки. Я создаю случайный список чисел от 1 до тысячи. Затем я медленно перемещаю большие числа назад, сравнивая число с номером в следующей позиции. Затем я перемещаюсь по всему списку вот так, проверяю, отсортирован ли список, и если нет, повторяю процесс. Использование для l oop Я пытаюсь вычислить время, которое требуется коду для сортировки списка увеличивающихся размеров. Вот код:

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)

Всякий раз, когда я пытаюсь создать список длиннее нуля атрибутов, я получаю вывод примерно так:

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'

Как я могу исправить свой элемент времени.

1 Ответ

0 голосов
/ 26 февраля 2020

Легкая ошибка. Просто измените переменную с именем time на что-то другое, поскольку интерпретатор считает, что вы ссылаетесь на импорт времени. вот так:

for listSize in range(0,sizeOfLargestList):
    print("1")
    time_t = sorter(listSize)
    print("List Size:" , listSize , "Time To Execute:" , time_t)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...