Как бы я определил функцию для этого? [нубский вопрос]

Я работаю над созданием списка для игры, в которую я играю с друзьями, где слова добавляются в этот список 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")

Будем признательны за любую помощь или указание на то, где я мог ошибиться!

Вы можете использовать список для хранения пользовательских входных строк и использовать цикл, используя элементы списка в качестве входных строк для каждой итерации.

Aravind G. 16.05.2022 20:08

Знаете ли вы, как написать собственную функцию на Python?

AJH 16.05.2022 20:12

Я австриец и поэтому понимаю Слово Hure. Я точно не знаю, запрещено ли это в SO, но я не думаю, что вам следует использовать это здесь.

Dominik Lovetinsky 16.05.2022 20:13
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
3
49
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вот функция, которая делает один фрагмент:

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

И это должно сработать, спасибо.

Другие вопросы по теме