Превращение этого кода в функцию python

Это мой код:

name1 = input(userQuestions[0]).lower() while name1 == "" or not name1.replace(' ','').isalpha(): name1 = input(userQuestions[0]).lower() 

«UserQuestions []»:

 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]).

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 .

  • Unpickling классы из Python 3 в Python 2
  • Как реализован __slots__ в Python?
  • Использовать полку python 2 в python 3
  • UnicodeEncodeError при использовании функции компиляции
  • Объект Python unittest.TestCase не имеет атрибута 'runTest'
  • Как получить пакет для установки пакетов в виртуальную среду?
  • Как разобрать и распечатать дерево в python
  • Анализ всех XML-файлов в каталоге и всех подкаталогах
  • В чем разница между mysql-connector-python, mysql-connector-python-rf и mysql-connector-repackaged?
  • Pylint не может найти элемент запроса SQLAlchemy
  • Python: дождитесь ввода пользователем, а если вход через 10 минут не будет продолжен,
  • Python - лучший язык программирования в мире.