Превращение этого кода в функцию python
Это мой код:
name1 = input(userQuestions[0]).lower() while name1 == "" or not name1.replace(' ','').isalpha(): name1 = input(userQuestions[0]).lower()
«UserQuestions []»:
- Почему __slots__ ведет себя по-другому в Python 2 и 3 при наследовании от абстрактного базового класса
- «Объекты TypeError: DataFrame изменяемы, поэтому они не могут быть хэшированы» при сортировке индекса dataframe pandas
- pip3 ImportError: невозможно импортировать имя «IncompleteRead»
- Как удалить дату и время pandas, часы и секунды
- Абстрактные классы и PyMongo; не может создавать абстрактный класс
userQuestions = ( "Give me name 1?\n", "Give me name 2?\n", "Give me name 3?\n", )
Чтобы использовать мою проверку на всех трех вопросах, как мне поместить это в функцию, чтобы сделать ее более эффективной, а не повторять аналогичный оператор x3?
Единственное, что должно измениться в функции, это имя (например, 'name1' to 'name2', 'name3') и userQuestions [] (например, userQuestions [0], … [1], .. . [2]).
- То же имя для classmethod и instancemethod?
- Распаковка, расширенная распаковка и вложенная расширенная распаковка
- Формат дампа PyYAML
- Как указать, что на самом деле происходит, когда нажата кнопка «Да / Нет» с помощью ctypes MessageBoxW?
- Прослеживание хода выполнения сельдерей в реальном времени
One Solution collect form web for “Превращение этого кода в функцию python”
Если я правильно понимаю вас, тогда я думаю, что это то, что вы ищете. Это происходит через ваш кортеж userQuestions
и вызывает функцию get_user()
которая возвращает новое имя пользователя и добавляет его в список users
def get_user(userQuestion): name1 = input(userQuestion).lower() while name1 == "" or not name1.replace(' ','').isalpha(): name1 = input(userQuestion).lower() return name1 userQuestions = ( "Give me name 1?\n", "Give me name 2?\n", "Give me name 3?\n", ) users = [] for i in userQuestions: users.append(get_user(i)) print(users)
Вы можете немного изменить это, так как единственное, что вы меняете в вопросах, – это номер, который вы могли бы поместить в строку, и только пропускать число так,
def get_user(x): name1 = input('Give me name ' + x + '\n').lower() while name1 == "" or not name1.replace(' ','').isalpha(): name1 = input('Give me name ' + x + '\n').lower() return name1 users = [] for i in range(3): users.append(get_user(str(i+1))) print(users)
Таким образом, легче масштабировать любое количество пользователей. Скажем, если у вас есть 20 пользователей, все, что вам нужно сделать, это изменить диапазон до 20 вместо того, чтобы добавить еще 17 строк в userQuestions
кортеж userQuestions
.
- Попытка воссоздать метод __str __ () в python
- Форматирование строк в Python 3
- re.split return Нет в функции, но нормально работает нормально
- сравнение строки в столбце и создание соответствующего нового столбца в python
- Пропустить указанное количество столбцов с ошибкой numpy.genfromtxt () python 3.4
- Как создать неизменяемый объект в Python?
- Как начать работу с PyWin32
- Как сделать эти относительные импортные операции в Python 3?
- Войдите в аккаунт Google с помощью Python?
- Как извлечь элементы подписок в однострочном понимании в python?
- TypeError: элемент последовательности 1: ожидается байтоподобный объект, str найден
- Повторяющийся код в тестовом файле unittest