Необходимо написать программу которая проверяет пользователя

Необходимо написать программу для проверки пароля, вводимого пользователем. Программа должна предоставлять пользователю только три попытки ввода пароля. Верный пароль — число 95. Какой фрагмент кода реализует поставленную задачу?

Необходимо написать программу для проверки пароля, вводимого пользователем. Программа должна предоставлять пользователю только три попытки ввода пароля. Верный пароль — число 95. Какой фрагмент кода реализует поставленную задачу?

Необходимо написать программу, которая копирует одну строку в другую. Какая программа выполняет поставленную задачу?

Необходимо написать программу, которая имеет два аргумента командной строки и вычислиет их разность. Какая программа выполняет поставленную задачу?

Необходимо написать программу, которая имеет два аргумента командной строки и вычислиет их сумму. Какая программа выполняет поставленную задачу?

Необходимо написать программу, которая позволит ввести с клавиатуры данные о поездах. Также в программе должен быть предусмотрен поиск по номеру поезда. Какая программа выполняет поставленную задачу?

Python. Команды print() input()

Необходимо написать программу, которая позволит ввести с клавиатуры данные о поездах. Также в программе должен быть предусмотрен поиск по пункту назначения поезда. Какая программа выполняет поставленную задачу?

Необходимо написать программу, которая позволит ввести с клавиатуры данные о поездах. Также в программе должен быть предусмотрен поиск по пункту назначения поезда. Какая программа не выполняет поставленную задачу?

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

Необходимо написать программу, которая копирует одну строку в другую. Какие программы не выполняют поставленную задачу?

Источник: bazaintuit.ru

Как выполнить несколько проверок введенных пользователем данных?

Код проверяет, что ввели именно число. А как теперь сделать проверку, чтобы число лежало в диапазоне 10
Отслеживать
51.9k 11 11 золотых знаков 107 107 серебряных знаков 309 309 бронзовых знаков
задан 29 сен 2016 в 10:26
33 1 1 золотой знак 1 1 серебряный знак 4 4 бронзовых знака
Думаю, что в питоне тоже есть конструкция if-then-else .
29 сен 2016 в 10:27
связанный вопрос: Asking the user for input until they give a valid response

Читайте также:
Как выглядит программа paint на компьютере

29 сен 2016 в 14:30
ассоциация: stackoverflow.com/questions/23294658/…
2 мар 2017 в 13:29
4 июл 2017 в 5:54

4 ответа 4

Сортировка: Сброс на вариант по умолчанию

Просто выполняйте проверку одну за другой:

def input_int_in_range(start, end): while True: try: n = int(input(«Введите число: «)) except ValueError: print(«Вы ввели не число. Попробуйте снова.») else: if start
n = input_int_in_range(10, 50 + 1)
Отслеживать
ответ дан 29 сен 2016 в 14:36
51.9k 11 11 золотых знаков 107 107 серебряных знаков 309 309 бронзовых знаков

Создание программы которая запрашивает и проверяет правильность ввода пароля в командной строке

Я, конечно, понимаю, что в python считается нормальным реализовывать через обработку исключений много такого, на что в других языках пишут явные проверки. Философия EAFP и всё такое.

Но проверять с помощью исключений числовой тип — это уже даже для питона лютый изврат.

while True: input_data = input(«Введите число: «) if not input_data.isnumeric(): print(«Вы ввели не число. Попробуйте снова: «) elif not 10

Источник: ru.stackoverflow.com

Как написать юнит тест для ввода с клавиатуры?

Имеется такая программа, к которой нужно оформить юнит тесты. Загвоздка в том, что данные для программы пользователь вводит с клавиатуры, как можно имитировать ввод для успешного тестирования?

  • Вопрос задан более двух лет назад
  • 1047 просмотров

Комментировать
Решения вопроса 1

gdt

Программист

Если вы действительно хотите тестировать ввод с клавиатуры, это значит что вам нужно замокать статический метод.
У Fody есть add-in Fody.Ionad, который позволяет делать как раз именно это.
Но, конечно, будет правильнее воспользоваться советом предыдущих ответчиков, и переделать код так, чтобы он был более тестируем.

