Python: проверка правильности ввода с плавающей запятой и строкой - PullRequest
0 голосов
/ 25 сентября 2018

Этот код принимает вводимые пользователем данные и заменяет их на целое число, а затем проверяет, находится ли int между 0 и 10. Я также хотел бы, чтобы этот код проверял вводимые пользователем значения с помощью чисел с плавающей запятой и нечисловых строк и возвращал их, еслипользователь вводит неверный ввод.Пример: пользователь вводит 3,5 или «десять», получает ошибку и повторяет цикл.

 pyramid = int(input("Please enter an integer between 0 and 10 to begin the sequence: "))

while pyramid < 0 or pyramid > 10:
    print("That value is not in the correct range. Please try again.")
    pyramid = int(input("Please enter an integer between 0 and 10 to begin the sequence: "))

1 Ответ

0 голосов
/ 25 сентября 2018

Я бы посоветовал попытаться:

  1. цикл бесконечно (while 1)
  2. Привести входные данные в число с плавающей точкой, если это удастся, вы можете проверить, есть ли у него какие-либодесятичные числа (pyramid % 1 != 0) и выведите соответствующую ошибку в этом случае.
  3. Приведите входные данные к целому числу и разорвите цикл, если он есть.
  4. выведите ошибку, что входные данные не являютсяцелое число
while 1:

    str_in = input("Please enter an integer between 0 and 10 to begin the sequence: ")

    try:
        pyramid = float(str_in)
        if(pyramid % 1 != 0):
            print("That value is a float not an integer. Please try again.")
            continue
    except:
        pass

    try:
        pyramid = int(str_in)
        if pyramid >= 0 and pyramid <= 10:
            break
    except:
        pass

    print("That value is a string not an integer. Please try again.")

print("Your value is {}".format(pyramid))
...