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

  • Сравнение двух массивов numpy для равенства, по элементам
  • Календарь с tkinter (печать выбранной даты)
  • Concurrent.futures vs Multiprocessing в Python 3
  • Python 3.2 TypeError: неподдерживаемые операнды для%: 'NoneType' и 'str'
  • Невозможно настроить Scrapy на окнах
  • Извлеките конкретный столбец из csv
  • Таймер обратного отсчета задерживается на экране pygame?
  • Что я должен использовать вместо .__ getslice__?
  • Python - лучший язык программирования в мире.