Я работаю над созданием списка для игры, в которую я играю с друзьями, где слова добавляются в этот список x раз. В настоящее время я использую одни и те же три строки кода 5 раз, и вместо этого я хотел бы просто вызвать предопределенную функцию 5 раз. это возможно? (перевела только первую строчку)
AmountApple = int(input("How many apples?"))
for num in range(AmountApple):
newList.append("apple")
AnzahlW2 = int(input("Wie viele Werwolf2?"))
for num in range(AnzahlW2):
Rollen.append("Werwolf2")
AnzahlA = int(input("Wie viele Amor?"))
for num in range(AnzahlA):
Rollen.append("Amor")
AnzahlHexe = int(input("Wie viele Hexe?"))
for num in range(AnzahlHexe):
Rollen.append("Hexe")
AnzahlHure = int(input("Wie viele Hure"))
for num in range(AnzahlHure):
Rollen.append("Hure")
AnzahlB = int(input("Wie viele Bürger"))
for num in range(AnzahlB):
Rollen.append("Bürger")
Будем признательны за любую помощь или указание на то, где я мог ошибиться!
Знаете ли вы, как написать собственную функцию на Python?
Я австриец и поэтому понимаю Слово Hure
. Я точно не знаю, запрещено ли это в SO, но я не думаю, что вам следует использовать это здесь.
Вот функция, которая делает один фрагмент:
def add_to_list(my_text, rollen):
n = int(input("Wie viele " + my_text + "?"))
for i in range(n):
rollen.append(my_text)
return rollen
Затем вы можете вызывать функцию таким образом столько раз, сколько вам нужно, и с разными словами:
Rollen = add_to_list("Amor", Rollen)
Rollen = add_to_list("Hexe", Rollen)
Обратите внимание, что Rollen
необходимо определить перед вызовом функции.
Возможно, помог бы больший образец вашего сценария, но, насколько я понимаю ваш сценарий, если бы у меня была эта проблема, я бы сделал это:
def fruitFunction(fruit, newList):
amountFruit = int(input(f"How many {fruit}?"))
for amount in range(amountFruit):
newList.append(fruit)
return newList
Вы можете видеть, что здесь я использовал f-строки. f-строки позволяют помещать переменные в строки без использования +
или ,
и содержат множество двойных кавычек. Я рекомендую вам использовать f-строки везде, где только можно.
Однако есть проблема, и это тот факт, что вам нужно знать единственное и множественное число плода. Но это можно решить так:
def fruitFunction(singularFruit, pluralFruit, newList):
amountFruit = int(input(f"How many {pluralFruit}?"))
for amount in range(amountFruit):
newList.append(singularFruit)
return newList
Чтобы использовать эту функцию, вам просто нужно сделать это: newList = fruitFunction('apple', 'apples', newList)
Имейте в виду, что для вызова этой функции у вас уже должен быть список.
Кроме того, может быть хорошей идеей вместо того, чтобы добавлять название фруктов 5 раз, например, в список, вы можете добавить список к списку. Список будет содержать название фруктов и количество. Это можно сделать следующим образом:
amountFruit = int(input(f"How many {fruit}?"))
newList.append([fruit, amountFruit])
И это должно сработать, спасибо.
Вы можете использовать список для хранения пользовательских входных строк и использовать цикл, используя элементы списка в качестве входных строк для каждой итерации.