Более простой способ проверки ввода> 0 в Python? - PullRequest
0 голосов
/ 09 апреля 2020

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

def enterReadings(message):
    while True:
        try:
            readingsCount = int(input(message))
            if readingsCount <= 0:
                print("Please enter a positive integer")
                continue
            break
        except ValueError:
            print("Please enter a positive integer")
            readingsCount = 0
        if readingsCount > 0:  
            readingsCount += readingsCount
            return readingsCount

Ответы [ 3 ]

3 голосов
/ 09 апреля 2020

Немного короче:

def enterReadings(message):
    while True:
        try:
            readingsCount = int(input(message))
            assert readingsCount > 0
            return readingsCount
        except:
            print("Please enter a positive integer")

Кстати, почему вы удваиваете свои readingsCount? Это то, что вы хотели?

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

В python, int также может быть отрицательным, поэтому вы должны проверить его.

Python 3.8 +:

def enterReadings(message):
    while True:
        try:
            if (n := int(input(message))) > 0:
                return 2*n
        except ValueError:
            pass
        print("Please enter a positive integer")              
0 голосов
/ 09 апреля 2020

Я думаю, что это абсолютно нормально, вы проверяете, является ли входное число (целое число) положительным.

Очистить лучше, чем умно.

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