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

Я работаю над созданием списка для игры, в которую я играю с друзьями, где слова добавляются в этот список 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
Анализ настроения постов в Twitter с помощью Python, Tweepy и Flair
Анализ настроения постов в Twitter с помощью Python, Tweepy и Flair
Анализ настроения текстовых сообщений может быть настолько сложным или простым, насколько вы его сделаете. Как и в любом ML-проекте, вы можете выбрать...
7 лайфхаков для начинающих Python-программистов
7 лайфхаков для начинающих Python-программистов
В этой статье мы расскажем о хитростях и советах по Python, которые должны быть известны разработчику Python.
Установка Apache Cassandra на Mac OS
Установка Apache Cassandra на Mac OS
Это краткое руководство по установке Apache Cassandra.
Сертификатная программа "Кванты Python": Бэктестер ансамблевых методов на основе ООП
Сертификатная программа "Кванты Python": Бэктестер ансамблевых методов на основе ООП
В одном из недавних постов я рассказал о том, как я использую навыки количественных исследований, которые я совершенствую в рамках программы TPQ...
Создание персонального файлового хранилища
Создание персонального файлового хранилища
Вы когда-нибудь хотели поделиться с кем-то файлом, но он содержал конфиденциальную информацию? Многие думают, что электронная почта безопасна, но это...
Создание приборной панели для анализа данных на GCP - часть I
Создание приборной панели для анализа данных на GCP - часть I
Недавно я столкнулся с интересной бизнес-задачей - визуализацией сбоев в цепочке поставок лекарств, которую могут просматривать врачи и...
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])

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

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