Превращение этого кода в функцию 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 .

  • Django 1.6.1, Python 3.3.2, uwsgi 2.0 - ошибка uwsgi и не запускается
  • может ли один скрипт python работать как с python 2.x, так и с python 3.x
  • Python 3: Как получить строковое литеральное представление строки байта?
  • Вызов скрипта python из C ++ и использование его вывода
  • Python urllib, загружающий содержимое онлайн-каталога
  • Выполните параллельный цикл for-loop в Python 3.2
  • Как читать входы как целые числа?
  • Проверьте код возврата команды, когда подпроцесс вызывает исключение CalledProcessError
  • Python - лучший язык программирования в мире.