Próbuję utworzyć podstawowy program, który monituje użytkownika o numer i dodaje ten numer do listy. Jeśli wprowadzona wartość nie jest liczbą całkowitą, powinna wyświetlić "Wprowadź numer całkowitą", a jeśli wprowadzona wartość jest "Gotowa", program powinien zatrzymać zapętlanie, policz liczbę wartości na liście, i podaj średnią .

start = 0

while start == 0:
    prompt = int(input('enter a number: '))
    print(prompt)

    # create an empty list
    our_list = []

    # add user input to our_list
    our_list.append(prompt)

    # Count Script
    count = len(our_list)

    # Total script
    total = sum(our_list)

    #Average script
    average = total/count

    try:
        prompt = type(int)
        for input in prompt:
            if prompt == 'done':
                print('Done!')
                print(total(count, total, average))
                start = 1

    except ValueError:
        print("Please enter a whole number")

W tej chwili otrzymuję obiekt "Typ", nie jest błędnym błędem. Nie wiem, jak powinienem to zmienić. Doceń wszelką pomoc, ponieważ jest to mój trzeci tydzień za rozpoczęcie kodu.

-1
mcOnthemike 19 styczeń 2020, 02:29

1 odpowiedź

Najlepsza odpowiedź

Twoim problemem jest przypisanie typu w wartości monitu. Następnie mówisz o wejściu w monicie. Obiekt oczekuje, że szybka sekwencja, ale zamiast tego sprawiasz, że jest to Val. Możesz po prostu wyczyścić dużo tego kodu i napisz to coś takiego

num_list = []
while True:
    user_input = input("enter a number (or done to quit): ")
    try:
        num_list.append(int(user_input))
    except ValueError as ve:
        if user_input == "done":
            break
        else:
            print("Enter whole number or done")

count = len(num_list)
total = sum(num_list)
average = total / count
print(f"""Count: {count}
Total: {total}
Average: {average}""")

WYJŚCIE

enter a number (or done to quit): 5
enter a number (or done to quit): 3
enter a number (or done to quit): 7.6
Enter whole number or done
enter a number (or done to quit): 45
enter a number (or done to quit): re
Enter whole number or done
enter a number (or done to quit): 3
enter a number (or done to quit): done
Count: 4
Total: 56
Average: 14.0
0
Chris Doyle 18 styczeń 2020, 23:46