Ответ написан более двух лет назад
Комментировать
Нравится Комментировать
Ответы на вопрос 2
было бы большой ошибкой думать

Читайте также:
В каких программах работают дисней

Пример, когда платят за строку кода 🙂
Код абсолютно НЕ тестопригодный, вы постарались.
На ввод с клавиатуры юнит-тест не нужен. Нужен юнит-тест на метод, который производит с этим вводом какие-либо действия. Основная логика у вас происходит именно в Threadmain() — методе, который ничего не принимает и ничего не возвращает, кроме возможных исключений.

1. Зачем ввод с клавиатуры в отдельном потоке, да ещё и с очередью, если ReadLine() блокирующий метод.
2. Convert.ToInt32() выдаст исключение, если аргументом будет строка, не содержащая цифры.
3. num == «q» || num == «Q» — есть методы .ToLower(), ToUpper(). Название переменной num абсолютно нелогично, если оно не числовое.
4. Ещё тестом надо покрыть PumpMessage(), чтобы проверить, выходит ли программа из цикла

UPD: Вот рефактор, который делает более-менее то же самое, и его можно тестировать:

using System; using System.Linq; using System.Collections.Generic; class Program < static List_numbers = new List(); static void Main() < while(UserInput(Console.ReadLine())); Console.WriteLine($»Sum is: «); > static bool UserInput(string input) < if(string.IsNullOrEmpty(input)) return false; if(!int.TryParse(input, out int number)) return false; _numbers.Add(number); return true; >static int CalcSum(IEnumerable numbers) < return numbers.Sum(); >>

Тесты для UserInput
UserInput получает на вход null и должен вернуть false
UserInput получает на вход «» и должен вернуть false
UserInput получает на вход что угодно, кроме числа и должен вернуть false
UserInput на вход число и возвращает true

Тесты для CalcSum
Получает на вход пустой список и возвращает 0
Получает на вход массив [1, 2] возвращает 3
(ну для пущей надёжности можно ещё добавить проверку входящего аргумента на null) и проверить, выбрасывается ли исключение

Ответ написан более двух лет назад

Читайте также:
Плюсы и минусы программы фотошоп по сравнению с другими подобными программами

Добрый вечер! Спасибо за комментарий, но в моём задании суть состояла в том, чтобы реализовать event loop любым способом. Проблемы возникли на этапе написания тестов.

PJeys, Ну, я догадывался, что это было нечто подобное, однако, тут ещё можно поспорить над определением EventLoop, в какой-то степени, мой пример, это тоже он 🙂
Но суть не в этом. Есть такая парадигма — Test Driven Development. Огромное количество книг и материалов написано, можете погуглить. Однако, она накладывает определённые ограничения и требования. Самое главное требование — сделать ваш код тестируемым.

Юнит-тест — это проверка некоторого условия, AAA — Arrange, Act, Assert. Подготовка, действие, проверка, если хотите.
Иными словами, вы должны написать программу, которая проверит, как работает ваш код. При этом для нужд тестирования вы не должны никаким образом ничего добавлять или иным образом модифицировать код бизнес-логики. Все операции по тестированию должны проводиться извне, как с «чёрным ящиком». Человек, который пишет юнит-тест вообще не должен знать, что там внутри у вашего метода понаписано.
Соответственно, ваш код должен быть представлен в виде методов, которые что-то берут на вход и что-то выдают в качестве результата (либо бросают исключение — на это тоже можно тестировать).
Ваш код инкапсулировал программную логику так, что протестировать что-либо извне без модификации методов изнутри не представляется возможным.
Пусть, мой пример не отвечает требованиям задания, зато он гораздо лучше приспособлен для юнит-тестов.
И последнее — для TDD (Test Driven Development) лучше всего подходить к разработке «Test First». Сначала тесты, потом код. Сначала вы пишете набор тестов, исполнение которых гарантирует вам правильную работу программы, а уж затем вы пишете код так, чтобы эти тесты выполнялись.

Источник: qna.habr.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru