Как мне структурировать python программу с помощью цикла while - PullRequest
0 голосов
/ 28 марта 2020

Задача 1: Необходимо написать программу while / for l oop, которая будет принимать 5 входных данных целого числа от 1 до 20 и сохранять их в списке.

Задача 2: Теперь распечатать последовательность между 1 до 20 пропуская все 5 номеров, которые были ранее предоставлены пользователем и сохранены в списке.

Я могу выполнить задачу 1:

skip = []
for i in range(0,5):
    temp = int(input("Enter any number between 1 to 20 :: "))
    skip.append(temp)

Но нужна помощь с задачей 2.

1 Ответ

0 голосов
/ 29 марта 2020

Задача 1. Рассматривая ваше решение, обратите внимание на следующее:

  1. Пользователь вводит не числовое значение в качестве ввода.
  2. Пользователь вводит число, большее их 20 или меньше 0.

Предполагается, что вы разрешаете дублирование ввода пользователем, следующий код гарантирует, что вышеупомянутая проблема не произойдет:

user_input_int = list()

while len(user_input_int) < 5:
    try:
        tmp_in = int(input("Enter any number between 1 to 20: "))
        if 0 < tmp_in < 20:
            user_input_int.append(tmp_in)        
        print(user_input_int)
    except ValueError as err:
        print(err)

** Если вы sh, что пользователь будет вводить только различные значения, которые вы можете изменить list на set (не забудьте также изменить append на add). **


Задача 2: Решение здесь не настолько сложное, вам просто нужно go по числу от 1 до 20, используя функцию range (вы уже использовали это в вашем решении), и исключить введенные пользователем числа:

# Starting from 1 in order to skip 0 and stop at 21 in order to print 20
for i in range(1, 21):
    if i in user_input_int:
        continue
    print(i)
...