как вызвать переменные, используя функцию вместе с l oop in python - PullRequest
0 голосов
/ 28 февраля 2020

Я новичок в Python и не знаком с синтаксисом. Поэтому в настоящее время я пытаюсь создать очень простую игру палача, которая будет случайным образом выбирать слово из списка слов в зависимости от выбранной категории. Однако я не уверен, как вызвать переменные (WORD_LIST 1 2 и 3), которые я создал, используя функцию вместе с l oop ..

import random, sys
from typing import List

# TODO try to load these from a text file
WORD_LIST1 = ["tables","ladders","chairs"]
WORD_LIST2=  ["chicken","dog","cat"]
WORD_LIST3=  ["basketball","soccer","rugby"]


category=["objects","animals","sports"]
def category():
    categoryname = input("Please select a category\n").strip()
    for x in range(3):
        if categoryname=category(x)

            #How to create function to call the word_list 1 2 and 3 here?

        else:
            print("wrong category")
            tryagain=input("Choose another category\n").strip()

Ответы [ 3 ]

2 голосов
/ 28 февраля 2020

Здесь вы можете использовать словарь в python. См. Код ниже

category_lists = {
    "objects": ["tables", "ladders", "chairs"],
    "animals": ["chicken", "dog", "cat"],
    "sports": ["basketball", "soccer", "rugby"]

}

def category():
    categoryname = input("Please select a category\n").strip()
    if categoryname in category_lists:
        word_list = category_lists.get(categoryname)
        # do what ever you want with the list
        SECRET_WORD = random.choice(word_list)
        print(SECRET_WORD)
    else:
        print("wrong category")

Вы можете загрузить категории из файла JSON или какого-либо внешнего источника, если вам нужно.

1 голос
/ 28 февраля 2020

Вы можете попробовать это. Эта версия программы будет постоянно предлагать пользователю вводить допустимые значения категории только в том случае, если пользователь вводит неправильную категорию. Наконец, он напечатает случайную запись из этой категории, когда пользователь вводит разрешенную категорию.

import random

# Store the category and values into a dictionary
categories = {
    "objects": ["tables", "ladders", "chairs"],
    "animals": ["chicken", "dog", "cat"],
    "sports": ["basketball", "soccer", "rugby"]

}

def category():
    print("Please enter category name: ")
    response = ''

    #Keep prompting the user to only enter allowed category values
    while response.lower() not in categories:
        # join(map(str, list((*categories,))) is used for retrieving the key values i.e. the category values from the dictionary "categories" and then join them as a string in order to display the allowed values back to the user
        response = input(' One among the following [%s] : \n' % ', '.join(map(str, list((*categories,)))))

    if response in categories:
        word_list = categories.get(response)
        # Print a random value from the chosen category
        print(random.choice(word_list))

# Call the function
category()
0 голосов
/ 28 февраля 2020

Вы можете просто передать его как обычные аргументы. Никаких дополнительных вещей не требуется. Вы можете прочитать об распаковке переменных-аргументов, но я считаю, что это немного сложнее, и вам это не нужно.

здесь вы можете сделать, например,

processUserGuesses(WORD_LIST1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...