Входной контур управления Python

0

Вопрос

Начинающий питон здесь. Практикуясь в управлении вводом данных пользователем. Попытка сделать цикл ввода данных пользователем для начала, если используется что-либо, кроме целого числа между 1 и 10. Я пытался в течение нескольких часов, пытался использовать команды "Попробуйте и кроме", но не смог сделать это правильно. Что я делаю не так? Спасибо.

Редактировать: Всем большое спасибо за вашу помощь, однако проблема все еще не решена (но очень близко!) Я пытаюсь понять, как вернуться к началу, если набрано что-нибудь, КРОМЕ целого числа. Агент Бисквит (выше) дал отличный ответ для чисел с плавающей запятой, но любое набранное слово или буква все равно выдает ошибку. Я пытаюсь понять, как делать цикл, когда вводится что-либо случайное (кроме целых чисел от 1 до 10). Ни один из приведенных выше примеров не дал результатов. Спасибо вам за вашу помощь

while True:
    print("Enter a number between 1 and 10")
    number = int(input())
    if (number > 0) and (number < 10):
        print("Thank you, the end.")
        break
    else number != (> 0 and < 10):
        print("It has to be a whole number between 1 and 10.")
        print("Please try again:")
controls input loops python
2021-11-15 08:25:06
3
0

Я выявил некоторые проблемы.

Во-первых, используемый вами оператор ввода просто вызовет ошибку, если будет введено значение с плавающей точкой, потому что int в начале требуется, чтобы все элементы ввода были числом, и . это не число.

Во-вторых, ваше утверждение "еще". else просто оставлено как else:, и впоследствии не принимает никаких аргументов или параметров.

Теперь, как проверить, не является ли число целым? Попробуйте это:

while True:
    print("Enter a number between 1 and 10")
    number = float(input())
    if (number > 0) and (number < 10) and (round(number)==number):
        print("Thank you, the end.")
        break
    else:
        print("It has to be a whole number between 1 and 10.")
        print("Please try again:")

Это принимает значение с плавающей точкой, но принимает его только в том случае, если оно равно целому числу, следовательно, (round(number)==number).

Надеюсь, это ответ на ваш вопрос.

2021-11-15 08:32:00
0

Прежде всего, вы не можете использовать условие в else заявление. Кроме того, вам необходимо использовать or оператор вместо and если одно из условий приемлемо.
Итак, ваш код должен быть таким

while True:
    print("Enter a number between 1 and 10")
    number = int(input())
    if (number > 0) and (number < 10):
        print("Thank you, the end.")
        break
    elif number < 0 or number >10:
        print("It has to be a whole number between 1 and 10.")
        print("Please try again:")
2021-11-15 08:32:15
0

Спасибо ack (выше) за то, что указал мне на полезную ссылку. Изучив другую тему, я нашел решение. Возможно, это не идеальный код, но он работает на 100%:

while True:
    try:
        print("Enter a number between 1 and 10")
        number = float(input())
        if (number > 0) and (number < 10) and (round(number)==number):
            print("Thank you, the end.")
            break
        else:
            print("\n")
            print("It has to be a whole number between 1 and 10.")
            print("Please try again:")
            print("\n")
            continue
    except ValueError:
        print("It has to be a whole number between 1 and 10.")
        print("Please try again:")
        print("\n")
2021-11-16 06:21:03

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................