ValueError работает, но препятствует запуску кода - PullRequest
0 голосов
/ 27 апреля 2020

Я могу заставить программу рассчитывать правильно, и я могу заставить программу не делать это, кроме чисел с плавающей запятой и строк, но когда я соединю два куска кода вместе, программа не запустит счет. Спасибо за помощь.

print("\tProgram counts the number of positive integers.")

def numCount():

    even_count = 0
    odd_count = 0
    even_sum = 0
    odd_sum = 0
    total = 0

    while True:
        try:
            num = int(input("Input an integer to count 0 exits program: "))
        except ValueError:
            print("Please enter an integer.")
            continue
        else:
            return num                 
        if num == 0:
            break
        elif num < 1:
            continue
        elif num % 2 == 0:
            even_count += 1
            even_sum += num
        else:
            odd_count += 1
            odd_sum += num
        total += 1
    print("\nTotal positive intger count is:", total)
numCount()

Ответы [ 2 ]

1 голос
/ 27 апреля 2020

Вы не должны возвращать num в операторе else оператора try / исключением. Это немедленно выйдет из функции и вернет текущее значение num, вместо того, чтобы продолжать обрабатывать остальную часть вашего кода.

Чтобы это исправить, вы можете просто удалить оператор else.

0 голосов
/ 27 апреля 2020

Вы можете просто удалить:

else:
   return num

Это потому, что return рано выйдет из функции и остановит while l oop от продолжения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...